From 7c70d93a687719b20d00d59d5d3b01af2e12a09f Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 23 May 2025 16:17:42 -0400 Subject: [PATCH] Saving work after rounds of updates to the event object type functions. --- src/lib/ae_events/ae_events__event_device.ts | 314 ++++++++++++++++-- src/lib/ae_events/ae_events__event_file.ts | 170 +++++++++- .../ae_events/ae_events__event_location.ts | 298 ++++++++++++++--- .../ae_events__event_presentation.ts | 22 +- .../ae_events/ae_events__event_presenter.ts | 197 +++++++++++ src/lib/ae_events/ae_events__event_session.ts | 9 - 6 files changed, 918 insertions(+), 92 deletions(-) diff --git a/src/lib/ae_events/ae_events__event_device.ts b/src/lib/ae_events/ae_events__event_device.ts index 1a1774c0..373a4ea6 100644 --- a/src/lib/ae_events/ae_events__event_device.ts +++ b/src/lib/ae_events/ae_events__event_device.ts @@ -1,6 +1,7 @@ import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; +import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie"; import { db_events } from "$lib/ae_events/db_events"; import { load_ae_obj_id__event_location } from './ae_events__event_location'; @@ -8,7 +9,7 @@ import { load_ae_obj_id__event_location } from './ae_events__event_location'; let ae_promises: key_val = {}; -// Updated 2024-10-16 +// Updated 2025-05-23 export async function load_ae_obj_id__event_device( { api_cfg, @@ -39,14 +40,33 @@ export async function load_ae_obj_id__event_device( params: params, log_lvl: log_lvl }) - .then(function (event_device_obj_get_result) { + .then(async 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] + let processed_obj_li = await process_ae_obj__event_device_props({ + obj_li: [event_device_obj_get_result], + log_lvl }); + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + await db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'devices', + obj_li: processed_obj_li, + properties_to_save, + log_lvl, + }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // // 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 { @@ -84,7 +104,7 @@ export async function load_ae_obj_id__event_device( } -// Updated 2024-10-16 +// Updated 2025-05-23 export async function load_ae_obj_li__event_device( { api_cfg, @@ -106,7 +126,9 @@ export async function load_ae_obj_li__event_device( log_lvl?: number } ) { - console.log(`*** load_ae_obj_li__event_device() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_id}`); + if (log_lvl) { + 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 @@ -134,13 +156,36 @@ export async function load_ae_obj_li__event_device( params: params, log_lvl: log_lvl }) - .then(function (event_device_obj_li_get_result) { + .then(async 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 + // Process the results first + let processed_obj_li = await process_ae_obj__event_device_props({ + obj_li: event_device_obj_li_get_result, + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + await db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'devices', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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 { @@ -186,7 +231,7 @@ export async function load_ae_obj_li__event_device( } -// Updated 2024-10-16 +// Updated 2025-05-23 export async function create_ae_obj__event_device( { api_cfg, @@ -220,14 +265,37 @@ export async function create_ae_obj__event_device( return_obj: true, log_lvl: log_lvl }) - .then(function (event_device_obj_create_result) { + .then(async function (event_device_obj_create_result) { if (event_device_obj_create_result) { if (try_cache) { - db_save_ae_obj_li__event_device( - { - obj_type: 'event_device', - obj_li: [event_device_obj_create_result] + // Process the results first + let processed_obj_li = await process_ae_obj__event_device_props({ + obj_li: [event_device_obj_create_result], + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'devices', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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 { @@ -247,7 +315,7 @@ export async function create_ae_obj__event_device( } -// Updated 2024-11-08 +// Updated 2025-05-23 export async function delete_ae_obj_id__event_device( { api_cfg, @@ -278,14 +346,6 @@ export async function delete_ae_obj_id__event_device( method: method, log_lvl: log_lvl }) - .then(function (event_device_obj_delete_result) { - // if (event_device_obj_delete_result) { - // // db_save_ae_obj_li__event_device({obj_type: 'event_device', obj_li: [event_device_obj_delete_result]}); - // return event_device_obj_delete_result; - // } else { - // return null; - // } - }) .catch(function (error) { console.log('No results returned or failed.', error); }) @@ -337,12 +397,35 @@ export async function update_ae_obj__event_device( return_obj: true, log_lvl: log_lvl }) - .then(function (event_device_obj_update_result) { + .then(async 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] + // Process the results first + let processed_obj_li = await process_ae_obj__event_device_props({ + obj_li: [event_device_obj_update_result], + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'devices', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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 { @@ -363,7 +446,7 @@ export async function update_ae_obj__event_device( // Not yet used or tested fully! -// Updated 2024-10-16 +// Updated 2025-05-23 export async function search__event_device( { api_cfg, @@ -389,7 +472,9 @@ export async function search__event_device( log_lvl?: number } ) { - console.log(`*** search__event_device() *** event_id=${event_id}`); + if (log_lvl) { + 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 @@ -447,13 +532,14 @@ export async function search__event_device( 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({ + // ae_promises.load__event_device_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + 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: '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, + use_alt_tbl: true, // NOTE: We want to use the alt table for device searching + // use_alt_mdl: false, enabled: enabled, hidden: hidden, order_by_li: order_by_li, @@ -584,3 +670,161 @@ export function db_save_ae_obj_li__event_device( return true; } } + + +// Updated 2025-05-23 +export const properties_to_save = [ + 'id', + 'event_device_id', + 'event_device_id_random', + + 'event_id', + 'event_id_random', + 'event_location_id', + 'event_location_id_random', + + 'code', + 'name', + 'description', + + 'passcode', + + 'local_file_cache_path', + 'host_file_temp_path', + 'recording_path', + + 'record_audio', + 'record_video', + + 'trigger_open_file_id', + 'trigger_open_session_id', + 'trigger_recording_start', + 'trigger_recording_stop', + 'trigger_reset', + 'trigger_show_admin', + 'trigger_show_hidden', + + 'alert', + 'alert_msg', + 'alert_on', + 'status', + 'status_msg', + 'status_on', + 'record_status', + 'record_status_msg', + 'record_status_on', + 'heartbeat', + + 'info_hostname', + 'info_ip_list', + + 'meta_json', + 'other_json', + + 'enable', + 'hide', + 'priority', + 'sort', + 'group', + 'notes', + 'created_on', + 'updated_on', + + // From SQL view + 'event_name', + 'event_location_code', + 'event_location_name', +]; + + +// Updated 2025-05-23 +export async function process_ae_obj__event_device_props({ + obj_li, + log_lvl = 0, +}: { + obj_li: any[]; + log_lvl?: number; +}) { + if (log_lvl) { + console.log(`*** process_ae_obj__event_location_props() ***`, obj_li); + } + + if (!obj_li || obj_li.length === 0) { + if (log_lvl) console.log('No objects to process.'); + return []; + } + + const processed_obj_li = []; + + for (const obj of obj_li) { + if (log_lvl) console.log(`Processing ae_obj event_device:`, obj); + + let processed_obj = { + id: obj.id, + event_device_id: obj.event_device_id, + event_device_id_random: obj.event_device_id_random, + + event_id: obj.event_id, + event_id_random: obj.event_id_random, + event_location_id: obj.event_location_id, + 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, + }; + + processed_obj_li.push(processed_obj); + } + + return processed_obj_li; +} diff --git a/src/lib/ae_events/ae_events__event_file.ts b/src/lib/ae_events/ae_events__event_file.ts index dfac493a..147f81d3 100644 --- a/src/lib/ae_events/ae_events__event_file.ts +++ b/src/lib/ae_events/ae_events__event_file.ts @@ -1,6 +1,7 @@ import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; +import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie"; import { db_events } from "$lib/ae_events/db_events"; let ae_promises: key_val = {}; @@ -20,7 +21,9 @@ export async function load_ae_obj_id__event_file( log_lvl?: number } ) { - console.log(`*** load_ae_obj_id__event_file() *** event_file_id=${event_file_id}`); + if (log_lvl) { + console.log(`*** load_ae_obj_id__event_file() *** event_file_id=${event_file_id}`); + } let params = {}; @@ -702,3 +705,168 @@ export function db_update_ae_obj_id__event_file( } return false; } + + +// Updated 2025-05-23 +export const properties_to_save = [ + 'id', + 'id_random', + 'event_file_id', + 'event_file_id_random', + + 'hosted_file_id', + 'hosted_file_id_random', + 'hash_sha256', + + 'for_type', + 'for_id', + 'for_id_random', + + 'event_id', + 'event_id_random', + 'event_session_id', + 'event_session_id_random', + 'event_presentation_id', + 'event_presentation_id_random', + 'event_presenter_id', + 'event_presenter_id_random', + 'event_location_id', + 'event_location_id_random', + + 'filename', + 'extension', + + 'open_in_os', + + 'lu_file_purpose_id', + 'lu_event_file_purpose_name', + 'file_purpose', + + 'enable', + 'hide', + 'priority', + 'sort', + 'group', + 'notes', + 'created_on', + 'updated_on', + + 'filename_no_ext', + 'filename_w_ext', + 'hosted_file_content_type', + 'file_size', + 'hosted_file_size', + + 'event_location_code', + 'event_location_name', + 'event_session_code', + 'event_session_type_code', + 'event_session_name', + 'event_session_start_datetime', + 'event_session_end_datetime', + 'event_presentation_code', + 'event_presentation_type_code', + 'event_presentation_name', + 'event_presentation_start_datetime', + 'event_presentation_end_datetime', + 'event_presenter_given_name', + 'event_presenter_family_name', + 'event_presenter_full_name', + 'event_presenter_email', +]; + + +// Updated 2025-05-23 +export async function process_ae_obj__event_file_props({ + obj_li, + log_lvl = 0, + }: { + obj_li: any[]; + log_lvl?: number; + }) { + if (log_lvl) { + console.log(`*** process_ae_obj__event_file_props() ***`, obj_li); + } + + if (!obj_li || obj_li.length === 0) { + if (log_lvl) console.log('No objects to process.'); + return []; + } + + const processed_obj_li = []; + + for (const obj of obj_li) { + if (log_lvl) console.log(`Processing ae_obj event_file:`, obj); + + let processed_obj = { + 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, + + for_type: obj.for_type, + for_id: obj.for_id, + 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, + }; + + processed_obj_li.push(processed_obj); + } + + return processed_obj_li; +} \ No newline at end of file diff --git a/src/lib/ae_events/ae_events__event_location.ts b/src/lib/ae_events/ae_events__event_location.ts index 2691d845..80b5ca74 100644 --- a/src/lib/ae_events/ae_events__event_location.ts +++ b/src/lib/ae_events/ae_events__event_location.ts @@ -1,6 +1,7 @@ import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; +import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie"; import { db_events } from "$lib/ae_events/db_events"; import { load_ae_obj_li__event_device } from "$lib/ae_events/ae_events__event_device"; @@ -10,7 +11,7 @@ import { load_ae_obj_li__event_session } from './ae_events__event_session'; let ae_promises: key_val = {}; -// Updated 2024-06-10 +// Updated 2025-05-23 export async function load_ae_obj_id__event_location( { api_cfg, @@ -43,14 +44,33 @@ export async function load_ae_obj_id__event_location( params: params, log_lvl: log_lvl }) - .then(function (event_location_obj_get_result) { + .then(async 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] + let processed_obj_li = await process_ae_obj__event_location_props({ + obj_li: [event_location_obj_get_result], + log_lvl }); + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + await db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'locations', + obj_li: processed_obj_li, + properties_to_save, + log_lvl, + }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // // 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 { @@ -66,6 +86,11 @@ export async function load_ae_obj_id__event_location( console.log('ae_promises.load__event_location_obj:', ae_promises.load__event_location_obj); } + if (ae_promises?.load__event_location_obj === null) { + console.log('No results returned.'); + return null; + } + if (inc_file_li) { // Load the files for the location if (log_lvl) { @@ -116,7 +141,7 @@ export async function load_ae_obj_id__event_location( } -// Updated 2024-09-24 +// Updated 2025-05-23 export async function load_ae_obj_li__event_location( { api_cfg, @@ -142,7 +167,9 @@ export async function load_ae_obj_li__event_location( log_lvl?: number } ) { - console.log(`*** load_ae_obj_li__event_location() *** for_obj_type=${for_obj_type} for_obj_id=${for_obj_id}`); + if (log_lvl) { + 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 @@ -153,13 +180,14 @@ export async function load_ae_obj_li__event_location( // console.log('params_json:', params_json); - ae_promises.load__event_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + // ae_promises.load__event_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + ae_promises.load__event_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({ 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 + 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, @@ -169,13 +197,36 @@ export async function load_ae_obj_li__event_location( params: params, log_lvl: log_lvl }) - .then(function (event_location_obj_li_get_result) { + .then(async 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 + // Process the results first + let processed_obj_li = await process_ae_obj__event_location_props({ + obj_li: event_location_obj_li_get_result, + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + await db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'locations', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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 { @@ -284,23 +335,27 @@ export async function load_ae_obj_li__event_location( } -// Updated 2024-06-25 +// Updated 2025-05-23 export async function create_ae_obj__event_location( { api_cfg, event_id, data_kv, - params={}, - log_lvl=0 + 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 } ) { - console.log(`*** create_ae_obj__event_location() *** event_id=${event_id}`); + if (log_lvl) { + 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, @@ -314,13 +369,38 @@ export async function create_ae_obj__event_location( return_obj: true, log_lvl: log_lvl }) - .then(function (event_location_obj_create_result) { + .then(async 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] + if (try_cache) { + // Process the results first + let processed_obj_li = await process_ae_obj__event_location_props({ + obj_li: [event_location_obj_create_result], + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'locations', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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; @@ -339,7 +419,7 @@ export async function create_ae_obj__event_location( } -// Updated 2024-11-08 +// Updated 2025-05-23 export async function delete_ae_obj_id__event_location( { api_cfg, @@ -370,14 +450,6 @@ export async function delete_ae_obj_id__event_location( method: method, log_lvl: log_lvl }) - .then(function (event_location_obj_delete_result) { - // if (event_location_obj_delete_result) { - // // db_save_ae_obj_li__event_location({obj_type: 'event_location', obj_li: [event_location_obj_delete_result]}); - // return event_location_obj_delete_result; - // } else { - // return null; - // } - }) .catch(function (error) { console.log('No results returned or failed.', error); }) @@ -398,7 +470,7 @@ export async function delete_ae_obj_id__event_location( } -// Updated 2024-09-25 +// Updated 2025-05-23 export async function update_ae_obj__event_location( { api_cfg, @@ -429,12 +501,35 @@ export async function update_ae_obj__event_location( return_obj: true, log_lvl: log_lvl }) - .then(function (event_location_obj_update_result) { + .then(async 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] + // Process the results first + let processed_obj_li = await process_ae_obj__event_location_props({ + obj_li: [event_location_obj_update_result], + log_lvl: log_lvl, + }); + if (log_lvl) { + console.log('Processed object list:', processed_obj_li); + } + // Save the updated results list to the database + if (log_lvl) { + console.log('Saving to DB...'); + } + db_save_ae_obj_li__ae_obj({ + db_instance: db_events, + table_name: 'locations', + obj_li: processed_obj_li, + properties_to_save: properties_to_save, + log_lvl: log_lvl, }); + if (log_lvl) { + console.log('DB save completed.'); + } + + // 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 { @@ -454,6 +549,7 @@ export async function update_ae_obj__event_location( } +// Updated 2025-05-23 export async function search__event_location( { api_cfg, @@ -479,7 +575,9 @@ export async function search__event_location( log_lvl?: number } ) { - console.log(`*** search__event_location() *** event_id=${event_id}`); + if (log_lvl) { + 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 @@ -537,13 +635,14 @@ export async function search__event_location( 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({ + // ae_promises.load__event_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + ae_promises.load__event_location_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({ 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, + use_alt_tbl: true, // NOTE: We want to use the alt table for location searching + // use_alt_mdl: false, enabled: enabled, hidden: hidden, order_by_li: order_by_li, @@ -660,3 +759,120 @@ export function db_save_ae_obj_li__event_location( return true; } } + + +// Updated 2025-05-23 +export const properties_to_save = [ + 'id', + 'event_location_id', + 'event_location_id_random', + + 'external_id', + 'code', + + 'type_code', + + 'event_id', + 'event_id_random', + + 'name', + 'description', + + 'passcode', + + 'hide_event_launcher', + + 'alert', + 'alert_msg', + + 'data_json', + + 'enable', + 'hide', + 'priority', + 'sort', + 'group', + 'notes', + 'created_on', + 'updated_on', + + // From SQL view + 'file_count', + 'file_count_all', + 'internal_use_count', + 'event_file_id_li_json', + + 'event_name', +]; + + +// Updated 2025-05-23 +export async function process_ae_obj__event_location_props({ + obj_li, + log_lvl = 0, + }: { + obj_li: any[]; + log_lvl?: number; + }) { + if (log_lvl) { + console.log(`*** process_ae_obj__event_location_props() ***`, obj_li); + } + + if (!obj_li || obj_li.length === 0) { + if (log_lvl) console.log('No objects to process.'); + return []; + } + + const processed_obj_li = []; + + for (const obj of obj_li) { + if (log_lvl) console.log(`Processing ae_obj event_location:`, obj); + + let processed_obj = { + 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, + + event_name: obj.event_name, + }; + + processed_obj_li.push(processed_obj); + } + + return processed_obj_li; +} diff --git a/src/lib/ae_events/ae_events__event_presentation.ts b/src/lib/ae_events/ae_events__event_presentation.ts index dd10b87c..5ecf7827 100644 --- a/src/lib/ae_events/ae_events__event_presentation.ts +++ b/src/lib/ae_events/ae_events__event_presentation.ts @@ -3,6 +3,7 @@ import { api } from '$lib/api'; import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie"; import { db_events } from "$lib/ae_events/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"; @@ -85,6 +86,15 @@ export async function load_ae_obj_id__event_presentation( console.log('No results returned or failed.', error); }); + if (log_lvl) { + console.log('ae_promises.load__event_presentation_obj:', ae_promises.load__event_presentation_obj); + } + + if (ae_promises?.load__event_presentation_obj === null) { + console.log('No results returned.'); + return null; + } + if (inc_file_li) { // Load the files for the presentation if (log_lvl) { @@ -666,12 +676,12 @@ export const properties_to_save = [ // Updated 2025-05-22 export async function process_ae_obj__event_presentation_props({ - obj_li, - log_lvl = 0, -}: { - obj_li: any[]; - log_lvl?: number; -}) { + obj_li, + log_lvl = 0, + }: { + obj_li: any[]; + log_lvl?: number; + }) { if (log_lvl) { console.log(`*** process_ae_obj__event_presentation_props() ***`, obj_li); } diff --git a/src/lib/ae_events/ae_events__event_presenter.ts b/src/lib/ae_events/ae_events__event_presenter.ts index 36b79e8e..3a0604af 100644 --- a/src/lib/ae_events/ae_events__event_presenter.ts +++ b/src/lib/ae_events/ae_events__event_presenter.ts @@ -1,7 +1,9 @@ import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; +import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie"; import { db_events } from "$lib/ae_events/db_events"; + import { load_ae_obj_li__event_file } from "$lib/ae_events/ae_events__event_file"; let ae_promises: key_val = {}; @@ -696,3 +698,198 @@ export async function email_sign_in__event_presenter ( body_html: body_html, }); } + + +// Updated 2025-05-23 +export const properties_to_save = [ + 'id', + 'event_presenter_id', + 'event_presenter_id_random', + + 'external_id', + 'code', + + // 'for_type', + // 'for_id', + // 'for_id_random', + + 'event_id', + 'event_id_random', + 'event_session_id', + 'event_session_id_random', + 'event_presentation_id', + 'event_presentation_id_random', + 'event_person_id', + 'event_person_id_random', + 'person_id', + 'person_id_random', + 'person_profile_id', + 'person_profile_id_random', + + 'pronouns', + 'informal_name', + 'title_names', + 'given_name', + 'middle_name', + 'family_name', + 'designations', + + 'professional_title', + + 'full_name', + + 'affiliations', + + 'email', + + 'biography', + + 'agree', + 'comments', + + 'passcode', + + 'hide_event_launcher', + + 'data_json', + + 'enable', + 'hide', + 'priority', + 'sort', + 'group', + 'notes', + 'created_on', + 'updated_on', + + // From SQL view + 'file_count', + + 'event_session_code', + 'event_session_name', + 'event_session_start_datetime', + 'event_presentation_code', + 'event_presentation_name', + 'event_presentation_start_datetime', + + 'person_external_id', + 'person_external_sys_id', + 'person_given_name', + 'person_family_name', + 'person_full_name', + 'person_professional_title', + 'person_affiliations', + 'person_primary_email', + 'person_passcode', +]; + + +// Updated 2025-05-23 +export async function process_ae_obj__event_presenter_props({ + obj_li, + log_lvl = 0, + }: { + obj_li: any[]; + log_lvl?: number; + }) { + if (log_lvl) { + console.log(`*** process_ae_obj__event_presenter_props() ***`, obj_li); + } + + if (!obj_li || obj_li.length === 0) { + if (log_lvl) console.log('No objects to process.'); + return []; + } + + const processed_obj_li = []; + + for (const obj of obj_li) { + if (log_lvl) console.log(`Processing ae_obj event_presenter:`, obj); + + let processed_obj = { + id: 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: obj.for_id, + // 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, + + 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, + }; + + processed_obj_li.push(processed_obj); + } + + return processed_obj_li; +} \ No newline at end of file diff --git a/src/lib/ae_events/ae_events__event_session.ts b/src/lib/ae_events/ae_events__event_session.ts index 7e46c528..e48f38cf 100644 --- a/src/lib/ae_events/ae_events__event_session.ts +++ b/src/lib/ae_events/ae_events__event_session.ts @@ -142,15 +142,6 @@ export async function load_ae_obj_id__event_session( 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; });