feat: init org thumbnails creation & edition & redesign dash org config page

This commit is contained in:
swve 2024-09-27 11:03:33 +02:00
parent 41a11c5f83
commit aecf03404f
17 changed files with 661 additions and 99 deletions

View file

@ -34,9 +34,10 @@ from src.db.organizations import (
OrganizationRead,
OrganizationUpdate,
)
from src.services.orgs.logos import upload_org_logo
from fastapi import HTTPException, UploadFile, status, Request
from src.services.orgs.uploads import upload_org_logo, upload_org_thumbnail
async def get_organization(
request: Request,
@ -421,6 +422,42 @@ async def update_org_logo(
return {"detail": "Logo updated"}
async def update_org_thumbnail(
request: Request,
thumbnail_file: UploadFile,
org_id: str,
current_user: PublicUser | AnonymousUser,
db_session: Session,
):
statement = select(Organization).where(Organization.id == org_id)
result = db_session.exec(statement)
org = result.first()
if not org:
raise HTTPException(
status_code=404,
detail="Organization not found",
)
# RBAC check
await rbac_check(request, org.org_uuid, current_user, "update", db_session)
# Upload logo
name_in_disk = await upload_org_thumbnail(thumbnail_file, org.org_uuid)
# Update org
org.thumbnail_image = name_in_disk
# Complete the org object
org.update_date = str(datetime.now())
db_session.add(org)
db_session.commit()
db_session.refresh(org)
return {"detail": "Thumbnail updated"}
async def delete_org(
request: Request,

View file

@ -16,3 +16,18 @@ async def upload_org_logo(logo_file, org_uuid):
)
return name_in_disk
async def upload_org_thumbnail(thumbnail_file, org_uuid):
contents = thumbnail_file.file.read()
name_in_disk = f"{uuid4()}.{thumbnail_file.filename.split('.')[-1]}"
await upload_content(
"thumbnails",
"orgs",
org_uuid,
contents,
name_in_disk,
)
return name_in_disk