Things seem to be working. It said it was overwriting files though???

This commit is contained in:
Scott Idem
2024-10-30 18:30:30 -04:00
parent 4f65374d7e
commit 26b3c53847
10 changed files with 16 additions and 16 deletions

View File

@@ -0,0 +1,648 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_li__event_device } from './ae_events__event_device';
let ae_promises: key_val = {};
// Updated 2024-10-16
export async function load_ae_obj_id__event(
{
api_cfg,
event_id,
inc_device_li = false,
inc_file_li = false,
inc_location_li = false,
inc_presentation_li = false,
inc_presenter_li = false,
inc_session_li = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: string,
inc_device_li?: boolean,
inc_file_li?: boolean,
inc_location_li?: boolean,
inc_presentation_li?: boolean,
inc_presenter_li?: boolean,
inc_session_li?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_id__event() *** event_id=${event_id}`);
let params = {};
// $events_sess.badges.status_load__event_obj = 'loading';
ae_promises.load__event_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event',
obj_id: event_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_obj_get_result) {
if (event_obj_get_result) {
if (try_cache) {
// This is expecting a list
db_save_ae_obj_li__event({
obj_type: 'event',
obj_li: [event_obj_get_result]
});
}
return event_obj_get_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (log_lvl) {
console.log('ae_promises.load__event_obj:', ae_promises.load__event_obj);
}
if (inc_device_li) {
// Load the devices for the
if (log_lvl) {
console.log(`Need to load the device list for the now`);
}
let load_event_device_obj_li = load_ae_obj_li__event_device({
api_cfg: api_cfg,
for_obj_type: 'event',
for_obj_id: event_id,
params: {qry__enabled: 'all', qry__limit: 50},
try_cache: try_cache,
log_lvl: log_lvl
});
if (log_lvl) {
console.log(`load_event_device_obj_li = `, load_event_device_obj_li);
}
ae_promises.load__event_obj.event_device_li = load_event_device_obj_li;
}
return ae_promises.load__event_obj;
}
// Updated 2024-09-27
export async function load_ae_obj_li__event(
{
api_cfg,
for_obj_type = 'account',
for_obj_id,
qry_conference = true,
qry_str = null,
inc_file_li = false,
inc_location_li = false,
inc_presentation_li = false,
inc_presenter_li = false,
inc_session_li = false,
order_by_li = {'start_datetime': 'DESC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params_json = null,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
qry_conference?: null|boolean,
qry_str?: null|string,
inc_file_li?: boolean,
inc_location_li?: boolean,
inc_presentation_li?: boolean,
inc_presenter_li?: boolean,
inc_session_li?: boolean,
order_by_li?: key_val,
params_json?: null|key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_li__event() *** for_obj_id=${for_obj_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 ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
// There is probably a better way to handle this. I don't want to just start a new object if it is not passed. However, the qry_conference and qry_str are sort of a special case. -2024-10-01
if (!params_json) {
params_json = {};
}
if (qry_conference) {
if (!params_json['and_qry']) {
params_json['and_qry'] = {};
}
params_json['and_qry']['conference'] = qry_conference;
} else if (qry_conference === false) {
if (!params_json['and_qry']) {
params_json['and_qry'] = {};
}
console.log('qry_conference is false!');
params_json['and_qry']['conference'] = qry_conference;
}
if (qry_str) {
if (!params_json['ft_qry']) {
params_json['ft_qry'] = {};
}
params_json['ft_qry'] = {};
params_json['ft_qry']['default_qry_str'] = qry_str;
params_json['ft_qry']['location_address_json_ext'] = qry_str;
params_json['ft_qry']['contact_li_json_ext'] = qry_str;
}
// console.log('params_json:', params_json);
// ae_promises.load__event_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
// api_cfg: api_cfg,
// obj_type: 'event',
// 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: order_by_li,
// limit: limit,
// offset: offset,
// params_json: params_json,
// params: params,
// log_lvl: log_lvl
// })
ae_promises.load__event_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({
api_cfg: api_cfg,
obj_type: 'event',
for_obj_type: for_obj_type,
for_obj_id: for_obj_id,
use_alt_tbl: true, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config.
// use_alt_mdl: false, // NOTE: This will use the base_name_alt value instead of the base_name value
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_obj_li_get_result) {
if (event_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event({obj_type: 'event', obj_li: event_obj_li_get_result});
}
return event_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_obj_li:', ae_promises.load__event_obj_li);
}
return ae_promises.load__event_obj_li;
}
// The qry_ae_obj_li__event() is essentially a wrapper for the load_ae_obj_li__event() function. This should process the query strings and related before calling the load_ae_obj_li__event() function.
// Updated 2024-10-01
export async function qry_ae_obj_li__event(
{
api_cfg,
for_obj_type = 'account',
for_obj_id,
qry_conference = true,
qry_physical = null,
qry_virtual = null,
qry_type = null,
qry_str = null,
inc_file_li = false,
inc_location_li = false,
inc_presentation_li = false,
inc_presenter_li = false,
inc_session_li = false,
order_by_li = {'start_datetime': 'DESC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
qry_conference?: null|boolean,
qry_physical?: null|boolean,
qry_virtual?: null|boolean,
qry_type?: null|string,
qry_str?: null|string,
inc_file_li?: boolean,
inc_location_li?: boolean,
inc_presentation_li?: boolean,
inc_presenter_li?: boolean,
inc_session_li?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** qry_ae_obj_li__event() *** for_obj_id=${for_obj_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 ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
// Build the params_json object. This needs to be documented better! -2024-10-01
let params_json: key_val = {};
params_json['and_qry'] = {};
// This is handled in the actual load_ae_obj_li__event() function. For now...?
// if (qry_conference) {
// params_json['and_qry']['conference'] = qry_conference;
// } else if (qry_conference === false) {
// console.log('qry_conference is false!');
// params_json['and_qry']['conference'] = qry_conference;
// }
if (qry_physical && qry_virtual) {
// Ignore both if both are set to true.
} else if (qry_physical || qry_virtual) {
if (qry_physical) {
params_json['and_qry']['physical'] = qry_physical;
}
if (qry_virtual) {
params_json['and_qry']['virtual'] = qry_virtual;
}
}
if (qry_type) {
params_json['and_qry']['type'] = qry_type;
}
if (qry_str) {
params_json['ft_qry'] = {};
params_json['ft_qry']['default_qry_str'] = qry_str;
params_json['ft_qry']['location_address_json_ext'] = qry_str;
params_json['ft_qry']['contact_li_json_ext'] = qry_str;
}
if (log_lvl) {
console.log('params_json:', params_json);
}
ae_promises.qry__event_obj_li = await load_ae_obj_li__event({
api_cfg: api_cfg,
for_obj_type: for_obj_type,
for_obj_id: for_obj_id,
qry_conference: qry_conference,
qry_str: qry_str,
inc_file_li: inc_file_li,
inc_location_li: inc_location_li,
inc_presentation_li: inc_presentation_li,
inc_presenter_li: inc_presenter_li,
inc_session_li: inc_session_li,
order_by_li: order_by_li,
params_json: params_json,
params: params,
try_cache: try_cache,
log_lvl: log_lvl
});
return ae_promises.qry__event_obj_li;
}
// Updated 2024-09-25
export async function create_ae_obj__event(
{
api_cfg,
account_id,
data_kv,
params={},
log_lvl=0
}: {
api_cfg: any,
account_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** create_ae_obj__event() *** account_id=${account_id}`);
ae_promises.create__event = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event',
fields: {
account_id_random: account_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_obj_create_result) {
if (event_obj_create_result) {
db_save_ae_obj_li__event(
{
obj_type: 'event',
obj_li: [event_obj_create_result]
});
return event_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event:', ae_promises.create__event);
}
return ae_promises.create__event;
}
// Updated 2024-09-25
export async function update_ae_obj__event(
{
api_cfg,
event_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event() *** event_id=${event_id}`, data_kv);
}
// ae_promises.update__event_obj = 'test';
ae_promises.update__event_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event',
obj_id: event_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_obj_update_result) {
if (event_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event({
obj_type: 'event', obj_li: [event_obj_update_result]
});
}
return event_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_obj:', ae_promises.update__event_obj);
}
return ae_promises.update__event_obj;
}
// This function will loop through the event_obj_li and save each one to the DB.
export function db_save_ae_obj_li__event(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.events.put({
id: obj.event_id_random,
// id_random: obj.event_id_random,
event_id: obj.event_id_random,
event_id_random: obj.event_id_random,
code: obj.event_code,
account_id: obj.account_id_random,
account_id_random: obj.account_id_random,
conference: obj.conference,
type: obj.type,
name: obj.name,
summary: obj.summary,
description: obj.description,
start_datetime: obj.start_datetime,
end_datetime: obj.end_datetime,
timezone: obj.timezone,
location_address_json: obj.location_address_json,
location_text: obj.location_text,
attend_json: obj.attend_json,
attend_text: obj.attend_text,
mod_abstracts_json: obj.mod_abstracts_json,
mod_badges_json: obj.mod_badges_json,
mod_exhibits_json: obj.mod_exhibits_json,
mod_pres_mgmt_json: obj.mod_pres_mgmt_json,
cfg_json: obj.cfg_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,
// IDAA Recovery Meetings
contact_li_json: obj.contact_li_json,
external_person_id: obj.external_person_id,
physical: obj.physical,
virtual: obj.virtual,
weekday_sunday: obj.weekday_sunday,
weekday_monday: obj.weekday_monday,
weekday_tuesday: obj.weekday_tuesday,
weekday_wednesday: obj.weekday_wednesday,
weekday_thursday: obj.weekday_thursday,
weekday_friday: obj.weekday_friday,
weekday_saturday: obj.weekday_saturday,
recurring_start_time: obj.recurring_start_time,
// From SQL view
file_count: obj.file_count,
file_count_all: obj.file_count_all,
internal_use_count: obj.internal_use_count,
event_file_id_li_json: obj.event_file_id_li_json,
});
// console.log(`Put obj with ID: ${obj.event_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.events.put(obj);
// console.log(`Put obj with ID: ${obj.event_id_random}`);
});
return true;
}
}
// This function will process the event config, specifically for presentation management.
export function sync_config__event_pres_mgmt(
{
pres_mgmt_cfg_remote, // This is the remote config that will be compared.
pres_mgmt_cfg_local, // This is the local config that will be updated.
log_lvl = 0
}: {
pres_mgmt_cfg_remote: key_val,
pres_mgmt_cfg_local: key_val,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** sync_config__event_pres_mgmt() *** pres_mgmt_cfg_remote:`, pres_mgmt_cfg_remote);
}
// Deal with things that can not be overridden first:
// Labels:
pres_mgmt_cfg_local.label__presenter_external_id = pres_mgmt_cfg_remote?.label__presenter_external_id ?? 'External ID';
pres_mgmt_cfg_local.label__session_poc_type = pres_mgmt_cfg_remote?.label__session_poc_type ?? 'poc';
pres_mgmt_cfg_local.label__session_poc_name = pres_mgmt_cfg_remote?.label__session_poc_name_short ?? 'POC';
pres_mgmt_cfg_local.label__session_poc_name = pres_mgmt_cfg_remote?.label__session_poc_name ?? 'Point of Contact';
// Hide content:
pres_mgmt_cfg_local.hide__session_poc = pres_mgmt_cfg_remote?.hide__session_poc ?? false;
// pres_mgmt_cfg_local.hide__report_kv = pres_mgmt_cfg_remote?.hide__report_kv ?? null;
// pres_mgmt_cfg_local.limit__navigation = pres_mgmt_cfg_remote?.limit__navigation ?? false;
// pres_mgmt_cfg_local.limit__options = pres_mgmt_cfg_remote?.limit__options ?? false;
// Required fields or options (agreements):
pres_mgmt_cfg_local.require__presenter_agree = pres_mgmt_cfg_remote?.require__presenter_agree ?? false; // In use
pres_mgmt_cfg_local.require__session_agree = pres_mgmt_cfg_remote?.require__session_agree ?? false; // New and in progress
// Show content:
// pres_mgmt_cfg_local.show__navigation = pres_mgmt_cfg_remote?.show__navigation ?? false;
pres_mgmt_cfg_local.show__copy_access_link = pres_mgmt_cfg_remote?.show__copy_access_link ?? false;
pres_mgmt_cfg_local.show__email_access_link = pres_mgmt_cfg_remote?.show__email_access_link ?? false;
pres_mgmt_cfg_local.file_purpose_option_kv = pres_mgmt_cfg_remote?.file_purpose_option_kv ?? null;
// Deal with things that can be overridden:
// Locking the config is targeted at the trusted staff level and below. It is more or less ignored at the global manager and super levels. It may be enforced at the staff admin level?
// pres_mgmt_cfg_local.lock_config = pres_mgmt_cfg_remote?.lock_config ? true : false; // This disables the sync local config button and options.
if (pres_mgmt_cfg_local.lock_config) {
console.log(`The config should be locked! Forcing the sync!`);
// This is to forcibly sync the local config with the remote config.
pres_mgmt_cfg_local.sync_local_config = true;
} else {
// Do not override the preference for syncing the local config with the remote config.
console.log(`The config is not locked. Currently set to sync? ${pres_mgmt_cfg_local.sync_local_config}`);
// Check if the sync_local_config is undefined versus just false.
// if (pres_mgmt_cfg_local?.sync_local_config) {
// pres_mgmt_cfg_local.sync_local_config = true;
// } else {
// pres_mgmt_cfg_local.sync_local_config = pres_mgmt_cfg_remote?.sync_local_config ?? false;
// }
}
if (pres_mgmt_cfg_local?.sync_local_config) {
if (log_lvl) {
console.log(`Syncing the local config with the remote config!!!`);
}
// Hide content:
pres_mgmt_cfg_local.hide__location_code = pres_mgmt_cfg_remote?.hide__location_code ?? false;
pres_mgmt_cfg_local.hide__presentation_code = pres_mgmt_cfg_remote?.hide__presentation_code ?? false;
pres_mgmt_cfg_local.hide__presenter_code = pres_mgmt_cfg_remote?.hide__presenter_code ?? false;
pres_mgmt_cfg_local.hide__presenter_biography = pres_mgmt_cfg_remote?.hide__presenter_biography ?? false;
pres_mgmt_cfg_local.hide__session_code = pres_mgmt_cfg_remote?.hide__session_code ?? false;
pres_mgmt_cfg_local.hide__session_description = pres_mgmt_cfg_remote?.hide__session_description ?? false;
pres_mgmt_cfg_local.hide__session_location = pres_mgmt_cfg_remote?.hide__session_location ?? false;
pres_mgmt_cfg_local.hide__session_msg = pres_mgmt_cfg_remote?.hide__session_msg ?? false;
// pres_mgmt_cfg_local.hide__session_li_poc_field = pres_mgmt_cfg_remote?.hide__session_li_poc_field ?? false; // This should still allow the POC name to be shown.
pres_mgmt_cfg_local.hide__session_poc_profile = pres_mgmt_cfg_remote?.hide__session_poc_profile ?? false; // This should still allow the POC name to be shown.
pres_mgmt_cfg_local.hide__session_poc_biography = pres_mgmt_cfg_remote?.hide__session_poc_biography ?? false; // New and in progress
pres_mgmt_cfg_local.hide__session_poc_profile_pic = pres_mgmt_cfg_remote?.hide__session_poc_profile_pic ?? false; // New and in progress
// pres_mgmt_cfg_local.show__copy_access_link = pres_mgmt_cfg_remote?.show__copy_access_link ?? false;
// pres_mgmt_cfg_local.show__email_access_link = pres_mgmt_cfg_remote?.show__email_access_link ?? false;
pres_mgmt_cfg_local.show__launcher_link = pres_mgmt_cfg_remote?.show__launcher_link ?? false;
pres_mgmt_cfg_local.show__launcher_link_legacy = pres_mgmt_cfg_remote?.show__launcher_link_legacy ?? false;
}
if (log_lvl) {
console.log(`pres_mgmt_cfg_local:`, pres_mgmt_cfg_local);
}
return pres_mgmt_cfg_local;
}

View File

@@ -0,0 +1,353 @@
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-03
export async function handle_load_ae_obj_id__badge(
{
api_cfg,
badge_id,
try_cache=false,
log_lvl=0
}: {
api_cfg: any,
badge_id: string,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** handle_load_ae_obj_id__badge() *** badge_id=${badge_id}`);
let params = {};
// $events_sess.badges.status_load__badge_obj = 'loading';
ae_promises.load__badge_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_badge',
obj_id: badge_id, // NOTE: This is the FQDN, not normally the ID.
use_alt_table: false, // 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: 0
})
.then(function (badge_obj_get_result) {
if (badge_obj_get_result) {
// This is expecting a list
handle_db_save_ae_obj_li__badge({obj_type: 'event_badge', obj_li: [badge_obj_get_result]});
return badge_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__badge_obj;
}
// Updated 2024-03-06
export async function handle_load_ae_obj_li__badge(
{
api_cfg,
event_id,
params={},
try_cache=true,
log_lvl=0
}: {
api_cfg: any,
event_id: any,
params: any,
try_cache?: boolean,
log_lvl: number
}) {
console.log(`*** handle_load_ae_obj_li__badge() *** event_id=${event_id}`);
let fulltext_search_qry_str = ''; // $events_sess.badges.fulltext_search_qry_str;
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 = {};
if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) {
params_json['ft_qry'] = {
'default_qry_str': fulltext_search_qry_str,
// 'location_address_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
// 'contact_li_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
};
}
// console.log('params_json:', params_json);
// console.log(params_json);
// $events_sess.badges.status_qry__search = 'loading';
ae_promises.load__event_badge_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_badge',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: false, // 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.
enabled: enabled,
hidden: hidden,
order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'},
// order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (badge_obj_li_get_result) {
// console.log('Badge list:', badge_obj_li_get_result);
if (badge_obj_li_get_result) {
// $slct.badge_obj_li = badge_obj_li_get_result;
handle_db_save_ae_obj_li__badge({obj_type: 'event_badge', obj_li: badge_obj_li_get_result});
return badge_obj_li_get_result;
} else {
// $slct.badge_obj_li = [];
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// $events_sess.badges.status_qry__search = 'done';
// console.log('Badge list:', badge_obj_li_get_result);
// return badge_obj_li_get_result;
});
if (log_lvl) {
console.log('ae_promises.load__event_badge_obj_li:', ae_promises.load__event_badge_obj_li);
}
return ae_promises.load__event_badge_obj_li;
}
export async function handle_search__event_badge(
{
api_cfg,
event_id,
type_code = null,
fulltext_search_qry_str,
like_search_qry_str = null,
external_event_id,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
type_code: any,
fulltext_search_qry_str: any,
like_search_qry_str: any,
external_event_id: any,
params: any,
try_cache: boolean,
log_lvl: number
}
) {
console.log(`*** handle_search__event_badge() *** 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 && fulltext_search_qry_str.length > 2) {
params_json['ft_qry'] = {
'default_qry_str': fulltext_search_qry_str,
// 'location_address_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
// 'contact_li_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
};
}
if (like_search_qry_str && like_search_qry_str.length > 2) {
// Old Python version that needs to be in JS
// # Strip (left right) whitespace then commas then semicolons
// query_str = query_str.strip().strip(',').strip(';')
// # Replace commas, semicolons, and then spaces with %
// query_str_like = query_str.replace(',', ' ').replace(';', ' ').replace(' ', '%').replace(' ', '%')
// # data['query_str'] = f'%{query_str}%'
// log.debug(query_str_like)
// data['query_str'] = f'%{query_str_like}%'
// let like_search_qry_str_new = like_search_qry_str.trim().replace(',', ' ').replace(';', ' ').replace(' ', '%').replace(' ', '%');
// like_search_qry_str_new = `%${like_search_qry_str_new}%`;
// console.log('like_search_qry_str_new:', like_search_qry_str_new);
params_json['and_like'] = {
'default_qry_str': like_search_qry_str,
};
}
params_json['and_qry'] = {};
if (external_event_id) {
params_json['and_qry']['external_event_id'] = external_event_id;
}
if (type_code) { // This is the event_badge.badge_type_code. There is also a member_type_code and registration_type_code that could be referenced in the future.
params_json['and_qry']['badge_type_code'] = type_code;
}
let order_by_li = {'print_count': 'ASC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'};
// $events_sess.badges.status_qry__search = 'loading';
ae_promises.search__event_badge = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_badge',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: false, // 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.
enabled: enabled,
hidden: hidden,
order_by_li: order_by_li,
// order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (badge_obj_li_get_result) {
// console.log('Badge list:', badge_obj_li_get_result);
if (badge_obj_li_get_result) {
// $slct.badge_obj_li = badge_obj_li_get_result;
handle_db_save_ae_obj_li__badge({obj_type: 'event_badge', obj_li: badge_obj_li_get_result});
return badge_obj_li_get_result;
} else {
// $slct.badge_obj_li = [];
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// $events_sess.badges.status_qry__search = 'done';
// console.log('Badge list:', badge_obj_li_get_result);
// return badge_obj_li_get_result;
});
if (log_lvl) {
console.log('ae_promises.search__event_badge:', ae_promises.search__event_badge);
}
return ae_promises.search__event_badge;
}
// This function will loop through the badge_obj_li and save each one to the DB.
export function handle_db_save_ae_obj_li__badge(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** handle_db_save_ae_obj_li__badge() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.badges.put({
id_random: obj.event_badge_id_random,
event_badge_id_random: obj.event_badge_id_random,
event_id_random: obj.event_id_random,
pronouns: obj.pronouns,
informal_name: obj.informal_name,
title_names: obj.title_names,
given_name: obj.given_name,
middle_name: obj.middle_name,
family_name: obj.family_name,
designations: obj.designations,
professional_title: obj.professional_title,
professional_title_override: obj.professional_title_override,
full_name: obj.full_name,
full_name_override: obj.full_name_override,
affiliations: obj.affiliations,
affiliations_override: obj.affiliations_override,
email: obj.email,
email_override: obj.email_override,
address_line_1: obj.address_line_1,
address_line_2: obj.address_line_2,
address_line_3: obj.address_line_3,
city: obj.city,
country_subdivision_code: obj.country_subdivision_code,
state_province: obj.state_province,
state_province_abb: obj.state_province_abb,
postal_code: obj.postal_code,
country_alpha_2_code: obj.country_alpha_2_code,
country: obj.country,
full_address: obj.full_address,
location: obj.location,
location_override: obj.location_override,
query_str: obj.query_str,
badge_type: obj.badge_type,
badge_type_code: obj.badge_type_code,
badge_type_override: obj.badge_type_override,
badge_type_code_override: obj.badge_type_code_override,
external_event_id: obj.external_event_id,
external_id: obj.external_id,
external_person_id: obj.external_person_id,
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,
});
// console.log(`Put obj with ID: ${obj.event_badge_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_badge_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.badges.put(obj);
// console.log(`Put obj with ID: ${obj.event_badge_id_random}`);
});
return true;
}
}

