Добавил смену аватарок

This commit is contained in:
urec56 2024-02-20 20:18:27 +03:00
parent 05d476b02d
commit 1ae5871538
2 changed files with 21 additions and 9 deletions

View file

@ -22,21 +22,23 @@ async def upload_file(file: UploadFile, remote_server_url: str) -> httpx.Respons
return response
@router.post('/upload_avatar', response_model=str)
async def upload_avatar(file: UploadFile):
remote_server_url = settings.IMAGE_UPLOAD_SERVER + "upload_avatar"
async def upload_file_returning_str(file: UploadFile, sub_str: str) -> str:
remote_server_url = settings.IMAGE_UPLOAD_SERVER + sub_str
response = await upload_file(file, remote_server_url)
image_url = response.json()['image_url']
image_url = settings.IMAGE_UPLOAD_SERVER + image_url
return image_url
@router.post('/upload_avatar', response_model=str)
async def upload_avatar(file: UploadFile):
image_url = await upload_file_returning_str(file, "upload_avatar")
return image_url
@router.post('/upload_image', response_model=str)
async def upload_avatar(file: UploadFile):
remote_server_url = settings.IMAGE_UPLOAD_SERVER + "upload_image"
response = await upload_file(file, remote_server_url)
image_url = response.json()['image_url']
image_url = settings.IMAGE_UPLOAD_SERVER + image_url
image_url = await upload_file_returning_str(file, "upload_image")
return image_url

View file

@ -1,9 +1,11 @@
from fastapi import APIRouter, Response, Depends
from fastapi import APIRouter, Response, Depends, UploadFile
from fastapi.responses import RedirectResponse
from starlette import status
from app.config import settings
from app.exceptions import UserAlreadyExistsException, UsernameAlreadyInUseException, \
IncorrectPasswordException, PasswordsМismatchException, WrongCodeException
IncorrectPasswordException, PasswordsМismatchException, WrongCodeException, UserNotFoundException
from app.images.router import upload_file, upload_file_returning_str
from app.users.auth import get_password_hash, authenticate_user_by_email, authenticate_user_by_username, \
create_access_token, verify_password, REGISTRATED_USER, get_user_codes_list, VERIFICATED_USER, authenticate_user, \
check_existing_user
@ -88,6 +90,14 @@ async def rename_user(new_username: SUserName, current_user: Users = Depends(get
return new_username
@router.patch("/change_avatar", response_model=str)
async def change_avatar(new_avatar: UploadFile, current_user: Users = Depends(get_current_user)):
new_avatar_url = await upload_file_returning_str(new_avatar, "upload_avatar")
if await UserDAO.change_data(current_user.id, avatar_image=new_avatar_url):
return new_avatar_url
raise UserNotFoundException # Надо подумать
@router.patch("/change_password", status_code=status.HTTP_200_OK)
async def change_password(new_password: SUserPassword, current_user: Users = Depends(get_current_user)):
existing_user = await UserDAO.find_one_or_none(id=current_user.id)