Files
OSIT-AE-API-FastAPI/app/routers/account.py

71 lines
2.0 KiB
Python

import datetime
#from datetime import datetime, time, timedelta
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, status
from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union
from ..lib_general import *
from ..log import *
from app.config import settings
from app.db_sql import *
from .api_crud import post_obj_template, patch_obj_template
from ..models.account_model import Account_Base
from ..models.response_model import *
router = APIRouter()
@router.post('')
async def post_account_obj(
obj: Account_Base,
x_account_id: str = Header(...),
return_obj: Optional[bool] = True,
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
table_name_insert = 'account'
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
result = post_obj_template(
table_name_insert=table_name_insert,
data=obj_data_dict,
return_obj=True,
by_alias=True,
exclude_unset=True
)
return result
@router.patch('/{obj_id}')
async def patch_account_obj(
obj_id: str,
obj: Account_Base,
x_account_id: str = Header(...),
return_obj: Optional[bool] = True,
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
table_name_update = 'account'
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
obj_data_dict['id'] = redis_lookup_id_random(record_id_random=obj_id, table_name=table_name_update)
obj_data_dict['id_random'] = obj_id
result = patch_obj_template(
table_name_update=table_name_update,
data=obj_data_dict,
obj_id=obj_id,
return_obj=True,
by_alias=True,
exclude_unset=True
)
return result