View File

@@ -0,0 +1,521 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_id__event_location } from './ae_events__event_location';
let ae_promises: key_val = {};
// Updated 2024-10-16
export async function load_ae_obj_id__event_device(
{
api_cfg,
event_device_id,
inc_location_id = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_device_id: string,
inc_location_id?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** load_ae_obj_id__event_device() *** event_device_id=${event_device_id}`);
}
let params = {};
ae_promises.load__event_device_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_device',
obj_id: event_device_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_device_obj_get_result) {
if (event_device_obj_get_result) {
if (try_cache) {
// This is expecting a list
db_save_ae_obj_li__event_device({
obj_type: 'event_device',
obj_li: [event_device_obj_get_result]
});
}
return event_device_obj_get_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (log_lvl) {
console.log('ae_promises.load__event_device_obj:', ae_promises.load__event_device_obj);
}
if (inc_location_id) {
// Load the location linked to this device
if (log_lvl) {
console.log(`Need to load the location id for the device now`);
}
let load_event_location_obj_id = load_ae_obj_id__event_location({
api_cfg: api_cfg,
event_location_id: ae_promises.load__event_device_obj.event_location_id,
try_cache: try_cache,
log_lvl: log_lvl
});
if (log_lvl) {
console.log(`load_event_location_obj_id = `, load_event_location_obj_id);
}
ae_promises.load__event_device_obj.event_location_obj = load_event_location_obj_id;
}
return ae_promises.load__event_device_obj;
}
// Updated 2024-10-16
export async function load_ae_obj_li__event_device(
{
api_cfg,
for_obj_type,
for_obj_id,
inc_location_id = false,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'name': 'ASC', 'code': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
inc_location_id?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_li__event_device() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_id}`);
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'all'); // 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_device_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({
api_cfg: api_cfg,
obj_type: 'event_device',
for_obj_type: for_obj_type,
for_obj_id: for_obj_id,
use_alt_tbl: true,
use_alt_mdl: false,
use_alt_exp: 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_device_obj_li_get_result) {
if (event_device_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_device({
obj_type: 'event_device',
obj_li: event_device_obj_li_get_result
});
}
return event_device_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_device_obj_li:', ae_promises.load__event_device_obj_li);
}
if (inc_location_id) {
// Load the location for the devices
if (log_lvl) {
console.log(`Need to load the location list for each device now`);
}
for (let i = 0; i < ae_promises.load__event_device_obj_li.length; i++) {
let event_device_obj = ae_promises.load__event_device_obj_li[i];
let load_event_location_obj_li = load_ae_obj_id__event_location({
api_cfg: api_cfg,
event_location_id: event_device_obj.event_location_id,
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_location_obj_li) => {
if (log_lvl) {
console.log(`event_location_obj_li = `, event_location_obj_li);
}
return event_location_obj_li;
});
if (log_lvl) {
console.log(`load_event_location_obj_li = `, load_event_location_obj_li);
}
}
}
return ae_promises.load__event_device_obj_li;
}
// Updated 2024-10-16
export async function create_ae_obj__event_device(
{
api_cfg,
event_id,
data_kv,
params={},
log_lvl=0
}: {
api_cfg: any,
event_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** create_ae_obj__event_device() *** event_id=${event_id}`);
ae_promises.create__event_device = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_device',
fields: {
event_id_random: event_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_device_obj_create_result) {
if (event_device_obj_create_result) {
db_save_ae_obj_li__event_device(
{
obj_type: 'event_device',
obj_li: [event_device_obj_create_result]
});
return event_device_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event_device:', ae_promises.create__event_device);
}
return ae_promises.create__event_device;
}
// Updated 2024-10-16
export async function update_ae_obj__event_device(
{
api_cfg,
event_device_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_device_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_device() *** event_device_id=${event_device_id}`, data_kv);
}
ae_promises.update__event_device_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_device',
obj_id: event_device_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_device_obj_update_result) {
if (event_device_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event_device({
obj_type: 'event_device', obj_li: [event_device_obj_update_result]
});
}
return event_device_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_device_obj:', ae_promises.update__event_device_obj);
}
return ae_promises.update__event_device_obj;
}
// Not yet used or tested fully!
// Updated 2024-10-16
export async function search__event_device(
{
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(`*** search__event_device() *** 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 (device_type_code) {
// params_json['and_qry']['device_type_code'] = device_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_device_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_device',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: true, // NOTE: We want to use the alt table for device 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_device_obj_li_get_result) {
if (event_device_obj_li_get_result) {
db_save_ae_obj_li__event_device({obj_type: 'event_device', obj_li: event_device_obj_li_get_result});
return event_device_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_device_obj_li:', ae_promises.load__event_device_obj_li);
}
return ae_promises.load__event_device_obj_li;
}
// This function will loop through the event_device_obj_li and save each one to the DB.
// Updated 2024-10-16
export function db_save_ae_obj_li__event_device(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_device() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.devices.put({
id: obj.event_device_id_random,
event_device_id: obj.event_device_id_random,
// event_device_id_random: obj.event_device_id_random,
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,
code: obj.code,
name: obj.name,
description: obj.description,
passcode: obj.passcode,
local_file_cache_path: obj.local_file_cache_path,
host_file_temp_path: obj.host_file_temp_path,
recording_path: obj.recording_path,
record_audio: obj.record_audio,
record_video: obj.record_video,
trigger_open_file_id: obj.trigger_open_file_id,
trigger_open_session_id: obj.trigger_open_session_id,
trigger_recording_start: obj.trigger_recording_start,
trigger_recording_stop: obj.trigger_recording_stop,
trigger_reset: obj.trigger_reset,
trigger_show_admin: obj.trigger_show_admin,
trigger_show_hidden: obj.trigger_show_hidden,
alert: obj.alert,
alert_msg: obj.alert_msg,
alert_on: obj.alert_on,
status: obj.status,
status_msg: obj.status_msg,
status_on: obj.status_on,
record_status: obj.record_status,
record_status_msg: obj.record_status_msg,
record_status_on: obj.record_status_on,
// These are timestamps that are in UTC but missing the 'Z' at the end
heartbeat: obj.heartbeat ? obj.heartbeat+'Z' : null,
info_hostname: obj.info_hostname,
info_ip_list: obj.info_ip_list,
meta_json: obj.meta_json,
other_json: obj.other_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
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_device_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_device_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.devices.put(obj);
// console.log(`Put obj with ID: ${obj.event_device_id_random}`);
});
return true;
}
}

View File

@@ -0,0 +1,690 @@
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-14
export async function load_ae_obj_id__event_file(
{
api_cfg,
event_file_id,
try_cache = false,
log_lvl = 0
}: {
api_cfg: any,
event_file_id: string,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_id__event_file() *** event_file_id=${event_file_id}`);
let params = {};
ae_promises.load__event_file_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_file',
obj_id: event_file_id, // NOTE: This is the FQDN, not normally the ID.
use_alt_table: false, // 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
params: params,
log_lvl: log_lvl
})
.then(function (event_file_obj_get_result) {
if (event_file_obj_get_result) {
// This is expecting a list
db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: [event_file_obj_get_result]});
return event_file_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_file_obj;
}
// Updated 2024-07-03
export async function load_ae_obj_li__event_file(
{
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(`*** load_ae_obj_li__event_file() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_id}`);
// Check if for_obj_type is in the list of valid Aether object types:
let valid_for_obj_types = ['event', 'event_session', 'event_presentation', 'event_presenter', 'event_location'];
if (!valid_for_obj_types.includes(for_obj_type)) {
console.log(`Invalid for_obj_type: ${for_obj_type}`);
return [];
}
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'all'); // 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_file_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_file',
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', 'updated_on': 'DESC', 'created_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (event_file_obj_li_get_result) {
if (event_file_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: event_file_obj_li_get_result});
}
return event_file_obj_li_get_result;
} else {
console.log('No results returned.');
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (log_lvl) {
console.log('ae_promises.load__event_file_obj_li:', ae_promises.load__event_file_obj_li);
}
return ae_promises.load__event_file_obj_li;
}
// Updated 2024-06-17
export async function delete_ae_obj_id__event_file(
{
api_cfg,
event_file_id,
params = {},
log_lvl = 0
}: {
api_cfg: any,
event_file_id: string,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** delete_ae_obj_id__event_file() *** event_file_id=${event_file_id}`);
const endpoint = `/event/file/${event_file_id}/v2`;
params['delete_hosted_file'] = true; // This does not actually delete the hosted file from the server.
params['rm_orphan'] = true; // This is what actually allows the hosted file to be deleted from the server.
ae_promises.delete__event_file_obj = await api.delete_object({
api_cfg: api_cfg,
endpoint: endpoint,
params: params,
// return_meta: return_meta,
log_lvl: log_lvl
});
db_events.files.delete(event_file_id);
return ae_promises.delete__event_file_obj;
}
// Updated 2024-06-14
export async function create_event_file_obj_from_hosted_file_async(
{
api_cfg,
hosted_file_id,
params = {},
data = {},
return_obj = false,
inc_hosted_file = false,
return_meta = false,
log_lvl = 0
}: {
api_cfg: any,
hosted_file_id: string,
params?: key_val,
data?: key_val,
return_obj?: boolean,
inc_hosted_file?: boolean,
return_meta?: boolean,
log_lvl?: number
}
) {
console.log('*** ae_events_functions.js: create_event_file_obj_from_hosted_file() ***');
let endpoint = `/event/file/from_hosted_file/${hosted_file_id}`;
if (return_obj) {
params['return_obj'] = true;
}
if (inc_hosted_file) {
params['inc_hosted_file'] = true;
}
let event_file_obj_post_promise = await api.post_object({
api_cfg: api_cfg,
endpoint: endpoint,
params: params,
data: data,
// return_obj: return_obj,
return_meta: return_meta,
log_lvl: log_lvl
})
.then(function (result) {
console.log('POST DONE create_event_file_obj_from_hosted_file');
console.log(result);
return result;
})
.catch(function (error) {
console.log(error);
return false; // Returning false since something may have gone wrong. Also more in line with what the API returns.
// return error;
});
// console.log(event_file_obj_post_promise);
if (return_obj) {
return event_file_obj_post_promise;
} else {
return event_file_obj_post_promise.event_file_id_random;
}
}
// Updated 2024-06-13
export async function update_ae_obj__event_file(
{
api_cfg,
event_file_id,
data_kv,
params = {},
log_lvl = 1
}: {
api_cfg: any,
event_file_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_file() *** event_file_id=${event_file_id}`);
}
ae_promises.update__event_file_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_file',
obj_id: event_file_id, // NOTE: This is the FQDN, not normally the ID.
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_file_obj_update_result) {
if (event_file_obj_update_result) {
// db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: [event_file_obj_update_result]});
// Very important: The results returned from the API does not include fields from the DB views. It is the actual table fields only.
db_update_ae_obj_id__event_file({obj_type: 'event_file', obj_id: event_file_id, data_kv: event_file_obj_update_result});
return event_file_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_file_obj:', ae_promises.update__event_file_obj);
}
return ae_promises.update__event_file_obj;
}
// This new function is using CRUD v2. This should allow for more flexibility in the queries.
// Updated 2024-10-15
export async function qry__event_file(
{
api_cfg,
event_id,
qry_created_on = null, // Example greater than: '2024-10-24'
qry_min_file_size = null,
enabled = 'enabled',
hidden = 'not_hidden',
limit = 50,
offset = 0,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC', 'filename': 'ASC', 'extension': 'ASC', 'hosted_file_size': 'ASC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
qry_created_on?: null|string,
qry_min_file_size?: null|number,
enabled?: string,
hidden?: string,
limit?: number,
offset?: number,
order_by_li?: key_val,
params?: any,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** qry__event_file() *** event_id=${event_id}`);
}
let params_json: key_val = {};
params_json['qry'] = [];
if (qry_created_on) {
let qry_param =
{
type: "AND",
field: "created_on",
operator: ">",
value: qry_created_on
};
params_json['qry'].push(qry_param);
}
if (qry_min_file_size) {
console.log('qry_min_file_size:', qry_min_file_size);
let qry_param =
{
type: "AND",
field: "hosted_file_size",
operator: ">",
value: qry_min_file_size
};
params_json['qry'].push(qry_param);
}
ae_promises.load__event_file_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({
api_cfg: api_cfg,
obj_type: 'event_file',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_tbl: true, // NOTE: We want to use the alt table for file searching?
use_alt_mdl: false,
use_alt_exp: 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_file_obj_li_get_result) {
if (event_file_obj_li_get_result) {
db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: event_file_obj_li_get_result});
return event_file_obj_li_get_result;
} else {
return [];
}
});
if (log_lvl) {
console.log('ae_promises.load__event_file_obj_li:', ae_promises.load__event_file_obj_li);
}
return ae_promises.load__event_file_obj_li;
}
// Updated 2024-07-12
export async function search__event_file(
{
api_cfg,
event_id,
created_on = null,
min_file_size = null,
fulltext_search_qry_str,
ft_file_search_qry_str,
like_search_qry_str = null,
like_presentation_search_qry_str = null,
like_file_search_qry_str = null,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC', 'filename': 'ASC', 'extension': 'ASC', 'hosted_file_size': 'ASC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
created_on?: null|string,
min_file_size?: null|number,
fulltext_search_qry_str?: null|string,
ft_file_search_qry_str?: null|string,
like_search_qry_str?: null|string,
like_presentation_search_qry_str?: null|string,
like_file_search_qry_str?: null|string,
order_by_li?: key_val,
params?: any,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** search__event_file() *** 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_file_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_file_search_qry_str && ft_file_search_qry_str.length > 2) {
params_json['ft_qry']['event_file_li_qry_str'] = ft_file_search_qry_str;
}
}
// Use the AND (AND LIKE) query
// if (like_search_qry_str || like_file_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_file_search_qry_str && like_file_search_qry_str.length > 2) {
// params_json['and_like']['event_file_li_qry_str'] = like_file_search_qry_str;
// }
// }
// Use the AND (OR LIKE) query
// if (like_search_qry_str || like_presentation_search_qry_str || like_file_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_file_search_qry_str && like_file_search_qry_str.length > 2) {
// params_json['or_like']['event_file_li_qry_str'] = like_file_search_qry_str;
// }
// }
// params_json['and_qry'] = {};
// if (created_on) {
// params_json['and_qry']['created_on'] = created_on;
// }
if (min_file_size) {
params_json['and_qry'] = {'hosted_file_size': {'>': min_file_size}};
}
ae_promises.load__event_file_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_file',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: true, // NOTE: We want to use the alt table for file 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_file_obj_li_get_result) {
if (event_file_obj_li_get_result) {
db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: event_file_obj_li_get_result});
return event_file_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_file_obj_li:', ae_promises.load__event_file_obj_li);
}
return ae_promises.load__event_file_obj_li;
}
// This function will loop through the event_file_obj_li and save each one to the DB.
// Updated 2024-10-04
export function db_save_ae_obj_li__event_file(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_file() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.files.put({
id: obj.event_file_id_random,
id_random: obj.event_file_id_random,
event_file_id: obj.event_file_id_random,
event_file_id_random: obj.event_file_id_random,
hosted_file_id: obj.hosted_file_id_random,
hosted_file_id_random: obj.hosted_file_id_random,
hash_sha256: obj.hash_sha256, // Renamed with alias in FastAPI model
for_type: obj.for_type,
for_id: obj.for_id_id_random,
for_id_random: obj.for_id_random,
event_id: obj.event_id_random,
event_id_random: obj.event_id_random,
event_session_id: obj.event_session_id_random,
event_session_id_random: obj.event_session_id_random,
event_presentation_id: obj.event_presentation_id_random,
event_presentation_id_random: obj.event_presentation_id_random,
event_presenter_id: obj.event_presenter_id_random,
event_presenter_id_random: obj.event_presenter_id_random,
event_location_id: obj.event_location_id_random,
event_location_id_random: obj.event_location_id_random,
filename: obj.filename,
extension: obj.extension,
open_in_os: obj.open_in_os,
lu_file_purpose_id: obj.lu_file_purpose_id, // Not id_random in this case?
lu_event_file_purpose_name: obj.lu_event_file_purpose_name,
file_purpose: obj.file_purpose,
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,
filename_no_ext: obj.filename_no_ext,
filename_w_ext: obj.filename_w_ext,
hosted_file_content_type: obj.hosted_file_content_type,
file_size: obj.file_size,
hosted_file_size: obj.hosted_file_size,
event_location_code: obj.event_location_code,
event_location_name: obj.event_location_name,
event_session_code: obj.event_session_code,
event_session_type_code: obj.event_session_type_code,
event_session_name: obj.event_session_name,
event_session_start_datetime: obj.event_session_start_datetime,
event_session_end_datetime: obj.event_session_end_datetime,
event_presentation_code: obj.event_presentation_code,
event_presentation_type_code: obj.event_presentation_type_code,
event_presentation_name: obj.event_presentation_name,
event_presentation_start_datetime: obj.event_presentation_start_datetime,
event_presentation_end_datetime: obj.event_presentation_end_datetime,
event_presenter_given_name: obj.event_presenter_given_name,
event_presenter_family_name: obj.event_presenter_family_name,
event_presenter_full_name: obj.event_presenter_full_name,
event_presenter_email: obj.event_presenter_email,
});
// console.log(`Put obj with ID: ${obj.event_file_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_file_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.files.put(obj);
// console.log(`Put obj with ID: ${obj.event_file_id_random}`);
});
return true;
}
return false;
}
export function db_update_ae_obj_id__event_file(
{
obj_type,
obj_id,
data_kv,
}: {
obj_type: string,
obj_id: string,
data_kv: key_val
}
) {
console.log(`*** db_update_ae_obj_id__event_file() ***`);
if (obj_id) {
console.log(`ae_obj ${obj_type}:`, obj_id);
try {
// db_events.files.update(obj_id, data_kv);
db_events.files.update(obj_id,
{
// for_type: data_kv.for_type,
// for_id: data_kv.for_id_id_random,
// for_id_random: data_kv.for_id_random,
// event_id_random: data_kv.event_id_random,
// event_session_id_random: data_kv.event_session_id_random,
// event_presentation_id_random: data_kv.event_presentation_id_random,
// event_presenter_id_random: data_kv.event_presenter_id_random,
// event_location_id_random: data_kv.event_location_id_random,
filename: data_kv.filename,
extension: data_kv.extension,
open_in_os: data_kv.open_in_os,
// lu_file_purpose_id: data_kv.lu_file_purpose_id, // Not id_random in this case?
// lu_event_file_purpose_name: data_kv.lu_event_file_purpose_name,
file_purpose: data_kv.file_purpose,
// enable: data_kv.enable,
// hide: data_kv.hide,
// priority: data_kv.priority,
// sort: data_kv.sort,
// group: data_kv.group,
// notes: data_kv.notes,
// created_on: data_kv.created_on,
// updated_on: data_kv.updated_on,
filename_no_ext: data_kv.filename_no_ext,
filename_w_ext: data_kv.filename_w_ext,
// hosted_file_content_type: data_kv.hosted_file_content_type,
// file_size: data_kv.file_size,
// hosted_file_size: data_kv.hosted_file_size,
// event_location_code: data_kv.event_location_code,
// event_location_name: data_kv.event_location_name,
// event_session_code: data_kv.event_session_code,
// event_session_name: data_kv.event_session_name,
// event_session_start_datetime: data_kv.event_session_start_datetime,
// event_presentation_code: data_kv.event_presentation_code,
// event_presentation_name: data_kv.event_presentation_name,
// event_presentation_start_datetime: data_kv.event_presentation_start_datetime,
// event_presenter_given_name: data_kv.event_presenter_given_name,
// event_presenter_family_name: data_kv.event_presenter_family_name,
// event_presenter_full_name: data_kv.event_presenter_full_name,
// event_presenter_email: data_kv.event_presenter_email,
}
);
console.log(`Update obj with ID: ${obj_id}`);
} catch (error) {
let status = `Failed to update ${obj_id}: ${error}`;
console.log(status);
}
// const id_random = await db_events.files.put(obj);
// console.log(`Put obj with ID: ${data_kv.event_file_id_random}`);
return true;
}
return false;
}

