Coverage for api/endpoints/misc/verifications.py: 81%
16 statements
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
1from typing import Annotated
3from fastapi import APIRouter, Depends
4from handlers.misc.verification import on_verify
5from keycloak import idp
6from sotrans_models.models._mongo import PydanticObjectIdPath
7from sotrans_models.models.misc.verification import (
8 VerificationCreateModel,
9 VerificationDBModel,
10)
11from sotrans_models.models.responses import ErrorRepr
12from sotrans_models.models.roles import SotransRole
13from sotrans_models.models.users import SotransOIDCUserModel
14from starlette import status
16verifications_router = APIRouter()
19@verifications_router.put(
20 "/{collection}/{object_id}/verification",
21 status_code=status.HTTP_201_CREATED,
22 responses={400: {"model": ErrorRepr}, 404: {"model": ErrorRepr}},
23)
24async def verify(
25 collection: str,
26 object_id: PydanticObjectIdPath,
27 user: Annotated[
28 SotransOIDCUserModel,
29 Depends(
30 idp.get_current_user(
31 required_role_names=[
32 SotransRole.company_director,
33 SotransRole.security_service,
34 ]
35 )
36 ),
37 ],
38 verification: VerificationCreateModel,
39) -> VerificationDBModel:
40 verification.collection = collection
41 verification.object_id = object_id
42 return await on_verify(user, verification)