Files
OSIT-AE-App-Svelte/src/lib/ae_api/api_get__crud_obj_id.ts
2026-03-24 13:27:40 -04:00

95 lines
2.4 KiB
TypeScript

import type { key_val } from '$lib/stores/ae_stores';
import { get_object } from './api_get_object';
/**
* Fetches a single Aether object by its ID using the CRUD endpoint.
* Refactored 2026-01-08 to properly handle unauthenticated lookups (Bootstrap Paradox)
* and ensure clean header passing to get_object without mutating the global config.
*/
export async function get_ae_obj_id_crud({
api_cfg,
no_account_id = false,
obj_type,
obj_id,
use_alt_table = false,
use_alt_base = false,
inc = {},
enabled = 'enabled',
hidden = 'not_hidden',
limit = 999999,
offset = 0,
data = {},
headers = {},
params = {},
timeout = 60000,
return_meta = false,
log_lvl = 0
}: {
api_cfg: any;
no_account_id?: boolean;
obj_type: string;
obj_id: string;
use_alt_table?: boolean;
use_alt_base?: boolean;
inc?: any;
enabled?: 'enabled' | 'all' | 'not_enabled' | undefined;
hidden?: 'hidden' | 'all' | 'not_hidden' | undefined;
limit?: number;
offset?: number;
data?: any;
headers?: any;
params?: key_val;
timeout?: number;
return_meta?: boolean;
log_lvl?: number;
}) {
if (log_lvl) {
console.log(
`*** get_ae_obj_id_crud() *** Type: ${obj_type} ID: ${obj_id}`
);
}
// V3 Standard: Unified endpoint for all objects
const endpoint = `/v3/crud/${obj_type}/${obj_id}`;
if (log_lvl > 1) {
console.log('Endpoint:', endpoint);
}
const final_params = {
...params,
use_alt_table: use_alt_table,
use_alt_base: use_alt_base
};
const final_headers = { ...headers };
if (no_account_id) {
// This instructs get_object to skip account-id requirements
final_headers['x-no-account-id'] = 'Nothing to See Here';
final_headers['x-account-id'] = null; // Explicitly null to trigger removal in get_object
}
const result = await get_object({
api_cfg: api_cfg,
endpoint: endpoint,
headers: final_headers,
params: final_params,
timeout: timeout,
log_lvl: log_lvl,
return_meta: return_meta
}).catch(function (error: any) {
console.error(
`API GET CRUD object ID request failed for ${obj_type}/${obj_id}`,
error
);
return false;
});
if (log_lvl > 1) {
console.log('GET Object result =', result);
}
return result;
}