Skip to content

Commit 3143428

Browse files
committed
add script to update tutorial ids
1 parent ec917c0 commit 3143428

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import sys
2+
3+
from mapswipe_workers.auth import firebaseDB
4+
from mapswipe_workers.definitions import ProjectType, logger
5+
6+
7+
def get_all_projects_of_type(project_type: int, tutorial_id: str):
8+
"""Get the project ids for active and inactive projects in Firebase DB."""
9+
10+
project_id_list = []
11+
fb_db = firebaseDB()
12+
13+
# we neglect private projects here
14+
# since there are no projects set up in production yet
15+
status_list = ["active", "inactive"]
16+
17+
for status in status_list:
18+
logger.info(f"query {status} projects")
19+
projects = (
20+
fb_db.reference("v2/projects/")
21+
.order_by_child("status")
22+
.equal_to(status)
23+
.get()
24+
)
25+
for project_id, data in projects.items():
26+
if (data.get("projectType", 1) == project_type) & (
27+
data.get("tutorialId", None) == tutorial_id
28+
):
29+
project_id_list.append(project_id)
30+
31+
logger.info(f"got {len(project_id_list)} project from firebase.")
32+
logger.info(f"projects: {project_id_list}")
33+
return project_id_list
34+
35+
36+
def add_tutorial_id_to_projects(project_id_list, tutorial_id):
37+
fb_db = firebaseDB()
38+
if len(project_id_list) < 1:
39+
logger.info("there are no matching projects.")
40+
else:
41+
for i, project_id in enumerate(project_id_list):
42+
fb_db.reference(f"v2/projects/{project_id}/tutorialId").set(tutorial_id)
43+
logger.info(
44+
f"#{i} added tutorial id '{tutorial_id}' to project '{project_id}'"
45+
)
46+
47+
48+
if __name__ == "__main__":
49+
"""change_tutorial_id_for_projects.py BUILD_AREA old_tutorial_id new_tutorial_id"""
50+
project_type = ProjectType[sys.argv[1]].value
51+
old_tutorial_id = sys.argv[2]
52+
new_tutorial_id = sys.argv[3]
53+
project_id_list = get_all_projects_of_type(project_type, old_tutorial_id)
54+
add_tutorial_id_to_projects(project_id_list, new_tutorial_id)

0 commit comments

Comments
 (0)