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

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 return response
@router.post('/upload_avatar', response_model=str) async def upload_file_returning_str(file: UploadFile, sub_str: str) -> str:
async def upload_avatar(file: UploadFile): remote_server_url = settings.IMAGE_UPLOAD_SERVER + sub_str
remote_server_url = settings.IMAGE_UPLOAD_SERVER + "upload_avatar"
response = await upload_file(file, remote_server_url) response = await upload_file(file, remote_server_url)
image_url = response.json()['image_url'] image_url = response.json()['image_url']
image_url = settings.IMAGE_UPLOAD_SERVER + image_url image_url = settings.IMAGE_UPLOAD_SERVER + image_url
return 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) @router.post('/upload_image', response_model=str)
async def upload_avatar(file: UploadFile): async def upload_avatar(file: UploadFile):
remote_server_url = settings.IMAGE_UPLOAD_SERVER + "upload_image" image_url = await upload_file_returning_str(file, "upload_image")
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 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 fastapi.responses import RedirectResponse
from starlette import status from starlette import status
from app.config import settings
from app.exceptions import UserAlreadyExistsException, UsernameAlreadyInUseException, \ 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, \ 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, \ create_access_token, verify_password, REGISTRATED_USER, get_user_codes_list, VERIFICATED_USER, authenticate_user, \
check_existing_user check_existing_user
@ -88,6 +90,14 @@ async def rename_user(new_username: SUserName, current_user: Users = Depends(get
return new_username 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) @router.patch("/change_password", status_code=status.HTTP_200_OK)
async def change_password(new_password: SUserPassword, current_user: Users = Depends(get_current_user)): 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) existing_user = await UserDAO.find_one_or_none(id=current_user.id)