Working on all module routes, methods, and models

This commit is contained in:
Scott Idem
2021-06-22 18:00:34 -04:00
parent b6ca0eb3f2
commit c1d23d15f4
20 changed files with 653 additions and 281 deletions

View File

@@ -26,6 +26,7 @@ class Contact_Base(BaseModel):
)
account_id_random: Optional[str]
account_id: Optional[int]
address_id_random: Optional[str]
address_id: Optional[int]

View File

@@ -30,12 +30,16 @@ class Membership_Member_Base(BaseModel):
account_id_random: Optional[str]
account_id: Optional[int]
membership_type_id_random: Optional[str]
membership_type_id: Optional[int] # NOTE: This is not optional
person_id_random: Optional[str]
person_id: Optional[int]
product_id_random: Optional[str]
product_id: Optional[int] # The product they purchased to get this membership
user_id_random: Optional[str]
user_id: Optional[int]

View File

@@ -0,0 +1,31 @@
from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets
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 log, logging
from app.models.common_field_schema import base_fields, default_num_bytes
class Order_Cfg_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
account_id_random: Optional[str]
account_id: Optional[int]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['account_id_random']:
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None
Order_Cfg_Base.update_forward_refs()

View File

@@ -10,8 +10,9 @@ from app.lib_general import log, logging
from app.models.common_field_schema import base_fields, default_num_bytes
# from app.models.account_models import Account_Base
from app.models.contact_models import Contact_Base
# from app.models.membership_member_models import Membership_Member_Base
from app.models.organization_models import Organization_Base
from app.models.user_models import User_Base
# from app.models.user_models import User_Base
class Person_Base(BaseModel):
@@ -33,13 +34,16 @@ class Person_Base(BaseModel):
)
account_id_random: Optional[str]
account_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
organization_id_random: Optional[str]
organization_id: Optional[int]
contact_id_random: Optional[str]
contact_id: Optional[int]
organization_id_random: Optional[str]
organization_id: Optional[int]
user_id_random: Optional[str]
user_id: Optional[int]
given_name: Optional[str]
family_name: Optional[str]
middle_name: Optional[str]
@@ -59,9 +63,18 @@ class Person_Base(BaseModel):
updated_on: Optional[datetime.datetime] = None
# Including other related objects
# archive_list: Optional[list] # Archive_Base()
event_list: Optional[list] # Event_Base() # Priority l1
hosted_file_list: Optional[list] # Hosted_File_Base() # Priority l2
journal_list: Optional[list] # Journal_Base() # Priority l3
contact: Optional[Union[Contact_Base, None]]
# membership_member: Optional[Membership_Member_Base] # Priority l2
# membership_member_list: Optional[list] # Membership_Base() ????
order_list: Optional[list] # Order_Base() # Priority l2
order_cart_list: Optional[list] # Order_Base() # Priority l2
organization: Optional[Union[Organization_Base, None]]
user: Optional[Union[User_Base, None]]
post_list: Optional[list] # Post_Base() # Priority l1
# user: Optional[Union[User_Base, None]]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -93,13 +106,14 @@ class Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None
@validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
@validator('contact_id', always=True)
def contact_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
if values['contact_id_random']:
return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
return None
@validator('organization_id', always=True)
@@ -111,13 +125,13 @@ class Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['organization_id_random'], table_name='organization')
return None
@validator('contact_id', always=True)
def contact_id_lookup(cls, v, values, **kwargs):
@validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['contact_id_random']:
return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
if values['user_id_random']:
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
return None
class Config:

View File

@@ -41,7 +41,7 @@ def mk_resp(
exclude_unset: bool = True,
response = None
):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if data is None: data_out = { 'result': data }

View File

