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.page_model import Page_Base from ..models.response_model import * router = APIRouter() @router.post('') async def post_page_obj( obj: Page_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 = 'page' 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_page_obj( obj_id: str, obj: Page_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 = 'page' 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