Skip to content

Commit c925753

Browse files
authored
Merge pull request #979 from mapswipe/fix/taskcontributioncount
Script to update users' taskContributionCount in Firebase from Postgres mapping_sessions
2 parents 7485e42 + f8f8c81 commit c925753

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from mapswipe_workers.auth import firebaseDB
2+
from mapswipe_workers.auth import postgresDB
3+
from mapswipe_workers.definitions import logger
4+
5+
6+
def update_task_contribution_count(uid):
7+
"""Set user's taskContributionCount in Firebase DB based on items_count in Postgres mapping_sessions."""
8+
p_con = postgresDB()
9+
fb_db = firebaseDB()
10+
11+
query = """
12+
SELECT COALESCE(SUM(items_count), 0)
13+
FROM public.mapping_sessions
14+
WHERE user_id = %(uid)s
15+
;
16+
"""
17+
18+
try:
19+
data = p_con.retr_query(query, {"uid": uid})
20+
task_contribution_count = data[0][0]
21+
ref = fb_db.reference(f"v2/users/{uid}/taskContributionCount")
22+
ref.set(task_contribution_count)
23+
logger.info(f"Updated task contribution count to {task_contribution_count} for user {uid} in Firebase.")
24+
except Exception as e:
25+
logger.exception(e)
26+
logger.warning(f"Could NOT update task contribution count for user {uid} in Firebase.")
27+
28+
29+
def get_all_users():
30+
"""Get the user ids from all users in Firebase DB."""
31+
fb_db = firebaseDB()
32+
users = fb_db.reference("v2/users/").get(shallow=True)
33+
uid_list = users.keys()
34+
return uid_list
35+
36+
37+
if __name__ == "__main__":
38+
"""Get all user ids from Firebase and update taskContributionCount based on Postgres mapping_sessions."""
39+
uid_list = get_all_users()
40+
for uid in uid_list:
41+
update_task_contribution_count(uid)
42+

0 commit comments

Comments
 (0)