View File

@@ -0,0 +1,603 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_li__event_device } from "$lib/ae_events/ae_events__event_device";
import { load_ae_obj_li__event_file } from "$lib/ae_events/ae_events__event_file";
import { load_ae_obj_li__event_session } from './ae_events__event_session';
let ae_promises: key_val = {};
// Updated 2024-06-10
export async function load_ae_obj_id__event_location(
{
api_cfg,
event_location_id,
inc_file_li = false,
inc_session_li = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_location_id: string,
inc_file_li?: boolean,
inc_session_li?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** load_ae_obj_id__event_location() *** event_location_id=${event_location_id}`);
}
let params = {};
ae_promises.load__event_location_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_location',
obj_id: event_location_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_location_obj_get_result) {
if (event_location_obj_get_result) {
if (try_cache) {
// This is expecting a list
db_save_ae_obj_li__event_location({
obj_type: 'event_location',
obj_li: [event_location_obj_get_result]
});
}
return event_location_obj_get_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (log_lvl) {
console.log('ae_promises.load__event_location_obj:', ae_promises.load__event_location_obj);
}
if (inc_file_li) {
// Load the files for the location
if (log_lvl) {
console.log(`Need to load the file list for the location now`);
}
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_location',
for_obj_id: event_location_id,
params: {qry__enabled: 'all', qry__limit: 15},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`load_event_file_obj_li = `, load_event_file_obj_li);
}
ae_promises.load__event_location_obj.event_file_li = load_event_file_obj_li;
}
if (inc_session_li) {
// Load the sessions for the location
if (log_lvl) {
console.log(`Need to load the session list for the location now`);
}
let load_event_session_obj_li = load_ae_obj_li__event_session({
api_cfg: api_cfg,
for_obj_type: 'event_location',
for_obj_id: event_location_id,
params: {qry__enabled: 'all', qry__limit: 15},
try_cache: try_cache,
log_lvl: log_lvl
});
if (log_lvl) {
console.log(`load_event_session_obj_li = `, load_event_session_obj_li);
}
ae_promises.load__event_location_obj.event_session_li = load_event_session_obj_li;
}
return ae_promises.load__event_location_obj;
}
// Updated 2024-09-24
export async function load_ae_obj_li__event_location(
{
api_cfg,
for_obj_type,
for_obj_id,
inc_device_li = false,
inc_file_li = false,
inc_session_li = false,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'name': 'ASC', 'code': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
inc_device_li?: boolean,
inc_file_li?: boolean,
inc_session_li?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_li__event_location() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_id}`);
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'all'); // 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_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_location',
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: order_by_li,
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (event_location_obj_li_get_result) {
if (event_location_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_location({
obj_type: 'event_location',
obj_li: event_location_obj_li_get_result
});
}
return event_location_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_location_obj_li:', ae_promises.load__event_location_obj_li);
}
if (inc_device_li) {
// Load the devices for the locations
if (log_lvl) {
console.log(`Need to load the device list for each location now`);
}
for (let i = 0; i < ae_promises.load__event_location_obj_li.length; i++) {
let event_location_obj = ae_promises.load__event_location_obj_li[i];
let event_location_id = event_location_obj.event_location_id_random;
let load_event_device_obj_li = load_ae_obj_li__event_device({
api_cfg: api_cfg,
for_obj_type: 'event_location',
for_obj_id: event_location_id,
params: {qry__enabled: enabled, qry__limit: limit},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_device_obj_li) => {
if (log_lvl) {
console.log(`event_device_obj_li = `, event_device_obj_li);
}
return event_device_obj_li;
});
if (log_lvl) {
console.log(`load_event_device_obj_li = `, load_event_device_obj_li);
}
}
}
if (inc_file_li) {
// Load the files for the locations
if (log_lvl) {
console.log(`Need to load the file list for each location now`);
}
for (let i = 0; i < ae_promises.load__event_location_obj_li.length; i++) {
let event_location_obj = ae_promises.load__event_location_obj_li[i];
let event_location_id = event_location_obj.event_location_id_random;
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_location',
for_obj_id: event_location_id,
params: {qry__enabled: enabled, qry__limit: limit},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`load_event_file_obj_li = `, load_event_file_obj_li);
}
}
}
if (inc_session_li) {
// Load the sessions for the locations
if (log_lvl) {
console.log(`Need to load the session list for each location now`);
}
for (let i = 0; i < ae_promises.load__event_location_obj_li.length; i++) {
let event_location_obj = ae_promises.load__event_location_obj_li[i];
let event_location_id = event_location_obj.event_location_id_random;
let load_event_session_obj_li = load_ae_obj_li__event_session({
api_cfg: api_cfg,
for_obj_type: 'event_location',
for_obj_id: event_location_id,
params: {qry__enabled: enabled, qry__limit: limit},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_session_obj_li) => {
if (log_lvl) {
console.log(`event_session_obj_li = `, event_session_obj_li);
}
return event_session_obj_li;
});
if (log_lvl) {
console.log(`load_event_session_obj_li = `, load_event_session_obj_li);
}
}
}
return ae_promises.load__event_location_obj_li;
}
// Updated 2024-06-25
export async function create_ae_obj__event_location(
{
api_cfg,
event_id,
data_kv,
params={},
log_lvl=0
}: {
api_cfg: any,
event_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** create_ae_obj__event_location() *** event_id=${event_id}`);
ae_promises.create__event_location = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_location',
fields: {
event_id_random: event_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_location_obj_create_result) {
if (event_location_obj_create_result) {
db_save_ae_obj_li__event_location(
{
obj_type: 'event_location',
obj_li: [event_location_obj_create_result]
});
return event_location_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event_location:', ae_promises.create__event_location);
}
return ae_promises.create__event_location;
}
// Updated 2024-09-25
export async function update_ae_obj__event_location(
{
api_cfg,
event_location_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_location_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_location() *** event_location_id=${event_location_id}`, data_kv);
}
ae_promises.update__event_location_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_location',
obj_id: event_location_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_location_obj_update_result) {
if (event_location_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event_location({
obj_type: 'event_location', obj_li: [event_location_obj_update_result]
});
}
return event_location_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_location_obj:', ae_promises.update__event_location_obj);
}
return ae_promises.update__event_location_obj;
}
export async function search__event_location(
{
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(`*** search__event_location() *** 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 (location_type_code) {
// params_json['and_qry']['location_type_code'] = location_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_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_location',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: true, // NOTE: We want to use the alt table for location 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_location_obj_li_get_result) {
if (event_location_obj_li_get_result) {
db_save_ae_obj_li__event_location({obj_type: 'event_location', obj_li: event_location_obj_li_get_result});
return event_location_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_location_obj_li:', ae_promises.load__event_location_obj_li);
}
return ae_promises.load__event_location_obj_li;
}
// This function will loop through the event_location_obj_li and save each one to the DB.
// Updated 2024-06-25
export function db_save_ae_obj_li__event_location(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_location() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.locations.put({
id: obj.event_location_id_random,
event_location_id: obj.event_location_id_random,
event_location_id_random: obj.event_location_id_random,
external_id: obj.external_id,
code: obj.code,
type_code: obj.type_code,
event_id: obj.event_id_random,
event_id_random: obj.event_id_random,
name: obj.name,
description: obj.description,
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,
event_file_id_li_json: obj.event_file_id_li_json,
// 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,
});
// console.log(`Put obj with ID: ${obj.event_location_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_location_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.locations.put(obj);
// console.log(`Put obj with ID: ${obj.event_location_id_random}`);
});
return true;
}
}

