Get the root folder ID for a given Kitsu type and ID. If a folder/subfolder does not exist, it will be created.
Source code in server/kitsu/push.py
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 | async def get_root_folder_id(
user: "UserEntity",
project_name: str,
kitsu_type: KitsuEntityType,
kitsu_type_id: str,
subfolder_id: str | None = None,
subfolder_name: str | None = None,
) -> str:
"""
Get the root folder ID for a given Kitsu type and ID.
If a folder/subfolder does not exist, it will be created.
"""
res = await Postgres.fetch(
f"""
SELECT id FROM project_{project_name}.folders
WHERE data->>'kitsuId' = $1
""",
kitsu_type_id,
)
if res:
id = res[0]["id"]
else:
folder = await create_folder(
project_name=project_name,
name=kitsu_type,
data={"kitsuId": kitsu_type_id},
)
id = folder.id
if not (subfolder_id or subfolder_name):
return id
res = await Postgres.fetch(
f"""
SELECT id FROM project_{project_name}.folders
WHERE data->>'kitsuId' = $1
""",
subfolder_id,
)
if res:
sub_id = res[0]["id"]
else:
sub_folder = await create_folder(
project_name=project_name,
name=subfolder_name,
parent_id=id,
data={"kitsuId": subfolder_id},
)
sub_id = sub_folder.id
return sub_id
|