agentic.email/backend/app/routers/org.py
2026-10-04 20:32:18 +05:30

39 lines
1.4 KiB
Python

from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_postgres_session
from app.deps.org_manager import require_org_manager
from app.models import Account
from app.schemas import OrgSecuritySettingsRead, OrgSecuritySettingsUpdate
from app.services.org_security import read_security_settings, update_security_settings
router = APIRouter(prefix="/org", tags=["organization"])
@router.get("/security", response_model=OrgSecuritySettingsRead)
async def get_org_security(
manager: Account = Depends(require_org_manager),
session: AsyncSession = Depends(get_postgres_session),
) -> OrgSecuritySettingsRead:
return await read_security_settings(session, manager.company_domain)
@router.patch("/security", response_model=OrgSecuritySettingsRead)
async def patch_org_security(
payload: OrgSecuritySettingsUpdate,
manager: Account = Depends(require_org_manager),
session: AsyncSession = Depends(get_postgres_session),
) -> OrgSecuritySettingsRead:
try:
settings = await update_security_settings(
session,
manager.company_domain,
payload,
)
await session.commit()
return settings
except ValueError as error:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=str(error),
) from error