View File

@@ -0,0 +1,456 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_li__event_file } from "$lib/ae_events/ae_events__event_file";
import { load_ae_obj_li__event_presenter } from "$lib/ae_events/ae_events__event_presenter";
let ae_promises: key_val = {};
// Updated 2024-10-08
export async function load_ae_obj_id__event_presentation(
{
api_cfg,
event_presentation_id,
inc_file_li = false,
inc_presenter_li = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_presentation_id: string,
inc_file_li?: boolean,
inc_presenter_li?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_id__event_presentation() *** event_presentation_id=${event_presentation_id}`);
let params = {};
ae_promises.load__event_presentation_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presentation',
obj_id: event_presentation_id, // NOTE: This is the FQDN, not normally the ID.
use_alt_table: false, // 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
params: params,
log_lvl: log_lvl
})
.then(function (event_presentation_obj_get_result) {
if (event_presentation_obj_get_result) {
if (try_cache) {
// This is expecting a list
db_save_ae_obj_li__event_presentation({
obj_type: 'event_presentation',
obj_li: [event_presentation_obj_get_result]
});
}
return event_presentation_obj_get_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (inc_file_li) {
// Load the files for the presentation
if (log_lvl) {
console.log(`Need to load the file list for the presentation now.`);
}
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_presentation',
for_obj_id: event_presentation_id,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`event_file_obj_li = `, load_event_file_obj_li);
}
ae_promises.load__event_presentation_obj.event_file_li = load_event_file_obj_li;
}
if (inc_presenter_li) {
// Load the presenters for the presentation
if (log_lvl) {
console.log(`Need to load the presenter list for the presentation now.`);
}
let load_event_presenter_obj_li = load_ae_obj_li__event_presenter({
api_cfg: api_cfg,
for_obj_type: 'event_presentation',
for_obj_id: event_presentation_id,
inc_file_li: inc_file_li,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_presenter_obj_li) => {
if (log_lvl) {
console.log(`event_presenter_obj_li = `, event_presenter_obj_li);
}
return event_presenter_obj_li;
});
if (log_lvl) {
console.log(`event_presenter_obj_li = `, load_event_presenter_obj_li);
}
ae_promises.load__event_presentation_obj.event_presenter_li = load_event_presenter_obj_li;
}
return ae_promises.load__event_presentation_obj;
}
// Updated 2024-10-08
export async function load_ae_obj_li__event_presentation(
{
api_cfg,
for_obj_type = 'event_session',
for_obj_id,
inc_file_li = false,
inc_presenter_li = false,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'start_datetime': 'ASC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
inc_file_li?: boolean,
inc_presenter_li?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_li__event_presentation() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_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 ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
let params_json: key_val = {};
// console('params_json:', params_json);
ae_promises.load__event_presentation_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presentation',
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: order_by_li,
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (event_presentation_obj_li_get_result) {
if (event_presentation_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_presentation({
obj_type: 'event_presentation', obj_li: event_presentation_obj_li_get_result
});
}
return event_presentation_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_presentation_obj_li:', ae_promises.load__event_presentation_obj_li);
}
if (inc_file_li) {
// Load the files for the presentations
if (log_lvl) {
console.log(`Need to load the file list for each presentation now.`);
}
for (let i = 0; i < ae_promises.load__event_presentation_obj_li.length; i++) {
let event_presentation_obj = ae_promises.load__event_presentation_obj_li[i];
let event_presentation_id = event_presentation_obj.event_presentation_id_random;
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_presentation',
for_obj_id: event_presentation_id,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`event_file_obj_li = `, load_event_file_obj_li);
}
// ae_promises.load__event_presentation_obj.event_file_li = load_event_file_obj_li;
}
}
if (inc_presenter_li) {
// Load the presenters for the presentations
if (log_lvl) {
console.log(`Need to load the presenter list for each presentation now.`);
}
for (let i = 0; i < ae_promises.load__event_presentation_obj_li.length; i++) {
let event_presentation_obj = ae_promises.load__event_presentation_obj_li[i];
let event_presentation_id = event_presentation_obj.event_presentation_id_random;
let load_event_presenter_obj_li = load_ae_obj_li__event_presenter({
api_cfg: api_cfg,
for_obj_type: 'event_presentation',
for_obj_id: event_presentation_id,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_presenter_obj_li) => {
if (log_lvl) {
console.log(`event_presenter_obj_li = `, event_presenter_obj_li);
}
return event_presenter_obj_li;
});
if (log_lvl) {
console.log(`event_presenter_obj_li = `, load_event_presenter_obj_li);
}
// ae_promises.load__event_presentation_obj.event_presenter_li = load_event_presenter_obj_li;
}
}
return ae_promises.load__event_presentation_obj_li;
}
// Updated 2024-06-24
export async function create_ae_obj__event_presentation(
{
api_cfg,
event_id,
event_session_id,
data_kv,
params = {},
log_lvl = 0
}: {
api_cfg: any,
event_id: string,
event_session_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** create_ae_obj__event_presentation() *** event_id=${event_id} event_session_id=${event_session_id}`);
ae_promises.create__event_presentation = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_presentation',
fields: {
event_id_random: event_id,
event_session_id_random: event_session_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_presentation_obj_create_result) {
if (event_presentation_obj_create_result) {
db_save_ae_obj_li__event_presentation(
{
obj_type: 'event_presentation',
obj_li: [event_presentation_obj_create_result]
});
return event_presentation_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event_presentation:', ae_promises.create__event_presentation);
}
return ae_promises.create__event_presentation;
}
// Updated 2024-09-25
export async function update_ae_obj__event_presentation(
{
api_cfg,
event_presentation_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_presentation_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_presentation() *** event_presentation_id=${event_presentation_id}`, data_kv);
}
ae_promises.update__event_presentation_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presentation',
obj_id: event_presentation_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_presentation_obj_update_result) {
if (event_presentation_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event_presentation({
obj_type: 'event_presentation', obj_li: [event_presentation_obj_update_result]
});
}
return event_presentation_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_presentation_obj:', ae_promises.update__event_presentation_obj);
}
return ae_promises.update__event_presentation_obj;
}
// This function will loop through the event_presentation_obj_li and save each one to the DB.
// Updated 2024-06-10
export function db_save_ae_obj_li__event_presentation(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_presentation() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.presentations.put({
id: obj.event_presentation_id_random,
// id_random: obj.event_presentation_id_random,
event_presentation_id: obj.event_presentation_id_random,
event_presentation_id_random: obj.event_presentation_id_random,
external_id: obj.external_id,
code: obj.code,
for_type: obj.for_type,
for_id: obj.for_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_session_id: obj.event_session_id_random,
event_session_id_random: obj.event_session_id_random,
event_abstract_id: obj.event_abstract_id_random,
event_abstract_id_random: obj.event_abstract_id_random,
abstract_code: obj.abstract_code,
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,
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
event_session_code: obj.event_session_code,
event_session_name: obj.event_session_name,
// A key value list of the presenters
// event_presenter_kv: obj.event_presenter_kv,
});
// console.log(`Put obj with ID: ${obj.event_presentation_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_presentation_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.presentations.put(obj);
// console.log(`Put obj with ID: ${obj.event_presentation_id_random}`);
});
return true;
}
}

