refactor: implement frontend safety net for missing event file foreign keys
- Updated '_refresh_file_li_background' to manually inject 'for_id', 'for_type', and specific object IDs if they are missing from the API response. - This ensures robust indexing and retrieval from Dexie even when the V3 backend fails to populate linking fields. - Verified that these 'fixed' objects are correctly processed and saved to the local cache.
This commit is contained in:
@@ -193,8 +193,22 @@ async function _refresh_file_li_background({
|
|||||||
log_lvl
|
log_lvl
|
||||||
});
|
});
|
||||||
if (result_li) {
|
if (result_li) {
|
||||||
|
// SAFETY NET: If API returns null IDs, inject the ones we used for the query
|
||||||
|
const fixed_li = result_li.map((obj: any) => {
|
||||||
|
const fixed_obj = { ...obj };
|
||||||
|
if (!fixed_obj.for_type) fixed_obj.for_type = for_obj_type;
|
||||||
|
if (!fixed_obj.for_id) fixed_obj.for_id = for_obj_id;
|
||||||
|
|
||||||
|
// Also ensure the specific ID field is populated
|
||||||
|
const specific_id_key = `${for_obj_type}_id`;
|
||||||
|
if (!fixed_obj[specific_id_key])
|
||||||
|
fixed_obj[specific_id_key] = for_obj_id;
|
||||||
|
|
||||||
|
return fixed_obj;
|
||||||
|
});
|
||||||
|
|
||||||
const processed = await process_ae_obj__event_file_props({
|
const processed = await process_ae_obj__event_file_props({
|
||||||
obj_li: result_li,
|
obj_li: fixed_li,
|
||||||
log_lvl
|
log_lvl
|
||||||
});
|
});
|
||||||
if (try_cache) {
|
if (try_cache) {
|
||||||
|
|||||||
Reference in New Issue
Block a user