|
46 | 46 | is_user_in_a_seller_group, |
47 | 47 | validate_payment, |
48 | 48 | ) |
| 49 | +from app.types.exceptions import ObjectExpectedInDbNotFoundError |
49 | 50 | from app.types.module import Module |
50 | 51 | from app.types.websocket import ( |
51 | 52 | HyperionWebsocketsRoom, |
@@ -303,17 +304,30 @@ async def update_cdr_user( |
303 | 304 | detail="User not found.", |
304 | 305 | ) |
305 | 306 |
|
306 | | - curriculum = await cruds_cdr.get_cdr_user_curriculum(db, user_id) |
| 307 | + curriculum_membership = await cruds_cdr.get_cdr_user_curriculum(db, user_id) |
| 308 | + curriculum: schemas_cdr.CurriculumComplete | None = None |
| 309 | + if curriculum_membership: |
| 310 | + curriculum_db = await cruds_cdr.get_curriculum_by_id( |
| 311 | + db=db, |
| 312 | + curriculum_id=curriculum_membership.curriculum_id, |
| 313 | + ) |
| 314 | + if curriculum_db is None: |
| 315 | + raise ObjectExpectedInDbNotFoundError( |
| 316 | + object_name="curriculum", |
| 317 | + object_id=curriculum_membership.curriculum_id, |
| 318 | + ) |
| 319 | + curriculum = schemas_cdr.CurriculumComplete( |
| 320 | + id=curriculum_db.id, |
| 321 | + name=curriculum_db.name, |
| 322 | + ) |
307 | 323 |
|
308 | 324 | cdr_status = await get_core_data(schemas_cdr.Status, db) |
309 | 325 | if cdr_status.status == CdrStatus.onsite: |
310 | 326 | try: |
311 | 327 | await ws_manager.send_message_to_room( |
312 | 328 | message=schemas_cdr.UpdateUserWSMessageModel( |
313 | 329 | data=schemas_cdr.CdrUser( |
314 | | - curriculum=schemas_cdr.CurriculumComplete( |
315 | | - **curriculum.__dict__, |
316 | | - ), |
| 330 | + curriculum=curriculum, |
317 | 331 | school_id=user_db.school_id, |
318 | 332 | account_type=user_db.account_type, |
319 | 333 | name=user_db.name, |
|
0 commit comments