347 lines
11 KiB
TypeScript
347 lines
11 KiB
TypeScript
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 handle_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(`*** handle_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
|
|
handle_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 handle_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(`*** handle_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 ?? '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_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) {
|
|
handle_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 handle_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(`*** handle_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 handle_update_ae_obj__event_file(
|
|
{
|
|
api_cfg,
|
|
event_file_id,
|
|
data_kv,
|
|
params={},
|
|
log_lvl=0
|
|
}: {
|
|
api_cfg: any,
|
|
event_file_id: string,
|
|
data_kv: key_val,
|
|
params?: key_val,
|
|
log_lvl?: number
|
|
}
|
|
) {
|
|
console.log(`*** handle_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) {
|
|
handle_db_save_ae_obj_li__event_file({obj_type: 'event_file', obj_li: [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 function will loop through the event_file_obj_li and save each one to the DB.
|
|
export function handle_db_save_ae_obj_li__event_file(
|
|
{
|
|
obj_type,
|
|
obj_li
|
|
}: {
|
|
obj_type: string,
|
|
obj_li: any
|
|
}
|
|
) {
|
|
console.log(`*** handle_db_save_ae_obj_li__event_file() ***`);
|
|
|
|
if (obj_li && obj_li.length) {
|
|
obj_li.forEach(async function (obj: any) {
|
|
console.log(`ae_obj ${obj_type}:`, obj);
|
|
|
|
try {
|
|
const id_random = await db_events.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_random: obj.event_id_random,
|
|
event_session_id_random: obj.event_session_id_random,
|
|
event_presentation_id_random: obj.event_presentation_id_random,
|
|
event_presenter_id_random: obj.event_presenter_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,
|
|
});
|
|
// 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;
|
|
}
|