Work on ISHLT related
This commit is contained in:
@@ -5,8 +5,11 @@ from typing import Dict, List, Optional, Set, Union
|
|||||||
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
|
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
|
||||||
|
|
||||||
from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update
|
from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update
|
||||||
from app.lib_general import log, logging, logger_reset
|
from app.lib_general import log, logging, logger_reset, send_email
|
||||||
|
|
||||||
|
# from app.methods.account_cfg_methods import load_account_cfg_obj
|
||||||
|
# from app.methods.event_methods import load_event_obj
|
||||||
|
# from app.methods.event_badge_methods import load_event_badge_obj
|
||||||
from app.methods.event_badge_template_methods import load_event_badge_template_obj
|
from app.methods.event_badge_template_methods import load_event_badge_template_obj
|
||||||
|
|
||||||
from app.models.event_badge_models import Event_Badge_Base, Event_Badge_Basic_Base
|
from app.models.event_badge_models import Event_Badge_Base, Event_Badge_Basic_Base
|
||||||
@@ -221,3 +224,91 @@ def create_update_event_badge_obj_v4(
|
|||||||
log.debug(f'Returning the Event Badge ID: {event_badge_id}')
|
log.debug(f'Returning the Event Badge ID: {event_badge_id}')
|
||||||
return event_badge_id
|
return event_badge_id
|
||||||
# ### END ### API Event Badge Methods ### create_update_event_badge_obj_v4() ###
|
# ### END ### API Event Badge Methods ### create_update_event_badge_obj_v4() ###
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### Event Badge Methods ### email_event_badge_review_url() ###
|
||||||
|
# This emails the actual one time use sign in URL for a user.
|
||||||
|
# Updated 2021-12-02
|
||||||
|
def email_event_badge_review_url(
|
||||||
|
event_badge_id: int|str,
|
||||||
|
root_url: str,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
# if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass
|
||||||
|
# else: return False
|
||||||
|
|
||||||
|
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
|
||||||
|
else: return False
|
||||||
|
|
||||||
|
from app.methods.event_badge_methods import load_event_badge_obj
|
||||||
|
if event_badge_obj := load_event_badge_obj(
|
||||||
|
event_badge_id = event_badge_id,
|
||||||
|
):
|
||||||
|
log.info('Event Badge object loaded')
|
||||||
|
else: return False
|
||||||
|
log.debug(event_badge_obj)
|
||||||
|
|
||||||
|
event_id = event_badge_obj.event_id
|
||||||
|
event_badge_id_random = event_badge_obj.id_random # Not event_badge_id_random
|
||||||
|
|
||||||
|
from app.methods.event_methods import load_event_obj
|
||||||
|
if event_obj := load_event_obj(
|
||||||
|
event_id = event_id,
|
||||||
|
):
|
||||||
|
log.info('Event object loaded')
|
||||||
|
else: return False
|
||||||
|
log.debug(event_obj)
|
||||||
|
|
||||||
|
account_id = event_obj.account_id
|
||||||
|
event_name = event_obj.name
|
||||||
|
|
||||||
|
from app.methods.account_cfg_methods import load_account_cfg_obj
|
||||||
|
if account_cfg := load_account_cfg_obj(
|
||||||
|
account_id = account_id,
|
||||||
|
):
|
||||||
|
log.info('Account config loaded')
|
||||||
|
else: return False
|
||||||
|
log.debug(account_cfg)
|
||||||
|
|
||||||
|
from_email = account_cfg.default_no_reply_email
|
||||||
|
from_name = account_cfg.default_no_reply_name
|
||||||
|
|
||||||
|
to_name = f'{event_badge_obj.given_name} {event_badge_obj.family_name}'
|
||||||
|
to_email = event_badge_obj.email
|
||||||
|
|
||||||
|
bcc_email = account_cfg.confirm_email
|
||||||
|
bcc_name = account_cfg.confirm_name
|
||||||
|
|
||||||
|
# help_tech_email = account_cfg.help_tech_email
|
||||||
|
# help_tech_name = account_cfg.help_tech_name
|
||||||
|
|
||||||
|
account_short_name = account_cfg.account_short_name
|
||||||
|
|
||||||
|
event_badge_review_url = f'{root_url}event/badge/{event_badge_id_random}/review_badge'
|
||||||
|
|
||||||
|
subject = f'{event_name}: Event Badge Review Link ({event_badge_id_random})'
|
||||||
|
|
||||||
|
body_html = f"""
|
||||||
|
<p>{to_name},</p>
|
||||||
|
|
||||||
|
<p>If you did not request this badge review link, please delete this email.</p>
|
||||||
|
|
||||||
|
<p>The link below will allow you to review your badge information and update some of the details if needed.</p>
|
||||||
|
|
||||||
|
<p><strong><a href="{event_badge_review_url}" style="appearance: button; display: inline-block; text-align: center; text-decoration: none; padding: .2rem .4rem; border: solid thin gray; border-radius: .2rem; background-color: lightyellow; color: black; font-size: larger;">Click to Review Badge</a></strong></p>
|
||||||
|
|
||||||
|
<p>Or copy and paste the link:<br>
|
||||||
|
<strong style="background-color: lightyellow; color: black; font-size: larger;"><a href="{event_badge_review_url}">{event_badge_review_url}</a></strong></p>
|
||||||
|
|
||||||
|
<p>Thank you!</p>
|
||||||
|
"""
|
||||||
|
|
||||||
|
if send_email(from_email=from_email, from_name=from_name, to_email=to_email, to_name=to_name, bcc_email=bcc_email, bcc_name=bcc_name, subject=subject, body_text=None, body_html=body_html):
|
||||||
|
log.info(f'An email with a badge review link was sent to {to_email}.')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
log.info(f'An email with a badge review link was not sent to {to_email}.')
|
||||||
|
return False
|
||||||
|
# ### END ### Event Badge Methods ### email_event_badge_review_url() ###
|
||||||
|
|||||||
@@ -710,4 +710,4 @@ def email_user_auth_key_url(
|
|||||||
else:
|
else:
|
||||||
log.info(f'An email with a one time use sign in link was not sent to {to_email}.')
|
log.info(f'An email with a one time use sign in link was not sent to {to_email}.')
|
||||||
return False
|
return False
|
||||||
# ### END ### User ### email_user_auth_key_url() ###
|
# ### END ### User Methods ### email_user_auth_key_url() ###
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from app.db_sql import sql_enable_part, sql_insert, sql_update, sql_insert_or_up
|
|||||||
from app.routers.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.event_badge_methods import get_event_badge_rec_list, load_event_badge_obj
|
# from app.methods.event_badge_methods import get_event_badge_rec_list, load_event_badge_obj
|
||||||
from app.methods.event_badge_methods import load_event_badge_obj
|
from app.methods.event_badge_methods import email_event_badge_review_url, load_event_badge_obj
|
||||||
|
|
||||||
from app.models.event_badge_models import Event_Badge_Base
|
from app.models.event_badge_models import Event_Badge_Base
|
||||||
from app.models.response_models import Resp_Body_Base, mk_resp
|
from app.models.response_models import Resp_Body_Base, mk_resp
|
||||||
@@ -56,7 +56,7 @@ async def patch_event_badge_obj(
|
|||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
time.sleep(2)
|
# time.sleep(2)
|
||||||
|
|
||||||
obj_type = 'event_badge'
|
obj_type = 'event_badge'
|
||||||
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
||||||
@@ -330,6 +330,27 @@ async def search_event_badge_obj_li(
|
|||||||
# ### END ### API Event Badge ### search_event_badge_obj_li() ###
|
# ### END ### API Event Badge ### search_event_badge_obj_li() ###
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Badge ### event_badge_obj_email_review() ###
|
||||||
|
# Updated 2022-04-16
|
||||||
|
@router.get('/event/badge/{event_badge_id}/email_review', response_model=Resp_Body_Base)
|
||||||
|
async def event_badge_obj_email_review(
|
||||||
|
event_badge_id: str = Query(..., min_length=11, max_length=22),
|
||||||
|
root_url: Optional[str] = Query(None, min_length=10, max_length=100), # Absolute min = 7
|
||||||
|
# to_email: str = Query(..., min_length=5, max_length=100),
|
||||||
|
# to_name: str = Query(..., min_length=2, max_length=75),
|
||||||
|
|
||||||
|
commons: Common_Route_Params = Depends(common_route_params),
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
if email_event_badge_review_url(event_badge_id=event_badge_id, root_url=root_url):
|
||||||
|
return mk_resp(data=True, response=commons.response)
|
||||||
|
else:
|
||||||
|
return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
|
||||||
|
# ### END ### API Event Badge ### event_badge_obj_email_review() ###
|
||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API Event Badge ### get_event_badge_obj() ###
|
# ### BEGIN ### API Event Badge ### get_event_badge_obj() ###
|
||||||
# Updated 2022-02-15
|
# Updated 2022-02-15
|
||||||
@router.get('/event/badge/{event_badge_id}', response_model=Resp_Body_Base)
|
@router.get('/event/badge/{event_badge_id}', response_model=Resp_Body_Base)
|
||||||
|
|||||||
Reference in New Issue
Block a user