Skip to content

Commit

Permalink
change database update
Browse files Browse the repository at this point in the history
  • Loading branch information
MaHaWo committed Oct 23, 2024
1 parent 1ce363b commit cc212a6
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 35 deletions.
1 change: 0 additions & 1 deletion mondey_backend/src/mondey_backend/models/questions.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ class UserAnswer(SQLModel, table=True):
Makes sure this is created as a table in the database, by default True
"""

# remove id, make user_id a primary key and quesiton_id a primary key and then work with those.
user_id: int = Field(default=None, primary_key=True)
question_id: int = Field(
default=None, primary_key=True, foreign_key="userquestion.id"
Expand Down
38 changes: 4 additions & 34 deletions mondey_backend/src/mondey_backend/routers/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,7 @@ def update_current_user_answers(
current_answer = session.get(
UserAnswer, (current_active_user.id, new_answer.question_id)
)
# TODO: make this more robust
# for new_answer in new_answers:
# db_new_answer = session.get(UserAnswer, new_answer.id)
# if not db_new_answer:
# db_new_answer = UserAnswer.model_validate(new_answer, update={"user_id": current_active_user.id})
# session.add(db_new_answer)
# else:
# for key, value in new_answer.model_dump().items():
# setattr(db_new_answer, key, value)

if current_answer is None:
session.add(
UserAnswer(
Expand All @@ -199,32 +191,10 @@ def update_current_user_answers(
)
)
else:
current_answer.answer = new_answer.answer

stored_answers = {
answer.question_id: answer
for answer in session.exec(
select(UserAnswer).where(UserAnswer.user_id == current_active_user.id)
).all()
}

if len(stored_answers) > 0:
for new_answer in new_answers:
stored_answer = stored_answers[new_answer.question_id]
stored_answer.answer = new_answer.answer
stored_answer.non_standard = new_answer.non_standard
session.add(stored_answer)
else:
for new_answer in new_answers:
session.add(
UserAnswer(
user_id=current_active_user.id,
question_id=new_answer.question_id,
answer=new_answer.answer,
non_standard=new_answer.non_standard,
)
db_answer = UserAnswer.model_validate(
new_answer, update={"user_id": current_active_user.id}
)

add(session, db_answer)
session.commit()
return new_answers

Expand Down

0 comments on commit cc212a6

Please sign in to comment.