(session: SessionDep, creator: UserCreator, trans: Trans)
| 174 | return await create(session=session, creator=creator, trans=trans) |
| 175 | |
| 176 | async def create(session: SessionDep, creator: UserCreator, trans: Trans): |
| 177 | if check_account_exists(session=session, account=creator.account): |
| 178 | raise Exception(trans('i18n_exist', msg = f"{trans('i18n_user.account')} [{creator.account}]")) |
| 179 | """ if check_email_exists(session=session, email=creator.email): |
| 180 | raise Exception(trans('i18n_exist', msg = f"{trans('i18n_user.email')} [{creator.email}]")) """ |
| 181 | if not check_email_format(creator.email): |
| 182 | raise Exception(trans('i18n_format_invalid', key = f"{trans('i18n_user.email')} [{creator.email}]")) |
| 183 | #data = creator.model_dump(exclude_unset=True) |
| 184 | data = creator.model_dump() |
| 185 | user_model = UserModel.model_validate(data) |
| 186 | #user_model.create_time = get_timestamp() |
| 187 | user_model.language = "zh-CN" |
| 188 | user_model.oid = 0 |
| 189 | if creator.oid_list: |
| 190 | # need to validate oid_list |
| 191 | db_model_list = [ |
| 192 | UserWsModel.model_validate({ |
| 193 | "oid": oid, |
| 194 | "uid": user_model.id, |
| 195 | "weight": 0 |
| 196 | }) |
| 197 | for oid in creator.oid_list |
| 198 | ] |
| 199 | session.add_all(db_model_list) |
| 200 | user_model.oid = creator.oid_list[0] |
| 201 | session.add(user_model) |
| 202 | return user_model |
| 203 | |
| 204 | |
| 205 | @router.put("", summary=f"{PLACEHOLDER_PREFIX}user_update_api", description=f"{PLACEHOLDER_PREFIX}user_update_api") |
no test coverage detected