Work on better way to update objects.

This commit is contained in:
Scott Idem
2021-06-10 15:23:57 -04:00
parent 264fced5a6
commit b8da9d99eb
13 changed files with 459 additions and 145 deletions

View File

@@ -9,7 +9,9 @@ from app.lib_general import log, logging
from app.config import settings
from app.db_sql import *
from .api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.address_methods import load_address_obj, update_address_obj
from app.models.address_models import Address_Base
from app.models.response_models import *
@@ -74,6 +76,45 @@ async def patch_address_obj(
return result
# ### BEGIN ### API Address ### patch_address_json() ###
@router.patch('/{address_id}/json', response_model=Resp_Body_Base)
async def patch_address_json(
address_obj: Address_Base,
address_id: str = Query(..., min_length=1, max_length=22),
create_missing_obj: bool = False,
x_account_id: Optional[str] = Header(..., ),
return_obj: Optional[bool] = True,
by_alias: Optional[bool] = True,
include: Optional[list] = [],
exclude: Optional[list] = [],
exclude_unset: Optional[bool] = True,
exclude_none: Optional[bool] = True,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if address_id := redis_lookup_id_random(record_id_random=address_id, table_name='address'): pass
else:
return mk_resp(data=None, status_code=404)
if address_obj_up_result := update_address_obj(
address_id=address_id,
address_obj_up=address_obj,
create_missing_obj=create_missing_obj,
):
log.debug(address_obj_up_result)
if return_obj:
address_obj = load_address_obj(address_id=address_id)
address_dict = address_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
return mk_resp(data=address_dict)
else:
return mk_resp(data=address_obj_up_result)
else:
return mk_resp(data=False, status_code=400) # Bad Request
# ### END ### API Address ### patch_address_json() ###
@router.get('/list', response_model=Resp_Body_Base)
async def get_address_obj_li(
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),

View File

@@ -11,6 +11,8 @@ from app.db_sql import *
from .api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.contact_methods import load_contact_obj, update_contact_obj
from app.models.contact_models import Contact_Base
from app.models.response_models import *
@@ -68,6 +70,45 @@ async def patch_contact_obj(
return result
# ### BEGIN ### API Contact ### patch_contact_json() ###
@router.patch('/{contact_id}/json', response_model=Resp_Body_Base)
async def patch_contact_json(
contact_obj: Contact_Base,
contact_id: str = Query(..., min_length=1, max_length=22),
create_missing_obj: bool = False,
x_account_id: Optional[str] = Header(..., ),
return_obj: Optional[bool] = True,
by_alias: Optional[bool] = True,
include: Optional[list] = [],
exclude: Optional[list] = [],
exclude_unset: Optional[bool] = True,
exclude_none: Optional[bool] = True,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if contact_id := redis_lookup_id_random(record_id_random=contact_id, table_name='contact'): pass
else:
return mk_resp(data=None, status_code=404)
if contact_obj_up_result := update_contact_obj(
contact_id=contact_id,
contact_obj_up=contact_obj,
create_missing_obj=create_missing_obj,
):
log.debug(contact_obj_up_result)
if return_obj:
contact_obj = load_contact_obj(contact_id=contact_id)
contact_dict = contact_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
return mk_resp(data=contact_dict)
else:
return mk_resp(data=contact_obj_up_result)
else:
return mk_resp(data=False, status_code=400) # Bad Request
# ### END ### API Contact ### patch_contact_json() ###
@router.get('/list', response_model=Resp_Body_Base)
async def get_contact_obj_li(
for_obj_type: str = Query(None, min_length=2, max_length=50),

View File

@@ -1,11 +1,9 @@
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 app.lib_general import *
# from ..log import *
from app.config import settings
from app.db_sql import *

View File

@@ -5,7 +5,7 @@ from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union
from app.lib_general import *
from ..log import *
# from ..log import *
from app.config import settings
from app.db_sql import *

View File

@@ -11,7 +11,7 @@ from app.db_sql import *
from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.person_methods import load_person_obj
from app.methods.person_methods import load_person_obj, update_person_obj
from app.models.person_models import Person_Base
from app.models.response_models import *
@@ -70,6 +70,45 @@ async def patch_person_obj(
return result
# ### BEGIN ### API Person ### patch_person_json() ###
@router.patch('/{person_id}/json', response_model=Resp_Body_Base)
async def patch_person_json(
person_obj: Person_Base,
person_id: str = Query(..., min_length=1, max_length=22),
create_missing_obj: bool = False,
x_account_id: Optional[str] = Header(..., ),
return_obj: Optional[bool] = True,
by_alias: Optional[bool] = True,
include: Optional[list] = [],
exclude: Optional[list] = [],
exclude_unset: Optional[bool] = True,
exclude_none: Optional[bool] = True,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass
else:
return mk_resp(data=None, status_code=404)
if person_obj_up_result := update_person_obj(
person_id=person_id,
person_obj_up=person_obj,
create_missing_obj=create_missing_obj,
):
log.debug(person_obj_up_result)
if return_obj:
person_obj = load_person_obj(person_id=person_id)
person_dict = person_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
return mk_resp(data=person_dict)
else:
return mk_resp(data=person_obj_up_result)
else:
return mk_resp(data=False, status_code=400) # Bad Request
# ### END ### API Person ### patch_person_json() ###
@router.get('/list', response_model=Resp_Body_Base)
async def get_person_obj_li(
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),