import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; import { db_events } from "$lib/db_events"; let ae_promises: key_val = {}; // Updated 2024-06-10 export async function handle_load_ae_obj_id__event_session( { api_cfg, event_session_id, try_cache = true, log_lvl = 0 }: { api_cfg: any, event_session_id: string, try_cache?: boolean, log_lvl?: number } ) { console.log(`*** handle_load_ae_obj_id__event_session() *** event_session_id=${event_session_id}`); let params = {}; // $events_sess.badges.status_load__event_session_obj = 'loading'; ae_promises.load__event_session_obj = await api.get_ae_obj_id_crud({ api_cfg: api_cfg, obj_type: 'event_session', obj_id: event_session_id, // NOTE: This is the FQDN, not normally the ID. use_alt_table: true, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. params: params, log_lvl: log_lvl }) .then(function (event_session_obj_get_result) { if (event_session_obj_get_result) { if (try_cache) { // This is expecting a list handle_db_save_ae_obj_li__event_session({ obj_type: 'event_session', obj_li: [event_session_obj_get_result] }); } return event_session_obj_get_result; } else { console.log('No results returned.'); return null; } }) .catch(function (error) { console.log('No results returned or failed.', error); }); return ae_promises.load__event_session_obj; } // Updated 2024-05-24 export async function handle_load_ae_obj_li__event_session( { api_cfg, for_obj_type, for_obj_id, params={}, try_cache=true, log_lvl=0 }: { api_cfg: any, for_obj_type: string, for_obj_id: string, params?: key_val, try_cache?: boolean, log_lvl?: number } ) { console.log(`*** handle_load_ae_obj_li__event_session() ***`); let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden let limit: number = (params.qry__limit ?? 99); // 99 let offset: number = (params.qry__offset ?? 0); // 0 let params_json: key_val = {}; // console.log('params_json:', params_json); ae_promises.load__event_session_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ api_cfg: api_cfg, obj_type: 'event_session', for_obj_type: for_obj_type, for_obj_id: for_obj_id, use_alt_table: true, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value enabled: enabled, hidden: hidden, order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'start_datetime': 'ASC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'}, limit: limit, offset: offset, params_json: params_json, params: params, log_lvl: log_lvl }) .then(function (event_session_obj_li_get_result) { if (event_session_obj_li_get_result) { if (try_cache) { handle_db_save_ae_obj_li__event_session({ obj_type: 'event_session', obj_li: event_session_obj_li_get_result }); } return event_session_obj_li_get_result; } else { return []; } }) .catch(function (error) { console.log('No results returned or failed.', error); }); if (log_lvl) { console.log('ae_promises.load__event_session_obj_li:', ae_promises.load__event_session_obj_li); } return ae_promises.load__event_session_obj_li; } export async function handle_search__event_session( { api_cfg, event_id, fulltext_search_qry_str, ft_presenter_search_qry_str, like_search_qry_str = null, like_presentation_search_qry_str = null, like_presenter_search_qry_str = null, params = {}, try_cache = true, log_lvl = 0 }: { api_cfg: any, event_id: any, fulltext_search_qry_str?: null|string, ft_presenter_search_qry_str?: null|string, like_search_qry_str?: null|string, like_presentation_search_qry_str?: null|string, like_presenter_search_qry_str?: null|string, params?: any, try_cache?: boolean, log_lvl?: number } ) { console.log(`*** handle_search__event_session() *** event_id=${event_id}`); let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden let limit: number = (params.qry__limit ?? 25); // 99 let offset: number = (params.qry__offset ?? 0); // 0 let params_json: key_val = {}; if (!fulltext_search_qry_str && !like_search_qry_str) { console.log('No search string provided!!!'); return false; // Returning false instead of [] because no search was performed. } if (fulltext_search_qry_str || ft_presenter_search_qry_str) { params_json['ft_qry'] = {}; if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) { params_json['ft_qry']['default_qry_str'] = fulltext_search_qry_str; } if (ft_presenter_search_qry_str && ft_presenter_search_qry_str.length > 2) { params_json['ft_qry']['event_presenter_li_qry_str'] = ft_presenter_search_qry_str; } } // Use the AND (AND LIKE) query // if (like_search_qry_str || like_presenter_search_qry_str) { // params_json['and_like'] = {}; // if (like_search_qry_str && like_search_qry_str.length > 2) { // params_json['and_like']['default_qry_str'] = like_search_qry_str; // } // if (like_presenter_search_qry_str && like_presenter_search_qry_str.length > 2) { // params_json['and_like']['event_presenter_li_qry_str'] = like_presenter_search_qry_str; // } // } // Use the AND (OR LIKE) query if (like_search_qry_str || like_presentation_search_qry_str || like_presenter_search_qry_str) { params_json['or_like'] = {}; if (like_search_qry_str && like_search_qry_str.length > 2) { params_json['or_like']['default_qry_str'] = like_search_qry_str; } if (like_presentation_search_qry_str && like_presentation_search_qry_str.length > 2) { params_json['or_like']['event_presentation_li_qry_str'] = like_presentation_search_qry_str; } if (like_presenter_search_qry_str && like_presenter_search_qry_str.length > 2) { params_json['or_like']['event_presenter_li_qry_str'] = like_presenter_search_qry_str; } } params_json['and_qry'] = {}; // if (session_type_code) { // params_json['and_qry']['session_type_code'] = session_type_code; // } let order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'start_datetime': 'ASC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'}; ae_promises.load__event_session_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ api_cfg: api_cfg, obj_type: 'event_session', for_obj_type: 'event', for_obj_id: event_id, use_alt_table: true, // NOTE: We want to use the alt table for session searching use_alt_base: false, enabled: enabled, hidden: hidden, order_by_li: order_by_li, limit: limit, offset: offset, params_json: params_json, params: params, log_lvl: log_lvl }) .then(function (event_session_obj_li_get_result) { if (event_session_obj_li_get_result) { handle_db_save_ae_obj_li__event_session({obj_type: 'event_session', obj_li: event_session_obj_li_get_result}); return event_session_obj_li_get_result; } else { return []; } }) .catch(function (error) { console.log('No results returned or failed.', error); }) .finally(function () { }); if (log_lvl) { console.log('ae_promises.load__event_session_obj_li:', ae_promises.load__event_session_obj_li); } return ae_promises.load__event_session_obj_li; } // This function will loop through the event_session_obj_li and save each one to the DB. export function handle_db_save_ae_obj_li__event_session( { obj_type, obj_li }: { obj_type: string, obj_li: any } ) { console.log(`*** handle_db_save_ae_obj_li__event_session() ***`); if (obj_li && obj_li.length) { obj_li.forEach(async function (obj: any) { // console.log(`ae_obj ${obj_type}:`, obj); try { const id_random = await db_events.sessions.put({ id: obj.event_session_id_random, event_session_id: obj.event_session_id_random, event_session_id_random: obj.event_session_id_random, external_id: obj.external_id, code: obj.code, for_type: obj.for_type, for_id: obj.for_id_id_random, for_id_random: obj.for_id_random, type_code: obj.type_code, event_id: obj.event_id_random, event_id_random: obj.event_id_random, event_location_id: obj.event_location_id_random, event_location_id_random: obj.event_location_id_random, poc_person_id: obj.poc_person_id_random, poc_person_id_random: obj.poc_person_id_random, name: obj.name, description: obj.description, start_datetime: obj.start_datetime, end_datetime: obj.end_datetime, passcode: obj.passcode, hide_event_launcher: obj.hide_event_launcher, alert: obj.alert, alert_msg: obj.alert_msg, data_json: obj.data_json, enable: obj.enable, hide: obj.hide, priority: obj.priority, sort: obj.sort, group: obj.group, notes: obj.notes, created_on: obj.created_on, updated_on: obj.updated_on, // From SQL view file_count: obj.file_count, file_count_all: obj.file_count_all, internal_use_count: obj.internal_use_count, poc_person_given_name: obj.poc_person_given_name, poc_person_family_name: obj.poc_person_family_name, poc_person_full_name: obj.poc_person_full_name, poc_person_primary_email: obj.poc_person_primary_email, poc_person_passcode: obj.poc_person_passcode, poc_kv_json: obj.poc_kv_json, event_name: obj.event_name, event_location_code: obj.event_location_code, event_location_name: obj.event_location_name, }); // console.log(`Put obj with ID: ${obj.event_session_id_random} or ${id_random}`); } catch (error) { let status = `Failed to put ${obj.event_session_id_random}: ${error}`; console.log(status); } // const id_random = await db_events.sessions.put(obj); // console.log(`Put obj with ID: ${obj.event_session_id_random}`); }); return true; } } // This is intended for the Point of Contact (POC) for the session. // Updated 2024-07-01 export async function handle_email_sign_in__event_session ( { api_cfg, to_email, to_name, base_url, person_id, person_passcode, event_session_id, session_name, }: { api_cfg: any, to_email: string, to_name: string, base_url: string, person_id: string, person_passcode: string, event_session_id: string, session_name: string, } ) { console.log(`*** handle_email_sign_in__event_session() *** to_email=${to_email} to_name=${to_name} person_id=${person_id} person_passcode=${person_passcode} session_id=${event_session_id}`); let subject = `LCI Congress 2024 - Pres Mgmt Hub Sign In Link for ${session_name} (ID: ${event_session_id})`; let sign_in_url = encodeURI(`${base_url}/events_pres_mgmt/session/${event_session_id}?person_id=${person_id}&person_pass=${person_passcode}&session_id=${event_session_id}`) let body_html = `
${to_name},

Your link to sign into the presentation management hub as a session Champion for LCI Congress 2024 is below. If you did not request this, please delete and ignore this email. If you need to make any changes or updates to your submission, you may use this link again later.

26th Annual Lean Construction Congress (2024):

Session Name: ${session_name}
Session ID: ${event_session_id}

Use this link to view or update your LCI 2024 session information.
Copy and paste link: ${sign_in_url}

`; api.send_email({ api_cfg: api_cfg, from_email: 'noreply+presmgmt@oneskyit.com', from_name: 'LCI 2024 Pres Mgmt Hub', to_email: to_email, subject: subject, body_html: body_html, }); }