View File

@@ -0,0 +1,687 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_li__event_file } from "$lib/ae_events/ae_events__event_file";
let ae_promises: key_val = {};
// Updated 2024-10-08
export async function load_ae_obj_id__event_presenter(
{
api_cfg,
event_presenter_id,
inc_file_li = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_presenter_id: string,
inc_file_li?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_id__event_presenter() *** event_presenter_id=${event_presenter_id}`);
let params = {};
ae_promises.load__event_presenter_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
obj_id: event_presenter_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
params: params,
log_lvl: log_lvl
})
.then(function (event_presenter_obj_get_result) {
if (event_presenter_obj_get_result) {
if (try_cache) {
// This is expecting a list
db_save_ae_obj_li__event_presenter({
obj_type: 'event_presenter',
obj_li: [event_presenter_obj_get_result]
});
}
return event_presenter_obj_get_result;
} else {
console.log('No results returned.');
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
});
if (inc_file_li) {
// Load the files for the presenter
if (log_lvl) {
console.log(`Need to load the file list for the presenter now.`);
}
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_presenter',
for_obj_id: event_presenter_id,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`event_file_obj_li = `, load_event_file_obj_li);
}
ae_promises.load__event_presenter_obj.event_file_li = load_event_file_obj_li;
}
return ae_promises.load__event_presenter_obj;
}
// Updated 2024-10-08
export async function load_ae_obj_li__event_presenter(
{
api_cfg,
for_obj_type,
for_obj_id,
inc_file_li = false,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
inc_file_li?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** load_ae_obj_li__event_presenter() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_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 ?? 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_presenter_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
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: order_by_li,
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (event_presenter_obj_li_get_result) {
if (event_presenter_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_presenter({
obj_type: 'event_presenter',
obj_li: event_presenter_obj_li_get_result
});
}
return event_presenter_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_presenter_obj_li:', ae_promises.load__event_presenter_obj_li);
}
if (inc_file_li) {
// Load the files for the presenters
if (log_lvl) {
console.log(`Need to load the file list for each presenter now.`);
}
for (let i = 0; i < ae_promises.load__event_presenter_obj_li.length; i++) {
let event_presenter_obj = ae_promises.load__event_presenter_obj_li[i];
let event_presenter_id = event_presenter_obj.event_presenter_id_random;
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_presenter',
for_obj_id: event_presenter_id,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`event_file_obj_li = `, load_event_file_obj_li);
}
// ae_promises.load__event_presenter_obj.event_file_li = load_event_file_obj_li;
}
}
return ae_promises.load__event_presenter_obj_li;
}
// Updated 2024-08-07
export async function delete_ae_obj_id__event_presenter(
{
api_cfg,
event_presenter_id,
method = 'delete', // 'delete', 'disable', 'hide'
params = {},
log_lvl = 0
}: {
api_cfg: any,
event_presenter_id: string,
method?: string,
params?: key_val,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** delete_ae_obj_id__event_presenter() *** event_presenter_id=${event_presenter_id}`);
}
ae_promises.delete__event_presenter_obj = await api.delete_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
obj_id: event_presenter_id, // NOTE: This is the FQDN, not normally the ID.
key: api_cfg.api_crud_super_key,
params: params,
method: method,
log_lvl: log_lvl
})
.then(function (event_presenter_obj_delete_result) {
if (event_presenter_obj_delete_result) {
// db_save_ae_obj_li__event_presenter({obj_type: 'event_presenter', obj_li: [event_presenter_obj_delete_result]});
return event_presenter_obj_delete_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
db_events.presenters.delete(event_presenter_id);
});
if (log_lvl) {
console.log('ae_promises.delete__event_presenter_obj:', ae_promises.delete__event_presenter_obj);
}
return ae_promises.delete__event_presenter_obj;
}
// Updated 2024-06-24
export async function create_ae_obj__event_presenter(
{
api_cfg,
event_id,
event_session_id,
event_presentation_id,
data_kv,
params = {},
log_lvl = 0
}: {
api_cfg: any,
event_id: string,
event_session_id: string,
event_presentation_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** create_ae_obj__event_presenter() *** event_id=${event_id} event_session_id=${event_session_id} event_presentation_id=${event_presentation_id}`);
}
ae_promises.create__event_presenter = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
fields: {
event_id_random: event_id,
event_session_id_random: event_session_id,
event_presentation_id_random: event_presentation_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_presenter_obj_create_result) {
if (event_presenter_obj_create_result) {
db_save_ae_obj_li__event_presenter(
{
obj_type: 'event_presenter', obj_li: [event_presenter_obj_create_result]
});
return event_presenter_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event_presenter:', ae_promises.create__event_presenter);
}
return ae_promises.create__event_presenter;
}
// Updated 2024-09-13
export async function update_ae_obj__event_presenter(
{
api_cfg,
event_presenter_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_presenter_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_presenter() *** event_presenter_id=${event_presenter_id}`, data_kv);
}
ae_promises.update__event_presenter_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
obj_id: event_presenter_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_presenter_obj_update_result) {
if (event_presenter_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event_presenter({
obj_type: 'event_presenter',
obj_li: [event_presenter_obj_update_result]
});
}
return event_presenter_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_presenter_obj:', ae_promises.update__event_presenter_obj);
}
return ae_promises.update__event_presenter_obj;
}
// Updated 2024-07-11
export async function search__event_presenter(
{
api_cfg,
event_id,
agree = null,
biography = null,
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,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
agree?: null|boolean,
biography?: null|boolean,
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,
order_by_li?: key_val,
params?: any,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** search__event_presenter() *** 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 (agree === true || agree === false) {
params_json['and_qry']['agree'] = agree;
}
if (biography) {
params_json['and_qry']['biography_check'] = biography;
}
ae_promises.load__event_presenter_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_presenter',
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_presenter_obj_li_get_result) {
if (event_presenter_obj_li_get_result) {
if (try_cache) {
db_save_ae_obj_li__event_presenter({
obj_type: 'event_presenter',
obj_li: event_presenter_obj_li_get_result
});
}
db_save_ae_obj_li__event_presenter({obj_type: 'event_presenter', obj_li: event_presenter_obj_li_get_result});
return event_presenter_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_presenter_obj_li:', ae_promises.load__event_presenter_obj_li);
}
return ae_promises.load__event_presenter_obj_li;
}
// Updated 2024-06-10
export function db_save_ae_obj_li__event_presenter(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_presenter() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.presenters.put({
id: obj.event_presenter_id_random,
// id_random: obj.event_presenter_id_random,
event_presenter_id: obj.event_presenter_id_random,
event_presenter_id_random: obj.event_presenter_id_random,
external_id: obj.external_id,
code: obj.code,
// for_type: obj.for_type,
// for_id_random: obj.for_id_random,
event_id: obj.event_id_random,
event_id_random: obj.event_id_random,
event_session_id: obj.event_session_id_random,
event_session_id_random: obj.event_session_id_random,
event_presentation_id: obj.event_presentation_id_random,
event_presentation_id_random: obj.event_presentation_id_random,
event_person_id: obj.event_person_id_random,
event_person_id_random: obj.event_person_id_random,
person_id: obj.person_id_random,
person_id_random: obj.person_id_random,
person_profile_id: obj.person_profile_id_random,
person_profile_id_random: obj.person_profile_id_random, // The new table person_profile will be used soon...
pronouns: obj.pronouns,
informal_name: obj.informal_name,
title_names: obj.title_names,
given_name: obj.given_name,
middle_name: obj.middle_name,
family_name: obj.family_name,
designations: obj.designations,
professional_title: obj.professional_title,
full_name: obj.full_name,
affiliations: obj.affiliations,
email: obj.email,
biography: obj.biography,
agree: obj.agree,
comments: obj.comments,
passcode: obj.passcode,
hide_event_launcher: obj.hide_event_launcher,
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,
event_session_code: obj.event_session_code,
event_session_name: obj.event_session_name,
event_session_start_datetime: obj.event_session_start_datetime,
event_presentation_code: obj.event_presentation_code,
event_presentation_name: obj.event_presentation_name,
event_presentation_start_datetime: obj.event_presentation_start_datetime,
person_external_id: obj.person_external_id,
person_external_sys_id: obj.person_external_sys_id,
person_given_name: obj.person_given_name,
person_family_name: obj.person_family_name,
person_full_name: obj.person_full_name,
person_professional_title: obj.person_professional_title,
person_affiliations: obj.person_affiliations,
person_primary_email: obj.person_primary_email,
person_passcode: obj.person_passcode,
});
// console.log(`Put obj with ID: ${obj.event_presenter_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_presenter_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.presenters.put(obj);
// console.log(`Put obj with ID: ${obj.event_presenter_id_random}`);
});
return true;
}
return false;
}
// Updated 2024-08-07
export async function email_sign_in__event_presenter (
{
api_cfg,
to_email,
to_name,
base_url,
person_id,
person_passcode,
event_session_id,
event_presentation_id,
event_presenter_id,
session_name,
presentation_name,
log_lvl = 0
}: {
api_cfg: any,
to_email: string,
to_name: string,
base_url: string,
person_id: string,
person_passcode: string,
event_session_id: string,
event_presentation_id: string,
event_presenter_id: string,
session_name: string,
presentation_name: string,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** email_sign_in__event_presenter() *** to_email=${to_email} to_name=${to_name} person_id=${person_id} person_passcode=${person_passcode} presentation_id=${event_presentation_id} presenter_id=${event_presenter_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}&presentation_id=${event_presentation_id}&presenter_id=${event_presenter_id}`)
let body_html = `
<div>${to_name},
<p>Your link to sign into the presentation management hub 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.</p>
</div>
<div>
<strong>26th Annual Lean Construction Congress (2024)</strong>:<br>
<p>
Session Name: ${session_name}<br>
Session ID: ${event_session_id}<br>
Presentation Name: ${presentation_name}<br>
Presentation ID: ${event_presentation_id}
</p>
<p>Use this link to view or update your LCI 2024 presentation information.<br>
Copy and paste link: <a href="${sign_in_url}">${sign_in_url}</a></p>
</div>`;
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,
});
}

View File

@@ -0,0 +1,876 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_events } from "$lib/db_events";
import { load_ae_obj_li__event_file } from "$lib/ae_events/ae_events__event_file";
import { load_ae_obj_li__event_presentation } from "$lib/ae_events/ae_events__event_presentation";
let ae_promises: key_val = {};
// Updated 2024-08-09
export async function load_ae_obj_id__event_session(
{
api_cfg,
event_session_id,
inc_file_li = false,
inc_presentation_li = false,
inc_presenter_li = false,
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_session_id: string,
inc_file_li?: boolean,
inc_presentation_li?: boolean,
inc_presenter_li?: boolean,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** 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
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);
});
if (log_lvl) {
console.log('ae_promises.load__event_session_obj:', ae_promises?.load__event_session_obj);
}
if (ae_promises?.load__event_session_obj === null) {
console.log('No results returned.');
return null;
}
if (inc_file_li) {
// Load the files for the session
if (log_lvl) {
console.log(`Need to load the file list for the session now`);
}
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_session',
for_obj_id: event_session_id,
params: {qry__enabled: 'all', qry__limit: 15},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`load_event_file_obj_li = `, load_event_file_obj_li);
}
ae_promises.load__event_session_obj.event_file_li = load_event_file_obj_li;
}
if (inc_presentation_li) {
// Load the presentations for the session
if (log_lvl) {
console.log(`Need to load the presentation list for the session now`);
}
let load_event_presentation_obj_li = load_ae_obj_li__event_presentation({
api_cfg: api_cfg,
for_obj_type: 'event_session',
for_obj_id: event_session_id,
inc_file_li: inc_file_li,
inc_presenter_li: inc_presenter_li,
params: {qry__enabled: 'all', qry__limit: 25},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_presentation_obj_li) => {
if (log_lvl) {
console.log(`event_presentation_obj_li = `, event_presentation_obj_li);
}
// if (try_cache) {
// console.log(`ae_promises.load__event_session_obj = `, ae_promises.load__event_session_obj);
// ae_promises.load__event_session_obj.event_presentation_li = event_presentation_obj_li;
// // Re-save the session object with the new presentation list
// db_save_ae_obj_li__event_session({
// obj_type: 'event_session',
// obj_li: [ae_promises.load__event_session_obj]
// });
// }
return event_presentation_obj_li;
});
if (log_lvl) {
console.log(`event_presentation_obj_li = `, load_event_presentation_obj_li);
}
ae_promises.load__event_session_obj.event_presentation_li = load_event_presentation_obj_li;
}
return ae_promises.load__event_session_obj;
}
// Updated 2024-08-09
export async function load_ae_obj_li__event_session(
{
api_cfg,
for_obj_type,
for_obj_id,
inc_file_li = false,
inc_presentation_li = false,
inc_presenter_li = false,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'start_datetime': 'ASC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
for_obj_type: string,
for_obj_id: string,
inc_file_li?: boolean,
inc_presentation_li?: boolean,
inc_presenter_li?: boolean,
order_by_li?: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** load_ae_obj_li__event_session() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_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 ?? 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: 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) {
if (try_cache) {
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);
}
if (inc_file_li) {
// Load the files for the sessions
if (log_lvl) {
console.log(`Need to load the file list for each session now`);
}
for (let i = 0; i < ae_promises.load__event_session_obj_li.length; i++) {
let event_session_obj = ae_promises.load__event_session_obj_li[i];
let event_session_id = event_session_obj.event_session_id_random;
let load_event_file_obj_li = load_ae_obj_li__event_file({
api_cfg: api_cfg,
for_obj_type: 'event_session',
for_obj_id: event_session_id,
params: {qry__enabled: enabled, qry__limit: limit},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_file_obj_li) => {
if (log_lvl) {
console.log(`event_file_obj_li = `, event_file_obj_li);
}
return event_file_obj_li;
});
if (log_lvl) {
console.log(`load_event_file_obj_li = `, load_event_file_obj_li);
}
}
}
if (inc_presentation_li) {
// Load the presentations for the sessions
if (log_lvl) {
console.log(`Need to load the presentation list for each session now`);
}
for (let i = 0; i < ae_promises.load__event_session_obj_li.length; i++) {
let event_session_obj = ae_promises.load__event_session_obj_li[i];
let event_session_id = event_session_obj.event_session_id_random;
let load_event_presentation_obj_li = load_ae_obj_li__event_presentation({
api_cfg: api_cfg,
for_obj_type: 'event_session',
for_obj_id: event_session_id,
inc_file_li: inc_file_li,
inc_presenter_li: inc_presenter_li,
params: {qry__enabled: enabled, qry__limit: limit},
try_cache: try_cache,
log_lvl: log_lvl
})
.then((event_presentation_obj_li) => {
if (log_lvl) {
console.log(`event_presentation_obj_li = `, event_presentation_obj_li);
}
// if (try_cache) {
// console.log(`event_session_obj = `, event_session_obj);
// event_session_obj.event_presentation_li = event_presentation_obj_li;
// // Re-save the session object with the new presentation list
// db_save_ae_obj_li__event_session({
// obj_type: 'event_session',
// obj_li: event_session_obj
// });
// }
return event_presentation_obj_li;
});
if (log_lvl) {
console.log(`load_event_presentation_obj_li = `, load_event_presentation_obj_li);
}
}
}
return ae_promises.load__event_session_obj_li;
}
// Updated 2024-09-25
export async function create_ae_obj__event_session(
{
api_cfg,
event_id,
data_kv,
params={},
log_lvl=0
}: {
api_cfg: any,
event_id: string,
data_kv: key_val,
params?: key_val,
log_lvl?: number
}
) {
console.log(`*** create_ae_obj__event_session() *** event_id=${event_id}`);
ae_promises.create__event_session = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_session',
fields: {
event_id_random: event_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_session_obj_create_result) {
if (event_session_obj_create_result) {
db_save_ae_obj_li__event_session(
{
obj_type: 'event_session',
obj_li: [event_session_obj_create_result]
});
return event_session_obj_create_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.create__event_session:', ae_promises.create__event_session);
}
return ae_promises.create__event_session;
}
// Updated 2024-09-13
export async function update_ae_obj__event_session(
{
api_cfg,
event_session_id,
data_kv,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_session_id: string,
data_kv: key_val,
params?: key_val,
try_cache?: boolean,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** update_ae_obj__event_session() *** event_session_id=${event_session_id}`, data_kv);
}
// ae_promises.update__event_session_obj = 'test';
ae_promises.update__event_session_obj = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_session',
obj_id: event_session_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (event_session_obj_update_result) {
if (event_session_obj_update_result) {
if (try_cache) {
db_save_ae_obj_li__event_session({
obj_type: 'event_session', obj_li: [event_session_obj_update_result]
});
}
return event_session_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_session_obj:', ae_promises.update__event_session_obj);
}
return ae_promises.update__event_session_obj;
}
// This new function is using CRUD v2. This should allow for more flexibility in the queries.
// Updated 2024-08-14
export async function qry__event_session(
{
api_cfg,
event_id,
qry_str,
qry_files,
qry_start_datetime, // Example greater than: '2024-10-24'
qry_poc_agree = null,
qry_poc_kv_json,
enabled = 'enabled',
hidden = 'not_hidden',
limit = 50,
offset = 0,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
qry_str?: string,
qry_files?: null|boolean,
qry_start_datetime?: null|string, // Greater than this datetime
qry_poc_agree?: null|boolean,
qry_poc_kv_json?: null|boolean, // Key value pairs for the point of contact
enabled?: string, // all, disabled, enabled
hidden?: string, // all, hidden, not_hidden
limit?: number,
offset?: number,
params?: any,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** qry__event_session() *** event_id=${event_id} qry_str=${qry_str}`);
// 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 (qry_str && qry_str.length > 2) {
// params_json['ft_qry'] = {};
// params_json['ft_qry']['default_qry_str'] = qry_str;
// }
params_json['qry'] = [];
if (qry_files === true) {
let qry_param =
{
type: "AND",
field: "file_count_all",
operator: ">",
value: 0
};
params_json['qry'].push(qry_param);
} else if (qry_files === false) {
let qry_param =
{
type: "AND",
field: "file_count_all",
operator: "IS",
value: null
};
params_json['qry'].push(qry_param);
}
if (qry_start_datetime) {
let qry_param =
{
type: "AND",
field: "start_datetime",
operator: ">",
value: qry_start_datetime
};
params_json['qry'].push(qry_param);
}
if (qry_poc_agree === true) {
let qry_param =
{
type: "AND",
field: "poc_agree",
operator: "=",
value: true
};
params_json['qry'].push(qry_param);
} else if (qry_poc_agree === false) {
// let qry_param =
// {
// type: "AND",
// field: "poc_agree",
// operator: "IS",
// value: null
// };
// params_json['qry'].push(qry_param);
let qry_param =
{
type: "AND",
field: "poc_agree",
operator: "=",
value: false
};
params_json['qry'].push(qry_param);
}
if (qry_poc_kv_json === true) {
let qry_param =
{
type: "AND",
field: "poc_kv_json",
operator: "IS NOT",
value: null
};
params_json['qry'].push(qry_param);
} else if (qry_poc_kv_json === false) {
let qry_param =
{
type: "AND",
field: "poc_kv_json",
operator: "IS",
value: null
};
params_json['qry'].push(qry_param);
}
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_v2({
api_cfg: api_cfg,
obj_type: 'event_session',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_tbl: true, // NOTE: We want to use the alt table for session searching
use_alt_mdl: false,
use_alt_exp: 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) {
if (try_cache) {
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 [];
}
});
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;
}
// Updated 2024-09-13
export async function search__event_session(
{
api_cfg,
event_id,
poc_agree = null,
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,
file_count = false, // If true then only show those that have a file count
location_name = null,
params = {},
try_cache = true,
log_lvl = 0
}: {
api_cfg: any,
event_id: any,
poc_agree?: null|boolean,
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,
file_count?: boolean,
location_name?: null|string,
params?: any,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** 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 (poc_agree) {
params_json['and_qry']['poc_agree'] = poc_agree;
}
if (file_count) {
params_json['and_qry']['file_count'] = file_count;
}
// This should be using a like with surrounded by %'s
if (location_name) {
params_json['and_qry']['event_location_name'] = location_name;
}
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) {
if (try_cache) {
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 db_save_ae_obj_li__event_session(
{
obj_type,
obj_li,
log_lvl = 0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** db_save_ae_obj_li__event_session() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
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,
poc_agree: obj.poc_agree,
poc_kv_json: obj.poc_kv_json ?? {},
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,
ux_mode: obj.ux_mode,
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,
event_file_id_li_json: obj.event_file_id_li_json,
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,
event_name: obj.event_name,
event_location_code: obj.event_location_code,
event_location_name: obj.event_location_name,
// A key value list of the presentations
event_presentation_kv: obj.event_presentation_kv,
event_presentation_li: obj.event_presentation_li,
});
// 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 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(`*** 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 = `
<div>${to_name},
<p>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.</p>
</div>
<div>
<strong>26th Annual Lean Construction Congress (2024)</strong>:<br>
<p>
Session Name: ${session_name}<br>
Session ID: ${event_session_id}
</p>
<p>Use this link to view or update your LCI 2024 session information.<br>
Copy and paste link: <a href="${sign_in_url}">${sign_in_url}</a></p>
</div>`;
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,
});
}

