383 lines
14 KiB
TypeScript
383 lines
14 KiB
TypeScript
/** @type {import('./$types').LayoutLoad} */
|
|
|
|
import { get } from 'svelte/store';
|
|
|
|
import { api } from '$lib/api';
|
|
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
|
|
import type { key_val } from '$lib/ae_stores';
|
|
|
|
|
|
// properties: params, route, url
|
|
// functions: fetch, setHeaders, parent, depends, untrack
|
|
export async function load({ params, url }) { // params, route, url
|
|
// console.log(`Svelte root layout.ts data = params:`, params);
|
|
// console.log(`Svelte root layout.ts data = route:`, route);
|
|
// console.log(`Svelte root layout.ts data = url:`, url);
|
|
|
|
let ae_loc_tmp = get(ae_loc);
|
|
// console.log(`ae_loc = `, ae_loc_tmp);
|
|
|
|
let ds_code_li: null|key_val = ae_loc_tmp.ds;
|
|
// console.log(`ae_ ds_code_li = `, ds_code_li);
|
|
let ds_code: null|string = null;
|
|
|
|
|
|
let data_struct = {
|
|
ae_loc: get(ae_loc),
|
|
ae_api: get(ae_api),
|
|
ae_ds: {},
|
|
ae_hub: {}, // was ae_core
|
|
ae_m_sponsorships: {},
|
|
ae_m_events: {},
|
|
ae_m_events_speakers: {},
|
|
|
|
iframe: false,
|
|
|
|
ae_root_layout_ts: true,
|
|
|
|
sections: [
|
|
{ slug: 'new', title: 'New Test' },
|
|
{ slug: 'manage', title: 'Manage Test' },
|
|
{ slug: 'test', title: 'Test Test' },
|
|
],
|
|
|
|
params: params,
|
|
|
|
url: url,
|
|
|
|
};
|
|
|
|
let loading_results = null;
|
|
// let access_code_li_json = null;
|
|
|
|
// First do a site_domain look up to check if it is valid and get the account_id.
|
|
if (url.host) {
|
|
// ae_loc.url_host = data.url.host; // Use this to look up? sub.example.com:123
|
|
// ae_loc.fqdn = url.host; // Use this to look up? sub.example.com:123
|
|
// ae_loc.url_hostname = data.url.hostname; // sub.example.com
|
|
// ae_loc.url_origin = data.url.origin; // Use this to look up? https://sub.example.com:123
|
|
// ae_loc.site_domain = data.url.origin;
|
|
// console.log(`ae_loc = `, ae_loc);
|
|
|
|
loading_results = await handle_load_ae_obj_id__site_domain({fqdn: url.host, try_cache: false})
|
|
|
|
.then(function (site_domain_results) {
|
|
if (site_domain_results) {
|
|
console.log(`ae_ site_domain_results = `, site_domain_results);
|
|
|
|
let ae_api_tmp = get(ae_api);
|
|
|
|
ae_api_tmp['account_id'] = site_domain_results.account_id_random;
|
|
ae_api_tmp['headers']['x-account-id'] = site_domain_results.account_id_random;
|
|
ae_api_tmp['headers']['x-no-account-id'] = null;
|
|
|
|
ae_api.set(ae_api_tmp);
|
|
// console.log(`ae_api = `, get(ae_api));
|
|
|
|
ae_loc_tmp['account_id'] = site_domain_results.account_id_random;
|
|
ae_loc_tmp['site_id'] = site_domain_results.site_id_random;
|
|
ae_loc_tmp['site_domain_id'] = site_domain_results.site_domain_id_random;
|
|
ae_loc_tmp['site_enable'] = site_domain_results.enable;
|
|
ae_loc_tmp['site_style_href'] = site_domain_results.style_href;
|
|
ae_loc_tmp['site_google_tracking_id'] = site_domain_results.google_tracking_id;
|
|
ae_loc_tmp['site_cfg_json'] = site_domain_results.cfg_json;
|
|
|
|
// Get updated the data just in case.
|
|
// ae_loc_tmp = get(ae_loc);
|
|
// ae_loc_tmp.account_id = site_domain_results.account_id_random;
|
|
// ae_loc_tmp.core = ae_core;
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
|
|
return true;
|
|
})
|
|
|
|
.then(async function (results) {
|
|
|
|
ds_code = 'hub__page__access_code_li_json';
|
|
await handle_get_data_store_obj_w_code({code: ds_code, data_type: 'json'})
|
|
.then(function (access_code_li_json_results) {
|
|
if (access_code_li_json_results) {
|
|
// console.log(`ae_ access_code_li_json_results = `, access_code_li_json_results);
|
|
|
|
// ae_loc_tmp = get(ae_loc);
|
|
ae_loc_tmp = {
|
|
...ae_loc_tmp,
|
|
'access_code_li': access_code_li_json_results,
|
|
}
|
|
|
|
// ae_loc_tmp = get(ae_loc);
|
|
// let code = 'hub__page__access_code_li_json';
|
|
|
|
ds_code_li[ds_code] = access_code_li_json_results;
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
}
|
|
);
|
|
|
|
return true;
|
|
})
|
|
|
|
.then(async function (results) {
|
|
// We are intentionally loading these in series, not parallel to limit the number of simultaneous requests.
|
|
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
// Loading the header and footer in series, not parallel.
|
|
ds_code = 'hub__site__appshell_header';
|
|
await handle_get_data_store_obj_w_code({code: ds_code})
|
|
.then(function (ds_hub_site_header_results) {
|
|
|
|
if (ds_hub_site_header_results) {
|
|
// console.log(`ae_ ds_hub_site_header_results = `, ds_hub_site_header_results);
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
ds_code_li[ds_code] = ds_hub_site_header_results;
|
|
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
|
|
})
|
|
|
|
.then(async function () {
|
|
|
|
ds_code = 'hub__site__appshell_footer';
|
|
await handle_get_data_store_obj_w_code({code: ds_code})
|
|
.then(function (ds_hub_site_footer_results) {
|
|
if (ds_hub_site_footer_results) {
|
|
// console.log(`ae_ hub__site__appshell_footer = `, ds_hub_site_footer_results);
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
ds_code_li[ds_code] = ds_hub_site_footer_results;
|
|
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
.then(async function () {
|
|
|
|
ds_code = 'hub__site__root_page_content';
|
|
await handle_get_data_store_obj_w_code({code: ds_code})
|
|
.then(function (ds_code_results) {
|
|
if (ds_code_results) {
|
|
// console.log(`ae_ hub__site__root_page_content = `, ds_code_results);
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
ds_code_li[ds_code] = ds_code_results;
|
|
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
.then(async function () {
|
|
|
|
// Loading the header and footer in series, not parallel.
|
|
ds_code = 'hub__page__appshell_header_lead';
|
|
await handle_get_data_store_obj_w_code({code: ds_code})
|
|
.then(function (ds_code_results) {
|
|
if (ds_code_results) {
|
|
// console.log(`ae_ hub__page__appshell_header_lead = `, ds_code_results);
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
ds_code_li[ds_code] = ds_code_results;
|
|
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
.then(async function () {
|
|
|
|
ds_code = 'hub__page__appshell_header_trail';
|
|
await handle_get_data_store_obj_w_code({code: ds_code})
|
|
.then(function (ds_code_results) {
|
|
if (ds_code_results) {
|
|
// console.log(`hub__page__appshell_header_trail = `, ds_code_results);
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
|
|
ds_code_li[ds_code] = ds_code_results;
|
|
|
|
// ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
})
|
|
.finally(function () {
|
|
|
|
let iframe = url.searchParams.get('iframe');
|
|
console.log(`iframe = `, iframe);
|
|
if (iframe == 'true') {
|
|
data_struct['iframe'] = iframe;
|
|
|
|
ae_loc_tmp.iframe = iframe;
|
|
} else if (iframe == 'false') {
|
|
data_struct['iframe'] = false;
|
|
ae_loc_tmp.iframe = false;
|
|
}
|
|
|
|
// console.log(`ae_ ds_code_li = `, ds_code_li);
|
|
ae_loc_tmp = {
|
|
...ae_loc_tmp,
|
|
'ds': ds_code_li,
|
|
}
|
|
|
|
|
|
// console.log(`ae_loc_tmp = `, ae_loc_tmp);
|
|
data_struct['ae_loc'] = ae_loc_tmp;
|
|
|
|
ae_loc.set(ae_loc_tmp);
|
|
// console.log(`ae_loc = `, get(ae_loc));
|
|
|
|
data_struct['ae_ds'] = ds_code_li;
|
|
|
|
console.log(`ae_root +layout.ts loaded inital DS`);
|
|
|
|
return true;
|
|
});
|
|
|
|
// let ae_loc_tmp = get(ae_loc);
|
|
// let iframe = url.searchParams.get('iframe');
|
|
// console.log(`iframe = `, iframe);
|
|
// if (iframe == 'true') {
|
|
// data_struct['iframe'] = iframe;
|
|
|
|
// ae_loc_tmp.iframe = iframe;
|
|
// } else if (iframe == 'false') {
|
|
// data_struct['iframe'] = false;
|
|
// ae_loc_tmp.iframe = false;
|
|
// }
|
|
// ae_loc.set(ae_loc_tmp);
|
|
|
|
|
|
// if (site_domain_results) {
|
|
// console.log(`site_domain_results = `, site_domain_results);
|
|
|
|
// ae_api['account_id'] = site_domain_results.account_id_random;
|
|
// // ae_api['headers']['account_id'] = site_domain_results.account_id_random;
|
|
// ae_api.set(ae_api);
|
|
// console.log(`ae_api = `, ae_api);
|
|
|
|
// ae_core = {
|
|
// 'account_id': site_domain_results.account_id_random,
|
|
// 'site_id': site_domain_results.site_id_random,
|
|
// 'site_domain_id': site_domain_results.site_domain_id_random,
|
|
// 'enable': site_domain_results.enable,
|
|
// 'style_href': site_domain_results.style_href,
|
|
// 'google_tracking_id': site_domain_results.google_tracking_id,
|
|
// }
|
|
|
|
|
|
// access_code_li_json = handle_get_data_store_obj_w_code({code: 'hub__page__access_code_li_json', data_type: 'json'});
|
|
|
|
// if (access_code_li_json) {
|
|
// console.log(`access_code_li_json = `, access_code_li_json);
|
|
|
|
// ae_core = {
|
|
// ...ae_core,
|
|
// 'access_code_li': access_code_li_json,
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// data_struct['ae_loc'] = loading_results;
|
|
console.log(`ae_root +layout.ts load after DS loading?`);
|
|
return data_struct;
|
|
}
|
|
|
|
// Currently we should never make it to this point! 2024-03-06
|
|
console.log(`ae_root +layout.ts load function end`);
|
|
return data_struct;
|
|
}
|
|
|
|
|
|
async function handle_load_ae_obj_id__site_domain({fqdn, try_cache=false}) {
|
|
console.log(`*** handle_load_ae_obj_id__site_domain() *** fqdn=${fqdn}`);
|
|
|
|
let params = {};
|
|
|
|
// ae_loc.hub.site_domain_id_qry_status = 'loading';
|
|
let ae_site_domain_obj_get_promise = api.get_ae_obj_id_crud({
|
|
api_cfg: get(ae_api),
|
|
no_account_id: true,
|
|
obj_type: 'site_domain',
|
|
obj_id: fqdn, // 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: true, // 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 (site_domain_obj_get_result) {
|
|
if (site_domain_obj_get_result) {
|
|
// slct.site_domain_obj = site_domain_obj_get_result;
|
|
// console.log(`site_domain object:`, get(slct).site_domain_obj);
|
|
|
|
// ae_loc.account_id = $slct.site_domain_obj.account_id_random;
|
|
// ae_loc.site_id = $slct.site_domain_obj.site_id_random;
|
|
// ae_loc.site_domain_id = $slct.site_domain_obj.site_domain_id_random;
|
|
return site_domain_obj_get_result;
|
|
} else {
|
|
console.log('No results returned.');
|
|
return null;
|
|
}
|
|
})
|
|
.catch(function (error) {
|
|
console.log('No results returned or failed.', error);
|
|
});
|
|
|
|
return ae_site_domain_obj_get_promise;
|
|
}
|
|
|
|
// let ds_obj_get_promises: key_val = {};
|
|
async function handle_get_data_store_obj_w_code({ code=null, data_type='text' }) {
|
|
console.log(`*** handle_get_data_store_obj_w_code() *** code=${code}`);
|
|
|
|
if (!code) {
|
|
console.log('No code provided.');
|
|
return;
|
|
}
|
|
|
|
let data_store_obj_get_promise = api.get_data_store_obj_w_code({
|
|
api_cfg: get(ae_api),
|
|
data_store_code: code,
|
|
data_type: data_type,
|
|
log_lvl: 0
|
|
})
|
|
.then(function (get_data_store_result) {
|
|
let return_this = null;
|
|
if (get_data_store_result) {
|
|
|
|
if (data_type == 'text') {
|
|
// console.log(get_data_store_result.text);
|
|
return_this = get_data_store_result.text;
|
|
} else if (data_type == 'json') {
|
|
// console.log(get_data_store_result.json);
|
|
return_this = get_data_store_result.json;
|
|
}
|
|
|
|
} else {
|
|
console.log('No results returned.');
|
|
return_this = null;
|
|
}
|
|
return return_this;
|
|
})
|
|
.catch(function (error) {
|
|
console.log('No results returned or failed.', error);
|
|
});
|
|
|
|
return data_store_obj_get_promise;
|
|
}
|