mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
|
|
from fastapi import APIRouter, Depends, Request
|
|
from src.dependencies.auth import get_current_user
|
|
from src.services.orgs import Organization, create_org, delete_org, get_organization, get_organization_by_slug, get_orgs_by_user, update_org
|
|
from src.services.users.users import PublicUser, User
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/")
|
|
async def api_create_org(request: Request, org_object: Organization, current_user: PublicUser = Depends(get_current_user)):
|
|
"""
|
|
Create new organization
|
|
"""
|
|
return await create_org(request, org_object, current_user)
|
|
|
|
|
|
@router.get("/{org_id}")
|
|
async def api_get_org(request: Request, org_id: str, current_user: PublicUser = Depends(get_current_user)):
|
|
"""
|
|
Get single Org by ID
|
|
"""
|
|
return await get_organization(request, org_id)
|
|
|
|
|
|
@router.get("/slug/{org_slug}")
|
|
async def api_get_org_by_slug(request: Request, org_slug: str, current_user: User = Depends(get_current_user)):
|
|
"""
|
|
Get single Org by Slug
|
|
"""
|
|
return await get_organization_by_slug(request, org_slug)
|
|
|
|
|
|
@router.get("/user/page/{page}/limit/{limit}")
|
|
async def api_user_orgs(request: Request, page: int, limit: int, current_user: PublicUser = Depends(get_current_user)):
|
|
"""
|
|
Get orgs by page and limit by user
|
|
"""
|
|
return await get_orgs_by_user(request, current_user.user_id, page, limit)
|
|
|
|
|
|
@router.put("/{org_id}")
|
|
async def api_update_org(request: Request, org_object: Organization, org_id: str, current_user: PublicUser = Depends(get_current_user)):
|
|
"""
|
|
Update Org by ID
|
|
"""
|
|
return await update_org(request, org_object, org_id, current_user)
|
|
|
|
|
|
@router.delete("/{org_id}")
|
|
async def api_delete_org(request: Request, org_id: str, current_user: PublicUser = Depends(get_current_user)):
|
|
"""
|
|
Delete Org by ID
|
|
"""
|
|
|
|
return await delete_org(request, org_id, current_user)
|