update routes
This commit is contained in:
62
http-api/routes/users/orgs.py
Normal file
62
http-api/routes/users/orgs.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from http import HTTPStatus
|
||||
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from aws_lambda_powertools.event_handler.exceptions import (
|
||||
BadRequestError as PowertoolsBadRequestError,
|
||||
)
|
||||
from layercake.dynamodb import (
|
||||
DynamoDBCollection,
|
||||
DynamoDBPersistenceLayer,
|
||||
KeyPair,
|
||||
MissingError,
|
||||
PrefixKey,
|
||||
)
|
||||
from layercake.extra_types import CnpjStr
|
||||
from pydantic import BaseModel
|
||||
|
||||
from api_gateway import JSONResponse
|
||||
from boto3clients import dynamodb_client
|
||||
from middlewares.audit_log_middleware import AuditLogMiddleware
|
||||
from settings import USER_TABLE
|
||||
from user import del_org_member
|
||||
|
||||
|
||||
class BadRequestError(MissingError, PowertoolsBadRequestError): ...
|
||||
|
||||
|
||||
router = Router()
|
||||
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
|
||||
user_collect = DynamoDBCollection(user_layer, exception_cls=BadRequestError)
|
||||
|
||||
|
||||
@router.get(
|
||||
'/<id>/orgs',
|
||||
compress=True,
|
||||
tags=['User'],
|
||||
summary='Get user orgs',
|
||||
)
|
||||
def get_orgs(id: str):
|
||||
return user_collect.query(
|
||||
KeyPair(id, PrefixKey('orgs')),
|
||||
start_key=router.current_event.get_query_string_value('start_key', None),
|
||||
)
|
||||
|
||||
|
||||
class Unassign(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
cnpj: CnpjStr
|
||||
|
||||
|
||||
@router.delete(
|
||||
'/<id>/orgs',
|
||||
compress=True,
|
||||
tags=['User'],
|
||||
summary='Delete user org',
|
||||
middlewares=[
|
||||
AuditLogMiddleware('UNASSIGN_ORG', user_collect, ('id', 'name', 'cnpj'))
|
||||
],
|
||||
)
|
||||
def delete_org(id: str, payload: Unassign):
|
||||
del_org_member(id, org_id=payload.id, persistence_layer=user_layer)
|
||||
return JSONResponse(status_code=HTTPStatus.OK, body=payload)
|
||||
Reference in New Issue
Block a user