async def update_user(ref: str, data: UserUpdate, db: DBClient = client): """Update user info""" logging.info(">>> " + __name__ + ":" + update_user.__name__) user = await crud.get(db, ref) if not user: return utils.create_404_response() user = await crud.update(db, user["_id"], data) if user: return utils.create_aliased_response(UserResponse(response=user)) return utils.create_404_response()
async def read_company(ref: str, db: DBClient=client): """Read company info""" logging.info(f">>> {__name__}:{read_company.__name__}") company = await crud.get(db, ref) if company: return utils.create_aliased_response(CompanyResponse(response=company)) return utils.create_404_response()
async def read_user(username: str, db: DBClient = client): """Read user by id, username, or email""" logging.info(">>> " + __name__ + ":" + read_user.__name__) user = await crud.get(db, username) if user: return utils.create_aliased_response(UserResponse(response=user)) return utils.create_404_response()
async def read_persona(ref: str, db: DBClient = client): """Read persona info""" logging.info(f">>> {__name__}:{read_persona.__name__}") persona = await crud.get(db, ref) if persona: return utils.create_aliased_response(PersonaResponse(response=persona)) return utils.create_404_response()
async def update_company(ref: str, data: CompanyUpdate, db: DBClient=client): """Update company info""" logging.info(f">>> {__name__}:{update_company.__name__}") found = await crud.get(db, ref) if not found: return utils.create_404_response() company = await crud.update(db, found["_id"], data) if company: return utils.create_aliased_response(CompanyResponse(response=company)) return utils.create_422_response()
async def update_persona(ref: str, data: PersonaUpdate, db: DBClient = client): """Update persona info""" logging.info(f">>> {__name__}:{update_persona.__name__}") persona = await crud.get(db, ref) if not persona: return utils.create_404_response() updated = await crud.update(db, persona["_id"], data) if updated: return utils.create_aliased_response(PersonaResponse(response=updated)) return utils.create_422_response()
async def update_user_me( *, password: str = Body(None), fullname: str = Body(None), email: EmailStr = Body(None), current_user: UserInDB = Depends(get_current_active_user), db: DBClient = client): """ Update own user """ # user_in = UserUpdate(**current_user.dict()) user_in = UserUpdate(**current_user) if password is not None: user_in.password = password if fullname is not None: user_in.fullname = fullname if user_in.email is not None: user_in.email = email user = await crud.update(db, current_user["_id"], user_in) if user: return utils.create_aliased_response(UserResponse(response=user)) return utils.create_404_response()