@@ -200,93 +200,74 @@ async def reset_password(*, db: AsyncSession, pk: int, password: str) -> int:
200200 return count
201201
202202 @staticmethod
203- async def update_nickname (* , db : AsyncSession , request : Request , nickname : str ) -> int :
203+ async def update_nickname (* , db : AsyncSession , user_id : int , nickname : str ) -> int :
204204 """
205205 更新当前用户昵称
206206
207207 :param db: 数据库会话
208- :param request: FastAPI 请求对象
208+ :param user_id: 用户 ID
209209 :param nickname: 用户昵称
210210 :return:
211211 """
212- token = get_token (request )
213- token_payload = jwt_decode (token )
214- user = await user_dao .get (db , token_payload .id )
215- if not user :
216- raise errors .NotFoundError (msg = '用户不存在' )
217- count = await user_dao .update_nickname (db , token_payload .id , nickname )
218- await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user .id } ' )
212+ count = await user_dao .update_nickname (db , user_id , nickname )
213+ await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' )
219214 return count
220215
221216 @staticmethod
222- async def update_avatar (* , db : AsyncSession , request : Request , avatar : str ) -> int :
217+ async def update_avatar (* , db : AsyncSession , user_id : int , avatar : str ) -> int :
223218 """
224219 更新当前用户头像
225220
226221 :param db: 数据库会话
227- :param request: FastAPI 请求对象
222+ :param user_id: 用户 ID
228223 :param avatar: 头像地址
229224 :return:
230225 """
231- token = get_token (request )
232- token_payload = jwt_decode (token )
233- user = await user_dao .get (db , token_payload .id )
234- if not user :
235- raise errors .NotFoundError (msg = '用户不存在' )
236- count = await user_dao .update_avatar (db , token_payload .id , avatar )
237- await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user .id } ' )
226+ count = await user_dao .update_avatar (db , user_id , avatar )
227+ await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' )
238228 return count
239229
240230 @staticmethod
241- async def update_email (* , db : AsyncSession , request : Request , captcha : str , email : str ) -> int :
231+ async def update_email (* , db : AsyncSession , user_id : int , captcha : str , email : str ) -> int :
242232 """
243233 更新当前用户邮箱
244234
245235 :param db: 数据库会话
246- :param request: FastAPI 请求对象
236+ :param user_id: 用户 ID
247237 :param captcha: 邮箱验证码
248238 :param email: 邮箱
249239 :return:
250240 """
251- token = get_token (request )
252- token_payload = jwt_decode (token )
253- user = await user_dao .get (db , token_payload .id )
254- if not user :
255- raise errors .NotFoundError (msg = '用户不存在' )
256241 captcha_code = await redis_client .get (f'{ settings .EMAIL_CAPTCHA_REDIS_PREFIX } :{ ctx .ip } ' )
257242 if not captcha_code :
258243 raise errors .RequestError (msg = '验证码已失效,请重新获取' )
259244 if captcha != captcha_code :
260245 raise errors .CustomError (error = CustomErrorCode .CAPTCHA_ERROR )
261246 await redis_client .delete (f'{ settings .EMAIL_CAPTCHA_REDIS_PREFIX } :{ ctx .ip } ' )
262- count = await user_dao .update_email (db , token_payload . id , email )
263- await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user . id } ' )
247+ count = await user_dao .update_email (db , user_id , email )
248+ await redis_client .delete (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' )
264249 return count
265250
266251 @staticmethod
267- async def update_password (* , db : AsyncSession , request : Request , obj : ResetPasswordParam ) -> int :
252+ async def update_password (* , db : AsyncSession , user_id : int , hash_password : str , obj : ResetPasswordParam ) -> int :
268253 """
269254 更新当前用户密码
270255
271256 :param db: 数据库会话
272- :param request: FastAPI 请求对象
257+ :param user_id: 用户 ID
258+ :param hash_password: 哈希密码
273259 :param obj: 密码重置参数
274260 :return:
275261 """
276- token = get_token (request )
277- token_payload = jwt_decode (token )
278- user = await user_dao .get (db , token_payload .id )
279- if not user :
280- raise errors .NotFoundError (msg = '用户不存在' )
281- if not password_verify (obj .old_password , user .password ):
262+ if not password_verify (obj .old_password , hash_password ):
282263 raise errors .RequestError (msg = '原密码错误' )
283264 if obj .new_password != obj .confirm_password :
284265 raise errors .RequestError (msg = '密码输入不一致' )
285- count = await user_dao .reset_password (db , user . id , obj .new_password )
266+ count = await user_dao .reset_password (db , user_id , obj .new_password )
286267 key_prefix = [
287- f'{ settings .TOKEN_REDIS_PREFIX } :{ user . id } ' ,
288- f'{ settings .TOKEN_REFRESH_REDIS_PREFIX } :{ user . id } ' ,
289- f'{ settings .JWT_USER_REDIS_PREFIX } :{ user . id } ' ,
268+ f'{ settings .TOKEN_REDIS_PREFIX } :{ user_id } ' ,
269+ f'{ settings .TOKEN_REFRESH_REDIS_PREFIX } :{ user_id } ' ,
270+ f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' ,
290271 ]
291272 for prefix in key_prefix :
292273 await redis_client .delete_prefix (prefix )
0 commit comments