Working finally getting this to interact with the actual front end.
This commit is contained in:
10
app/main.py
10
app/main.py
@@ -18,7 +18,7 @@ from .lib_general import *
|
||||
from .log import *
|
||||
|
||||
# Import the routers here first:
|
||||
from .routers import api_crud, api, account, address, archive, archive_content, contact, event, event_exhibit, event_registration, event_session, membership, order, order_cart, organization, page, person, post, post_comment, product, site, user, websockets # , items, journals
|
||||
from .routers import api_crud, api, account, address, archive, archive_content, contact, event, event_exhibit, event_registration, event_session, membership, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, websockets # , items, journals
|
||||
|
||||
from .db_sql import db
|
||||
|
||||
@@ -213,6 +213,14 @@ app.include_router(
|
||||
#dependencies=[Depends(get_account_header)],
|
||||
#responses={404: {'description': 'Not found'}},
|
||||
)
|
||||
app.include_router(
|
||||
site_domain.router,
|
||||
prefix='/site/domain',
|
||||
tags=['Site Domain'],
|
||||
#dependencies=[Depends(get_token_header)],
|
||||
#dependencies=[Depends(get_account_header)],
|
||||
#responses={404: {'description': 'Not found'}},
|
||||
)
|
||||
app.include_router(
|
||||
user.router,
|
||||
prefix='/user',
|
||||
|
||||
@@ -5,8 +5,7 @@ from typing import Dict, List, Optional, Set, Union
|
||||
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
|
||||
|
||||
from ..lib_general import *
|
||||
from ..log import *
|
||||
from .db_sql import sql_select
|
||||
from ..db_sql import sql_select
|
||||
|
||||
from .order_model import Order_Base
|
||||
#from .person_model import Person_Base
|
||||
@@ -160,8 +159,8 @@ def save_order_obj(order_obj_new:Order_Base=None, repl_order_line_list:bool=Fals
|
||||
# ### END ### API Order Model ### save_order_obj() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Order Model ### get_order_obj() ###
|
||||
def get_order_obj(order_id=None, inc_order_line_li=None, inc_order_cfg=None, inc_person_obj=None, inc_user_obj=None):
|
||||
# ### BEGIN ### API Order Model ### load_order_obj() ###
|
||||
def load_order_obj(order_id=None, inc_order_line_li=None, inc_order_cfg=None, inc_person_obj=None, inc_user_obj=None):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
@@ -205,4 +204,4 @@ def get_order_obj(order_id=None, inc_order_line_li=None, inc_order_cfg=None, inc
|
||||
log.error(e.json())
|
||||
|
||||
return order_obj
|
||||
# ### END ### API Order Model ### get_order_obj() ###
|
||||
# ### END ### API Order Model ### load_order_obj() ###
|
||||
|
||||
@@ -8,6 +8,7 @@ from ..lib_general import *
|
||||
from ..log import *
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
#from .site_model import Site_Base as Site_Base_2
|
||||
|
||||
|
||||
class Site_Domain_Base(BaseModel):
|
||||
@@ -30,13 +31,15 @@ class Site_Domain_Base(BaseModel):
|
||||
|
||||
# restrict_access: Optional[bool]
|
||||
access_key: Optional[str]
|
||||
required_referrer: Optional[bool]
|
||||
required_referrer: Optional[str]
|
||||
|
||||
valid_for: Optional[int] # number of hours
|
||||
|
||||
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)
|
||||
|
||||
@@ -8,6 +8,7 @@ from ..lib_general import *
|
||||
from ..log import *
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from .site_domain_model import Site_Domain_Base as Site_Domain_Base_2
|
||||
|
||||
|
||||
class Site_Base(BaseModel):
|
||||
@@ -50,14 +51,14 @@ class Site_Base(BaseModel):
|
||||
background_bg_color: Optional[str]
|
||||
path_html_menu: Optional[str]
|
||||
|
||||
title: Optional[str]
|
||||
html_menu: Optional[str]
|
||||
html_header: Optional[str]
|
||||
html_header_h1: Optional[str]
|
||||
html_header_h2: Optional[str]
|
||||
html_banner: Optional[str]
|
||||
html_root_body: Optional[str]
|
||||
html_tagline: Optional[str]
|
||||
title: Optional[str] = None
|
||||
html_menu: Optional[str] = None
|
||||
html_header: Optional[str] = None
|
||||
html_header_h1: Optional[str] = None
|
||||
html_header_h2: Optional[str] = None
|
||||
html_banner: Optional[str] = None
|
||||
html_root_body: Optional[str] = None
|
||||
html_tagline: Optional[str] = None
|
||||
|
||||
logo_filename: Optional[str]
|
||||
banner_image_filename: Optional[str]
|
||||
@@ -78,6 +79,8 @@ 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()
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
#@validator('site_id_random', always=True)
|
||||
|
||||
@@ -10,8 +10,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 ..models.address_model import Address_Base
|
||||
from ..models.response_model import *
|
||||
from ..models.address_model import Address_Base
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
@@ -23,7 +23,10 @@ async def post_address_obj(
|
||||
x_account_id: 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())
|
||||
@@ -47,7 +50,10 @@ async def patch_address_obj(
|
||||
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())
|
||||
@@ -73,7 +79,10 @@ async def get_address_obj_li(
|
||||
for_obj_id: Optional[str] = Query(None, min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
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())
|
||||
@@ -94,7 +103,10 @@ async def get_address_obj(
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
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())
|
||||
|
||||
@@ -8,6 +8,8 @@ from ..lib_general import *
|
||||
from app.config import settings
|
||||
from app.db_sql import *
|
||||
|
||||
from ..models.response_model import *
|
||||
|
||||
from ..models.account_model import *
|
||||
from ..models.account_cfg_model import *
|
||||
from ..models.address_model import *
|
||||
@@ -30,7 +32,6 @@ from ..models.site_model import *
|
||||
from ..models.site_domain_model import *
|
||||
from ..models.user_model import *
|
||||
from ..models.user_role_model import *
|
||||
from ..models.response_model import *
|
||||
|
||||
obj_type_li = {}
|
||||
|
||||
@@ -131,7 +132,10 @@ async def get_obj_li(
|
||||
for_obj_id: Optional[str] = Query(None, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
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())
|
||||
@@ -207,7 +211,10 @@ async def get_obj(
|
||||
qry_str: Optional[str] = Query(None, max_length=50),
|
||||
qry_int: Optional[int] = None,
|
||||
by_alias: Optional[bool] = True,
|
||||
include: Optional[list] = [],
|
||||
exclude: Optional[list] = [],
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
"""
|
||||
Simple select object type with an ID:
|
||||
@@ -286,8 +293,6 @@ async def delete_obj(
|
||||
obj_type_l3: str=None,
|
||||
obj_id: str=None,
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
):
|
||||
"""
|
||||
Simple delete object type with an ID:
|
||||
@@ -352,7 +357,10 @@ def post_obj_template(
|
||||
data:dict=None,
|
||||
return_obj:bool=True,
|
||||
by_alias:bool=True,
|
||||
exclude_unset:bool=True
|
||||
include: Optional[list] = [],
|
||||
exclude: Optional[list] = [],
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
@@ -389,7 +397,10 @@ def patch_obj_template(
|
||||
obj_id:str=None,
|
||||
return_obj:bool=True,
|
||||
by_alias:bool=True,
|
||||
exclude_unset:bool=True
|
||||
include: Optional[list] = [],
|
||||
exclude: Optional[list] = [],
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
@@ -430,7 +441,10 @@ def get_obj_li_template(
|
||||
for_obj_type: Optional[str] = Query(None, max_length=50),
|
||||
for_obj_id: Optional[Union[int,str]] = None,
|
||||
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())
|
||||
@@ -466,7 +480,10 @@ def get_obj_template(
|
||||
obj_type: str = Query(None, max_length=50),
|
||||
obj_id: Optional[Union[int,str]] = None,
|
||||
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())
|
||||
|
||||
@@ -10,8 +10,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 ..models.contact_model import Contact_Base
|
||||
from ..models.response_model import *
|
||||
from ..models.contact_model import Contact_Base
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -11,8 +11,9 @@ 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 ..models.order_model import Order_Base
|
||||
from ..models.response_model import *
|
||||
from ..models.order_model import Order_Base
|
||||
from ..models.order_methods import load_order_obj, save_order_obj
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
@@ -73,6 +74,13 @@ async def get_order_obj_li(
|
||||
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),
|
||||
for_obj_id: Optional[str] = Query(None, min_length=1, max_length=22),
|
||||
order_status: Optional[str] = 'complete',
|
||||
from_datetime: Optional[datetime.datetime] = None,
|
||||
to_datetime: Optional[datetime.datetime] = None,
|
||||
limit: Optional[int] = None,
|
||||
inc_order_line_li: Optional[bool] = False,
|
||||
inc_order_cfg: Optional[bool] = False,
|
||||
inc_person_obj: Optional[bool] = False,
|
||||
inc_user_obj: Optional[bool] = False,
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
@@ -80,45 +88,49 @@ async def get_order_obj_li(
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'order'
|
||||
result = get_obj_li_template(
|
||||
obj_type=obj_type,
|
||||
for_obj_type=for_obj_type,
|
||||
for_obj_id=for_obj_id,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
person_id = redis_lookup_id_random(record_id_random=person_id_random, table_name='person')
|
||||
# obj_type = 'order'
|
||||
# result = get_obj_li_template(
|
||||
# obj_type=obj_type,
|
||||
# for_obj_type=for_obj_type,
|
||||
# for_obj_id=for_obj_id,
|
||||
# by_alias=True,
|
||||
# exclude_unset=True,
|
||||
# )
|
||||
# return result
|
||||
|
||||
data = {}
|
||||
data['person_id'] = person_id
|
||||
|
||||
if obj_type == 'person': # and check there is an ID as well!
|
||||
if for_obj_type == 'account' and for_obj_id:
|
||||
data['account_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='account')
|
||||
sql_account_person_user = f"""`order`.account_id = :account_id"""
|
||||
elif for_obj_type == 'person' and for_obj_id:
|
||||
data['person_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='person')
|
||||
sql_account_person_user = f"""`order`.person_id = :person_id"""
|
||||
elif for_obj_type == 'user' and for_obj_id:
|
||||
data['user_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='user')
|
||||
sql_account_person_user = f"""`order`.user_id = :user_id"""
|
||||
else:
|
||||
sql_account_person_user = ''
|
||||
|
||||
if order_status:
|
||||
if order_status in ['canceled', 'complete', 'in progress', 'started']:
|
||||
data['status'] = order_status
|
||||
sql_status = f"""AND `order`.status = :status"""
|
||||
else:
|
||||
sql_status = ''
|
||||
|
||||
if from_datetime and to_datetime:
|
||||
data['from_datetime'] = from_datetime
|
||||
data['to_datetime'] = to_datetime
|
||||
sql_from_to_datetime = f"""AND `order`.created_on >= :from_datetime AND `order`.created_on <= :to_datetime"""
|
||||
elif from_datetime:
|
||||
data['from_datetime'] = from_datetime
|
||||
sql_from_to_datetime = f"""AND `order`.created_on >= :from_datetime"""
|
||||
elif to_datetime:
|
||||
data['to_datetime'] = to_datetime
|
||||
sql_from_to_datetime = f"""AND `order`.created_on <= :to_datetime"""
|
||||
else:
|
||||
sql_from_to_datetime = ''
|
||||
|
||||
# if from_datetime and to_datetime:
|
||||
# data['from_datetime'] = from_datetime
|
||||
# data['to_datetime'] = to_datetime
|
||||
# sql_from_to_datetime = f"""AND `order`.created_on >= :from_datetime AND `order`.created_on <= :to_datetime"""
|
||||
# elif from_datetime:
|
||||
# data['from_datetime'] = from_datetime
|
||||
# sql_from_to_datetime = f"""AND `order`.created_on >= :from_datetime"""
|
||||
# elif to_datetime:
|
||||
# data['to_datetime'] = to_datetime
|
||||
# sql_from_to_datetime = f"""AND `order`.created_on <= :to_datetime"""
|
||||
# else:
|
||||
# sql_from_to_datetime = ''
|
||||
|
||||
if limit := request.args.get('limit', default=None, type=int):
|
||||
if limit:
|
||||
data['limit'] = limit
|
||||
sql_limit = f"""LIMIT :limit"""
|
||||
else:
|
||||
@@ -129,20 +141,21 @@ async def get_order_obj_li(
|
||||
FROM `order` AS `order`
|
||||
WHERE {sql_account_person_user}
|
||||
{sql_status}
|
||||
/*{sql_from_to_datetime}*/
|
||||
{sql_from_to_datetime}
|
||||
ORDER BY `order`.created_on DESC, `order`.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
|
||||
if sql_result := sql_select(data=data, sql=sql, as_list=True):
|
||||
resp_data_li = []
|
||||
for record in sql_result:
|
||||
resp_data = base_name(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
resp_data_li.append(resp_data)
|
||||
|
||||
return mk_resp(data=resp_data_li)
|
||||
if order_obj_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||
order_obj_li = []
|
||||
for order_obj in order_obj_li_result:
|
||||
order_id = order_obj.get('order_id', None)
|
||||
if order_obj := load_order_obj(order_id=order_id, inc_order_line_li=inc_order_line_li, inc_order_cfg=inc_order_cfg, inc_person_obj=inc_person_obj, inc_user_obj=inc_user_obj):
|
||||
data = order_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
order_obj_li.append(data)
|
||||
return mk_resp(data=order_obj_li)
|
||||
else:
|
||||
log.debug(sql_result)
|
||||
log.debug(order_obj_li_result)
|
||||
return mk_resp(data=False, status_code=404)
|
||||
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@ 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 ..models.site_model import Site_Base
|
||||
from ..models.response_model import *
|
||||
from ..models.site_model import Site_Base
|
||||
from ..models.site_domain_model import Site_Domain_Base
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
@@ -123,4 +124,47 @@ async def delete_site_obj(
|
||||
obj_type=obj_type,
|
||||
obj_id=obj_id,
|
||||
)
|
||||
return result
|
||||
return result
|
||||
|
||||
|
||||
# @router.get('/domain/lookup_fqdn', response_model=Resp_Body_Base)
|
||||
# async def get_site_obj(
|
||||
# fqdn: str,
|
||||
# access_key: Optional[str] = None,
|
||||
# referrer: Optional[str] = None,
|
||||
# x_account_id: str = Header(...),
|
||||
# by_alias: Optional[bool] = True,
|
||||
# exclude_unset: Optional[bool] = True,
|
||||
# ):
|
||||
# log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
# log.debug(locals())
|
||||
|
||||
# data = {}
|
||||
# data['fqdn'] = fqdn
|
||||
# data['domain_access_key'] = access_key
|
||||
# data['required_referrer'] = referrer
|
||||
|
||||
# if access_key:
|
||||
# sql_domain_access_key = 'AND site_domain.domain_access_key = :domain_access_key'
|
||||
# if referrer:
|
||||
# sql_referrer = 'AND site_domain.required_referrer = :required_referrer'
|
||||
|
||||
# sql = """
|
||||
# SELECT *
|
||||
# FROM `v_site_domain` AS site_domain
|
||||
# WHERE site_domain.fqdn = :fqdn
|
||||
# {sql_domain_access_key}
|
||||
# {sql_referrer}
|
||||
# ;
|
||||
# """
|
||||
|
||||
# if site_domain_obj_result := sql_select(data=data, sql=sql):
|
||||
# try:
|
||||
# site_domain_obj = Site_Domain_Base(**site_domain_obj_result)
|
||||
# log.debug(order_obj)
|
||||
# except ValidationError as e:
|
||||
# log.error(e.json())
|
||||
# return mk_resp(data=order_obj_li)
|
||||
# else:
|
||||
# log.debug(order_obj_li_result)
|
||||
# return mk_resp(data=False, status_code=404)
|
||||
|
||||
191
app/routers/site_domain.py
Normal file
191
app/routers/site_domain.py
Normal file
@@ -0,0 +1,191 @@
|
||||
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 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 ..models.response_model import *
|
||||
from ..models.site_model import Site_Base
|
||||
from ..models.site_domain_model import Site_Domain_Base
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.post('', response_model=Resp_Body_Base)
|
||||
async def post_site_domain_obj(
|
||||
obj: Site_Domain_Base,
|
||||
x_account_id: str = Header(...),
|
||||
return_obj: Optional[bool] = True,
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'site_domain'
|
||||
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
||||
result = post_obj_template(
|
||||
obj_type=obj_type,
|
||||
data=obj_data_dict,
|
||||
return_obj=True,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.patch('/{obj_id}', response_model=Resp_Body_Base)
|
||||
async def patch_site_domain_obj(
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
obj: Site_Domain_Base = None,
|
||||
x_account_id: Optional[str] = Header(..., ),
|
||||
return_obj: Optional[bool] = True,
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'site_domain'
|
||||
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=obj_type)
|
||||
obj_data_dict['id_random'] = obj_id
|
||||
result = patch_obj_template(
|
||||
obj_type=obj_type,
|
||||
data=obj_data_dict,
|
||||
obj_id=obj_id,
|
||||
return_obj=True,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.get('/lookup_fqdn', response_model=Resp_Body_Base)
|
||||
async def get_site_domain_obj(
|
||||
fqdn: str,
|
||||
access_key: Optional[str] = None,
|
||||
referrer: Optional[str] = None,
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
include: Optional[list] = [],
|
||||
exclude: Optional[list] = [],
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
data = {}
|
||||
data['fqdn'] = fqdn
|
||||
data['domain_access_key'] = access_key
|
||||
data['required_referrer'] = referrer
|
||||
|
||||
if access_key:
|
||||
#sql_domain_access_key = 'AND site_domain.domain_access_key = :domain_access_key'
|
||||
|
||||
sql_domain_access_key = """
|
||||
AND (site_domain.domain_access_key = :domain_access_key AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = ''))
|
||||
OR (site_domain.domain_access_key = :domain_access_key AND site_domain.required_referrer = :required_referrer)
|
||||
"""
|
||||
else:
|
||||
sql_domain_access_key = 'AND site_domain.domain_access_key IS NULL'
|
||||
#if referrer:
|
||||
# sql_referrer = 'AND site_domain.required_referrer = :required_referrer'
|
||||
|
||||
sql = f"""
|
||||
SELECT *, site_enable_from AS 'enable_from', site_enable_to AS 'enable_to'
|
||||
FROM `v_site_domain` AS site_domain
|
||||
WHERE site_domain.fqdn = :fqdn
|
||||
{sql_domain_access_key}
|
||||
;
|
||||
"""
|
||||
log.debug(sql)
|
||||
|
||||
if site_domain_obj_result := sql_select(data=data, sql=sql):
|
||||
try:
|
||||
site_obj = Site_Base(**site_domain_obj_result).dict(by_alias=by_alias, exclude_unset=exclude_unset, exclude_none=exclude_none)
|
||||
log.debug(site_obj)
|
||||
except ValidationError as e:
|
||||
log.error(e.json())
|
||||
try:
|
||||
site_domain_obj = Site_Domain_Base(**site_domain_obj_result).dict(by_alias=by_alias, exclude_unset=exclude_unset, exclude_none=exclude_none)
|
||||
log.debug(site_domain_obj)
|
||||
except ValidationError as e:
|
||||
log.error(e.json())
|
||||
|
||||
site_domain_obj['site'] = site_obj
|
||||
log.debug(site_domain_obj)
|
||||
|
||||
return mk_resp(data=site_domain_obj)
|
||||
else:
|
||||
log.debug(site_domain_obj_result)
|
||||
return mk_resp(data=False, status_code=404)
|
||||
|
||||
|
||||
@router.get('/list', response_model=Resp_Body_Base)
|
||||
async def get_site_domain_obj_li(
|
||||
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),
|
||||
for_obj_id: Optional[str] = Query(None, min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'site_domain'
|
||||
result = get_obj_li_template(
|
||||
obj_type=obj_type,
|
||||
for_obj_type=for_obj_type,
|
||||
for_obj_id=for_obj_id,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.get('/{obj_id}', response_model=Resp_Body_Base)
|
||||
async def get_site_domain_obj(
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
exclude_none: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'site_domain'
|
||||
result = get_obj_template(
|
||||
obj_type=obj_type,
|
||||
obj_id=obj_id,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.delete('/{obj_id}', response_model=Resp_Body_Base)
|
||||
async def delete_site_domain_obj(
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'site_domain'
|
||||
result = delete_obj_template(
|
||||
obj_type=obj_type,
|
||||
obj_id=obj_id,
|
||||
)
|
||||
return result
|
||||
Reference in New Issue
Block a user