Working on all the routes, methods, and models.
This commit is contained in:
@@ -5,7 +5,7 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.account_cfg_models import Account_Cfg_Base
|
||||
@@ -28,8 +28,10 @@ class Account_Base(BaseModel):
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='account_id'
|
||||
alias='account_id'
|
||||
)
|
||||
# account_id: Optional[int] = Field(
|
||||
# )
|
||||
|
||||
code: Optional[str]
|
||||
name: Optional[str]
|
||||
@@ -44,6 +46,8 @@ class Account_Base(BaseModel):
|
||||
created_on: Optional[datetime.datetime] = None
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
|
||||
testing: Optional[str]
|
||||
|
||||
# Including other related objects
|
||||
account_cfg: Optional[Account_Cfg_Base] # Priority l1
|
||||
address_list: Optional[list] # Address_Base() # Priority l3
|
||||
@@ -65,15 +69,6 @@ class Account_Base(BaseModel):
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('account_id_random', always=True)
|
||||
def account_id_random_copy(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
log.debug(locals())
|
||||
|
||||
if values['id_random']:
|
||||
return values['id_random']
|
||||
return None
|
||||
|
||||
@validator('id', always=True)
|
||||
def account_id_lookup(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
@@ -84,6 +79,16 @@ class Account_Base(BaseModel):
|
||||
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='account')
|
||||
return None
|
||||
|
||||
# @validator('account_id', always=True)
|
||||
# def account_id_duplicate(cls, v, values, **kwargs):
|
||||
# log.setLevel(logging.DEBUG)
|
||||
# log.debug(locals())
|
||||
|
||||
# if values['id']:
|
||||
# log.debug(values['id'])
|
||||
# return values['id']
|
||||
# return None
|
||||
|
||||
class Config:
|
||||
underscore_attrs_are_private = True
|
||||
fields = base_fields
|
||||
|
||||
@@ -5,9 +5,9 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Archive_Content_Base(BaseModel):
|
||||
@@ -20,7 +20,7 @@ class Archive_Content_Base(BaseModel):
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='archive_id'
|
||||
alias='archive_id'
|
||||
)
|
||||
account_id_random: Optional[str] # Is this field really needed?
|
||||
account_id: Optional[int] # Is this field really needed?
|
||||
|
||||
@@ -5,9 +5,9 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Archive_Base(BaseModel):
|
||||
|
||||
@@ -5,9 +5,9 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Journal_Entry_Base(BaseModel):
|
||||
@@ -16,11 +16,11 @@ class Journal_Entry_Base(BaseModel):
|
||||
|
||||
id_random: Optional[str] = Field(
|
||||
**base_fields['journal_entry_id_random'],
|
||||
alias='journal_entry_id_random',
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
alias = 'journal_entry_id_random',
|
||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='journal_entry_id'
|
||||
alias = 'journal_entry_id'
|
||||
)
|
||||
|
||||
title: Optional[str]
|
||||
@@ -32,8 +32,9 @@ class Journal_Entry_Base(BaseModel):
|
||||
personal: Optional[bool] = True
|
||||
professional: Optional[bool] = False
|
||||
|
||||
hide: Optional[int]
|
||||
priority: Optional[int]
|
||||
enable: Optional[bool]
|
||||
hide: Optional[bool]
|
||||
priority: Optional[bool]
|
||||
sort: Optional[int]
|
||||
group: Optional[str]
|
||||
|
||||
@@ -43,15 +44,6 @@ class Journal_Entry_Base(BaseModel):
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('journal_entry_id_random', always=True)
|
||||
def journal_entry_id_random_copy(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
log.debug(locals())
|
||||
|
||||
if values['id_random']:
|
||||
return values['id_random']
|
||||
return None
|
||||
|
||||
@validator('id', always=True)
|
||||
def journal_entry_id_lookup(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
|
||||
@@ -5,9 +5,9 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Journal_Base(BaseModel):
|
||||
@@ -15,12 +15,12 @@ class Journal_Base(BaseModel):
|
||||
log.debug(locals())
|
||||
|
||||
id_random: Optional[str] = Field(
|
||||
**base_fields['product_id_random'],
|
||||
alias='product_id_random',
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
**base_fields['journal_id_random'],
|
||||
alias = 'journal_id_random',
|
||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='product_id'
|
||||
alias = 'journal_id'
|
||||
)
|
||||
account_id_random: Optional[str]
|
||||
account_id: Optional[int]
|
||||
@@ -31,8 +31,9 @@ class Journal_Base(BaseModel):
|
||||
title: Optional[str]
|
||||
summary: Optional[str]
|
||||
|
||||
hide: Optional[int]
|
||||
priority: Optional[int]
|
||||
enable: Optional[bool]
|
||||
hide: Optional[bool]
|
||||
priority: Optional[bool]
|
||||
sort: Optional[int]
|
||||
group: Optional[str]
|
||||
|
||||
@@ -40,17 +41,11 @@ class Journal_Base(BaseModel):
|
||||
created_on: Optional[datetime.datetime] = None
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
|
||||
# Including other related objects
|
||||
journal_entry_list: Optional[list] # Journal_Entry_Base()
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('journal_id_random', always=True)
|
||||
def journal_id_random_copy(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
log.debug(locals())
|
||||
|
||||
if values['id_random']:
|
||||
return values['id_random']
|
||||
return None
|
||||
|
||||
@validator('id', always=True)
|
||||
def journal_id_lookup(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
|
||||
@@ -5,11 +5,11 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from app.config import settings
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
# ### BEGIN ### API Response Model ### Resp_Body_Base() ###
|
||||
@@ -18,6 +18,10 @@ class Resp_Body_Base(BaseModel):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
test_prop: Optional[str] = Field(
|
||||
alias='test_prop_alias'
|
||||
)
|
||||
|
||||
data: Union[dict, list]
|
||||
meta: Optional[dict]
|
||||
# ### END ### API Response Model ### Resp_Body_Base() ###
|
||||
@@ -26,26 +30,30 @@ class Resp_Body_Base(BaseModel):
|
||||
# ### BEGIN ### API Response Model ### mk_resp() ###
|
||||
# The make response function for REST - STI 2021-03-17
|
||||
def mk_resp(
|
||||
data:None|bool|dict|list,
|
||||
dict_to_json:bool=False,
|
||||
status_code:int=200,
|
||||
status_message:str='',
|
||||
status_name:str='',
|
||||
success:bool=True,
|
||||
details:str='',
|
||||
by_alias:bool=True,
|
||||
exclude_unset:bool=True,
|
||||
response=None
|
||||
data: None|bool|dict|list,
|
||||
dict_to_json: bool = False,
|
||||
status_code: int = 200,
|
||||
status_message: str = '',
|
||||
status_name: str = '',
|
||||
success: bool = True,
|
||||
details: str = '',
|
||||
by_alias: bool = True,
|
||||
exclude_unset: bool = True,
|
||||
response = None
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
if data is None: data = { 'result': data }
|
||||
elif data == False: data = { 'result': data }
|
||||
elif data == True: data = { 'result': data }
|
||||
if data is None: data_out = { 'result': data }
|
||||
elif data == False: data_out = { 'result': data }
|
||||
elif data == True: data_out = { 'result': data }
|
||||
elif isinstance(data, dict): data_out = data
|
||||
else: # Assuming it is still and object. This should be improved. Example model type: "<class 'app.models.account_models.Account_Base'>"
|
||||
data_out = data.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
log.debug(data_out)
|
||||
|
||||
resp_body = {}
|
||||
resp_body['data'] = data
|
||||
resp_body['data'] = data_out
|
||||
resp_body['meta'] = {}
|
||||
resp_body['meta']['details'] = details
|
||||
resp_body['meta']['status_code'] = status_code
|
||||
@@ -81,9 +89,14 @@ def mk_resp(
|
||||
elif status_code == 503: response.status_code = status.HTTP_503_SERVICE_UNAVAILABLE
|
||||
elif status_code == 504: response.status_code = status.HTTP_504_GATEWAY_TIMEOUT
|
||||
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(type(resp_body['data']))
|
||||
|
||||
resp_body = Resp_Body_Base(**resp_body).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
resp_body_obj = Resp_Body_Base(**resp_body)
|
||||
resp_body_obj.test_prop = 'my value'
|
||||
log.debug(resp_body_obj)
|
||||
resp_body_dict = resp_body_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
log.debug(resp_body_dict)
|
||||
|
||||
return resp_body
|
||||
return resp_body_dict
|
||||
# ### END ### API Response Model ### mk_resp() ###
|
||||
@@ -5,10 +5,9 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
#from .site_models import Site_Base as Site_Base_2
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Site_Domain_Base(BaseModel):
|
||||
@@ -21,7 +20,7 @@ class Site_Domain_Base(BaseModel):
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='site_domain_id'
|
||||
alias='site_domain_id'
|
||||
)
|
||||
|
||||
site_id_random: Optional[str]
|
||||
@@ -38,19 +37,8 @@ class Site_Domain_Base(BaseModel):
|
||||
created_on: Optional[datetime.datetime] = None
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
|
||||
#site: Optional[Site_Base_2] = Site_Base_2()
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('site_domain_id_random', always=True)
|
||||
def site_domain_id_random_copy(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
log.debug(locals())
|
||||
|
||||
if values['id_random']:
|
||||
return values['id_random']
|
||||
return None
|
||||
|
||||
@validator('id', always=True)
|
||||
def site_domain_id_lookup(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
|
||||
@@ -5,10 +5,10 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from .site_domain_models import Site_Domain_Base as Site_Domain_Base_2
|
||||
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||
from app.models.site_domain_models import Site_Domain_Base
|
||||
|
||||
|
||||
class Site_Base(BaseModel):
|
||||
@@ -21,7 +21,7 @@ class Site_Base(BaseModel):
|
||||
default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
id: Optional[int] = Field(
|
||||
#alias='site_id'
|
||||
alias='site_id'
|
||||
)
|
||||
|
||||
account_id_random: Optional[str]
|
||||
@@ -75,19 +75,11 @@ class Site_Base(BaseModel):
|
||||
created_on: Optional[datetime.datetime] = None
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
|
||||
site_domain: Optional[Site_Domain_Base_2] = Site_Domain_Base_2()
|
||||
# Including other related objects
|
||||
site_domain_list: Optional[list] # Site_Domain_Base()
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('site_id_random', always=True)
|
||||
def site_id_random_copy(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
log.debug(locals())
|
||||
|
||||
if values['id_random']:
|
||||
return values['id_random']
|
||||
return None
|
||||
|
||||
@validator('id', always=True)
|
||||
def site_id_lookup(cls, v, values, **kwargs):
|
||||
log.setLevel(logging.WARNING)
|
||||
|
||||
Reference in New Issue
Block a user