@@ -8,11 +8,11 @@ from app.db_sql import redis_lookup_id_random
from app.lib_general import log, logging, secure_hash_string
from app.models.common_field_schema import base_fields, default_num_bytes
from app.models.contact_models import Contact_Base
# from app.models.membership_models import Membership_Base
# from app.models.contact_models import Contact_Base
# from app.models.membership_member_models import Membership_Member_Base
from app.models.organization_models import Organization_Base
# from app.models.person_models import Person_Base # Causes circular import
from app.models.user_role_models import User_Role_Base
from app.models.person_models import Person_Base # Causes circular import
# from app.models.user_role_models import User_Role_Base
# ### BEGIN ### API User Models ### User_New_Base() ###
@@ -142,10 +142,13 @@ class User_Out_Base(BaseModel):
)
account_id_random: Optional[str]
#account_id: Optional[int]
contact_id_random: Optional[str]
#contact_id: Optional[int]
organization_id_random: Optional[str]
#organization_id: Optional[int]
person_id_random: Optional[str]
#person_id: Optional[int]
@@ -182,20 +185,20 @@ class User_Out_Base(BaseModel):
# Including other related objects
# from app.models.person_models import Person_Base # Causes circular import
archive_list: Optional[list] # Archive_Base()
contact: Optional[Contact_Base]
event_list: Optional[list] # Event_Base() # Priority l1
hosted_file_list: Optional[list] # Hosted_File_Base() # Priority l2
# archive_list: Optional[list] # Archive_Base()
# contact: Optional[Contact_Base]
event_list: Optional[list] # Event_Base() # Priority complete
hosted_file_list: Optional[list] # Hosted_File_Base() # Priority l3
journal_list: Optional[list] # Journal_Base() # Priority l3
# membership: Optional[Membership_Base] # Priority l2
# membership_member: Optional[Membership_Member_Base] # Priority l2
# membership_member_list: Optional[list] # Membership_Base() ???
order_list: Optional[list] # Order_Base() # Priority l2
order_cart_list: Optional[list] # Order_Base() # Priority l2
organization: Optional[Organization_Base] # Organization_Base() # Priority l3
person: Optional[dict] # Person_Base() # Priority l2
organization: Optional[Union[Organization_Base, None]] # Organization_Base() # Priority l3
# person: Optional[dict] # Person_Base() # Priority l2
person: Optional[Union[Person_Base, None]]
post_list: Optional[list] # Post_Base() # Priority l1
user_role_list: Optional[list] # User_Role_Base()
role_list: Optional[list] = [] # User_Role_Base() # NOTE <- This is a duplicate of above!
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -223,10 +226,13 @@ class User_Base(BaseModel):
)
account_id_random: Optional[str]
account_id: Optional[int]
contact_id_random: Optional[str]
contact_id: Optional[int]
# contact_id_random: Optional[str]
# contact_id: Optional[int]
organization_id_random: Optional[str]
organization_id: Optional[int]
person_id_random: Optional[str]
person_id: Optional[int]
@@ -263,19 +269,22 @@ class User_Base(BaseModel):
updated_on: Optional[datetime.datetime] = None
# Including other related objects
archive_list: Optional[list] # Archive_Base()
contact: Optional[Contact_Base]
# from app.models.person_models import Person_Base # Causes circular import
# archive_list: Optional[list] # Archive_Base()
# contact: Optional[Contact_Base]
event_list: Optional[list] # Event_Base() # Priority l1
hosted_file_list: Optional[list] # Hosted_File_Base() # Priority l2
journal_list: Optional[list] # Journal_Base() # Priority l3
# membership: Optional[Membership_Base] # Priority l2
# membership_member: Optional[Membership_Member_Base] # Priority l2
# membership_member_list: Optional[list] # Membership_Base() ???
order_list: Optional[list] # Order_Base() # Priority l2
order_cart_list: Optional[list] # Order_Base() # Priority l2
organization: Optional[Organization_Base] # Organization_Base() # Priority l3
person: Optional[dict] # Person_Base() # Priority l2
organization: Optional[Union[Organization_Base, None]] # Organization_Base() # Priority l3
# person: Optional[dict] # Person_Base() # Priority l2
person: Optional[Union[Person_Base, None]]
post_list: Optional[list] # Post_Base() # Priority l1
user_role_list: Optional[list] # User_Role_Base()
role_list: Optional[list] = [] # User_Role_Base() # NOTE <- This is a duplicate of above!
# role_list: Optional[list] = [] # User_Role_Base() # NOTE <- This is a duplicate of above!
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -307,14 +316,14 @@ class User_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None
@validator('contact_id', always=True)
def contact_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
# @validator('contact_id', always=True)
# def contact_id_lookup(cls, v, values, **kwargs):
# log.setLevel(logging.WARNING)
# log.debug(locals())
if values['contact_id_random']:
return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
return None
# if values['contact_id_random']:
# return redis_lookup_id_random(record_id_random=values['contact_id_random'], table_name='contact')
# return None
@validator('organization_id', always=True)
def organization_id_lookup(cls, v, values, **kwargs):