utils/scripts/update_names.py (39 lines of code) (raw):
# disabling for linting to pass
# pylint: disable=unspecified-encoding,missing-module-docstring,broad-exception-raised,broad-exception-caught,invalid-name,unused-variable
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from common.models import User
import csv
def main():
print("Started Script")
# Use a service account.
cred = credentials.Certificate("asu-prod-key.json")
print("Cred", cred)
firebase_admin.initialize_app(cred)
db = firestore.client()
print("User.collection name", User.collection_name)
enrollment_ref = db.collection(User.collection_name)
docs = enrollment_ref.stream()
print("------------------------------------------------")
with open("MAT142_Spring_B_2024_roster_names11.csv", mode="r") as file:
csvFile = csv.reader(file)
for lines in csvFile:
print(lines)
user = User.find_by_email(lines[0])
print("User is", user, lines[0])
if user is not None:
if user.first_name != lines[1] or user.last_name != lines[2]:
user.first_name = lines[1]
user.last_name = lines[2]
user.update()
with open("mat_springb_2024.txt", "w") as out_file:
out_file.write(
f"{user.email}, {user.first_name}, {user.last_name}\n")
print("File write In updated Users", user.email)
else:
with open("mat_springb_not_updated_users2024.txt", "w") as out_file:
out_file.write(
f"{user.email}, {user.first_name}, {user.last_name}\n")
print("File write In NOT updated Users", user.email)
else:
print("User Not found", lines[0])
if __name__ == "__main__":
main()