View File

@@ -0,0 +1,564 @@
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-03
export async function handle_load_ae_obj_id__exhibit(
{
api_cfg,
exhibit_id,
try_cache=false,
log_lvl=0
}: {
api_cfg: any,
exhibit_id: string,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** handle_load_ae_obj_id__exhibit() *** exhibit_id=${exhibit_id}`);
let params = {};
// $events_sess.exhibits.status_load__exhibit_obj = 'loading';
ae_promises.load__exhibit_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit',
obj_id: exhibit_id, // NOTE: This is the FQDN, not normally the ID.
use_alt_table: false, // 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 (exhibit_obj_get_result) {
if (exhibit_obj_get_result) {
// This is expecting a list
handle_db_save_ae_obj_li__exhibitor({obj_type: 'event_exhibit', obj_li: [exhibit_obj_get_result]});
return exhibit_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__exhibit_obj;
}
// Updated 2024-03-06
export async function handle_load_ae_obj_li__exhibit(
{
api_cfg,
event_id,
params={},
try_cache=true,
log_lvl=0
}: {
api_cfg: any,
event_id: any,
params: any,
try_cache?: boolean
log_lvl?: number
}
) {
console.log(`*** handle_load_ae_obj_li__exhibit() *** 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 ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
let params_json: key_val = {};
// params_json['and_qry'] = {};
// params_json['and_qry']['license_max'] = 10;
params_json['and_in_li'] = {
license_max : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
};
// if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) {
// params_json['ft_qry'] = {
// 'default_qry_str': fulltext_search_qry_str,
// // 'location_address_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
// // 'contact_li_json_ext': fulltext_search_qry_str, // JSON extracted text DB field
// };
// }
// console.log('params_json:', params_json);
// console.log(params_json);
// $events_sess.exhibits.status_qry__search = 'loading';
ae_promises.load__event_exhibit_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit',
for_obj_type: 'event',
for_obj_id: event_id,
use_alt_table: false, // 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.
enabled: enabled,
hidden: hidden,
order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'},
// order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (exhibit_obj_li_get_result) {
// console.log('Badge list:', exhibit_obj_li_get_result);
if (exhibit_obj_li_get_result) {
// $slct.exhibit_obj_li = exhibit_obj_li_get_result;
handle_db_save_ae_obj_li__exhibitor({obj_type: 'event_exhibit', obj_li: exhibit_obj_li_get_result});
return exhibit_obj_li_get_result;
} else {
// $slct.exhibit_obj_li = [];
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// $events_sess.exhibits.status_qry__search = 'done';
// console.log('Badge list:', exhibit_obj_li_get_result);
// return exhibit_obj_li_get_result;
});
if (log_lvl) {
console.log('ae_promises.load__event_exhibit_obj_li:', ae_promises.load__event_exhibit_obj_li);
}
return ae_promises.load__event_exhibit_obj_li;
}
export async function handle_load_ae_obj_id__exhibit_tracking(
{
api_cfg,
exhibit_tracking_id,
try_cache=false,
log_lvl=0
}: {
api_cfg: any,
exhibit_tracking_id: string,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** handle_load_ae_obj_id__exhibit_tracking() *** exhibit_tracking_id=${exhibit_tracking_id}`);
let params = {};
// $events_sess.exhibits.status_load__exhibit_tracking_obj = 'loading';
ae_promises.load__event_exhibit_tracking_obj = await api.get_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit_tracking',
obj_id: exhibit_tracking_id, // NOTE: This is the FQDN, not normally the ID.
use_alt_table: false, // 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 (exhibit_tracking_obj_get_result) {
if (exhibit_tracking_obj_get_result) {
// This is expecting a list
handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: [exhibit_tracking_obj_get_result]});
return exhibit_tracking_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_exhibit_tracking_obj;
}
// Updated 2024-03-19
export async function handle_load_ae_obj_li__exhibit_tracking(
{
api_cfg,
exhibit_id,
params={},
try_cache=true,
log_lvl=0
}: {
api_cfg: any,
exhibit_id: any,
params: any,
try_cache?: boolean,
log_lvl?: number
}
) {
console.log(`*** handle_load_ae_obj_li__exhibit_tracking() *** exhibit_id=${exhibit_id}`);
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'all'); // 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 = {};
ae_promises.load__event_exhibit_tracking_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit_tracking',
for_obj_type: 'event_exhibit',
for_obj_id: exhibit_id,
use_alt_table: false, // 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.
enabled: enabled,
hidden: hidden,
order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: log_lvl
})
.then(function (exhibit_tracking_obj_li_get_result) {
// console.log('Exhibit tracking list:', exhibit_tracking_obj_li_get_result);
if (exhibit_tracking_obj_li_get_result) {
// $slct.exhibit_tracking_obj_li = exhibit_tracking_obj_li_get_result;
handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: exhibit_tracking_obj_li_get_result});
return exhibit_tracking_obj_li_get_result;
} else {
// $slct.exhibit_tracking_obj_li = [];
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// console.log('Exhibit tracking list:', exhibit_tracking_obj_li_get_result);
// return exhibit_tracking_obj_li_get_result;
});
if (log_lvl) {
console.log('ae_promises.load__event_exhibit_tracking_obj_li:', ae_promises.load__event_exhibit_tracking_obj_li);
}
return ae_promises.load__event_exhibit_tracking_obj_li;
}
// Updated 2024-03-22
export async function handle_create_ae_obj__exhibit_tracking(
{
api_cfg,
exhibit_id,
event_badge_id,
external_person_id,
params={},
log_lvl=0
}: {
api_cfg: any,
exhibit_id: string,
event_badge_id: string,
external_person_id: string,
params: key_val,
log_lvl: number
}
) {
console.log(`*** handle_create_ae_obj__exhibit_tracking() *** exhibit_id=${exhibit_id}, event_badge_id=${event_badge_id}`);
let params_json: key_val = {};
// $events_sess.exhibits.status_create__exhibit_tracking = 'loading';
ae_promises.create__event_exhibit_tracking = await api.create_ae_obj_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit_tracking',
fields: {
event_exhibit_id_random: exhibit_id,
event_badge_id_random: event_badge_id,
external_person_id: external_person_id,
},
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (exhibit_tracking_obj_create_result) {
// console.log('Exhibit tracking create:', exhibit_tracking_obj_create_result);
if (exhibit_tracking_obj_create_result) {
// $slct.exhibit_tracking_obj = exhibit_tracking_obj_create_result;
handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: [exhibit_tracking_obj_create_result]});
return exhibit_tracking_obj_create_result;
} else {
// $slct.exhibit_tracking_obj = [];
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// console.log('Exhibit tracking create:', exhibit_tracking_obj_create_result);
// return exhibit_tracking_obj_create_result;
});
if (log_lvl) {
console.log('ae_promises.create__event_exhibit_tracking:', ae_promises.create__event_exhibit_tracking);
}
return ae_promises.create__event_exhibit_tracking;
}
// Updated 2024-03-28
export async function handle_update_ae_obj__exhibit_tracking(
{
api_cfg,
exhibit_tracking_id,
data,
params={},
log_lvl=0
}: {
api_cfg: any,
exhibit_tracking_id: string,
data: any,
params: key_val,
log_lvl: number
}
) {
console.log(`*** handle_update_ae_obj__exhibit_tracking() *** exhibit_tracking_id=${exhibit_tracking_id}`);
ae_promises.update__event_exhibit_tracking = await api.update_ae_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit_tracking',
obj_id: exhibit_tracking_id,
fields: data,
key: api_cfg.api_crud_super_key,
params: params,
return_obj: true,
log_lvl: log_lvl
})
.then(function (exhibit_tracking_obj_update_result) {
if (exhibit_tracking_obj_update_result) {
handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: [exhibit_tracking_obj_update_result]});
return exhibit_tracking_obj_update_result;
} else {
return null;
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
});
if (log_lvl) {
console.log('ae_promises.update__event_exhibit_tracking:', ae_promises.update__event_exhibit_tracking);
}
return ae_promises.update__event_exhibit_tracking;
}
export async function handle_download_export__event_exhibit_tracking(
{
api_cfg,
exhibit_id,
file_type='CSV', // 'CSV' or 'Excel'
return_file=true,
filename='no_filename.csv',
auto_download=false,
params={},
log_lvl=0
}: {
api_cfg: any,
exhibit_id: string,
file_type?: string,
return_file?: boolean,
filename?: string,
auto_download?: boolean,
params?: key_val,
log_lvl?: number
}
) {
console.log('*** ae_events_functions.js: get_event_exhibit_tracking_export() ***');
const endpoint = `/event/exhibit/${exhibit_id}/tracking/export`;
if (file_type == 'CSV' || file_type == 'Excel') {
params['file_type'] = file_type;
}
params['return_file'] = true;
ae_promises.download__event_exhibit_tracking_export_file = await api.get_object({
api_cfg: api_cfg,
endpoint: endpoint,
params: params,
return_blob: true,
filename: filename,
auto_download: auto_download,
log_lvl: log_lvl
});
if (log_lvl) {
console.log('ae_promises.download__event_exhibit_tracking_export_file:', ae_promises.download__event_exhibit_tracking_export_file);
}
return ae_promises.download__event_exhibit_tracking_export_file;
}
// This function will loop through the event_exhibit_obj_li and save each one to the DB.
export function handle_db_save_ae_obj_li__exhibitor(
{
obj_type,
obj_li=[],
log_lvl=0
}: {
obj_type: string,
obj_li: any[],
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** handle_db_save_ae_obj_li__exhibitor() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.exhibits.put({
id_random: obj.event_exhibit_id_random,
event_exhibit_id_random: obj.event_exhibit_id_random,
event_id_random: obj.event_id_random,
code: obj.code,
name: obj.name,
description: obj.description,
staff_passcode: obj.staff_passcode,
data_json: obj.data_json,
leads_api_access: obj.leads_api_access,
leads_custom_questions_json: obj.leads_custom_questions_json,
leads_device_sm_qty: obj.leads_device_sm_qty,
leads_device_lg_qty: obj.leads_device_lg_qty,
license_max: obj.license_max,
license_li_json: obj.license_li_json,
cfg_json: obj.cfg_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,
});
// console.log(`Put obj with ID: ${obj.event_exhibit_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_exhibit_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.exhibits.put(obj);
// console.log(`Put obj with ID: ${obj.event_exhibit_id_random}`);
});
return true;
}
}
// This function will loop through the event_exhibit_tracking_obj_li and save each one to the DB.
export function handle_db_save_ae_obj_li__exhibitor_tracking(
{
obj_type,
obj_li,
log_lvl=0
}: {
obj_type: string,
obj_li: any,
log_lvl?: number
}
) {
if (log_lvl) {
console.log(`*** handle_db_save_ae_obj_li__exhibitor_tracking() ***`);
}
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj: any) {
if (log_lvl) {
console.log(`ae_obj ${obj_type}:`, obj);
}
try {
const id_random = await db_events.exhibit_tracking.put({
id_random: obj.event_exhibit_tracking_id_random,
event_exhibit_tracking_id_random: obj.event_exhibit_tracking_id_random,
event_exhibit_id_random: obj.event_exhibit_id_random,
event_badge_id_random: obj.event_badge_id_random,
event_person_id_random: obj.event_person_id_random,
external_person_id: obj.external_person_id,
exhibitor_notes: obj.exhibitor_notes,
responses_json: obj.responses_json,
data_json: obj.data_json,
event_exhibit_name: obj.event_exhibit_name,
event_badge_title_names: obj.event_badge_title_names,
event_badge_given_name: obj.event_badge_given_name,
event_badge_family_name: obj.event_badge_family_name,
event_badge_designations: obj.event_badge_designations,
event_badge_full_name: obj.event_badge_full_name,
event_badge_full_name_override: obj.event_badge_full_name_override,
event_badge_professional_title: obj.event_badge_professional_title,
event_badge_professional_title_override: obj.event_badge_professional_title_override,
event_badge_affiliations: obj.event_badge_affiliations,
event_badge_affiliations_override: obj.event_badge_affiliations_override,
event_badge_email: obj.event_badge_email,
event_badge_email_override: obj.event_badge_email_override,
event_badge_location: obj.event_badge_location,
event_badge_location_override: obj.event_badge_location_override,
event_badge_country: obj.event_badge_country,
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,
});
// console.log(`Put obj with ID: ${obj.event_exhibit_tracking_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_exhibit_tracking_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.exhibit_tracking.put(obj);
// console.log(`Put obj with ID: ${obj.event_exhibit_tracking_id_random}`);
});
return true;
}
}