@dossierhq/sqlite-core
Version:
A library used by concrete SQLite adapters for Dossier.
26 lines • 1.34 kB
JavaScript
/// <reference types="./getEntities.d.ts" />
/* eslint-disable @typescript-eslint/no-unused-expressions */
import { ok } from '@dossierhq/core';
import { createSqliteSqlQuery, } from '@dossierhq/database-adapter';
import { queryMany } from '../QueryFunctions.js';
import { assertIsDefined } from '../utils/AssertUtils.js';
import { resolveAdminEntityInfo, resolveEntityFields } from '../utils/CodecUtils.js';
export async function adminEntityGetMultiple(database, context, references) {
const { addValueList, query, sql } = createSqliteSqlQuery();
const uuids = addValueList(references.map((it) => it.id));
sql `SELECT e.uuid, e.type, e.name, e.auth_key, e.resolved_auth_key, e.created_at, e.updated_at, e.status, e.invalid, ev.version, ev.schema_version, ev.encode_version, ev.fields`;
sql `FROM entities e, entity_versions ev WHERE e.uuid IN ${uuids} AND e.latest_entity_versions_id = ev.id`;
const result = await queryMany(database, context, query);
if (result.isError())
return result;
return ok(result.value.map((row) => {
assertIsDefined(row.uuid);
return {
...resolveAdminEntityInfo(row),
...resolveEntityFields(row),
id: row.uuid,
resolvedAuthKey: row.resolved_auth_key,
};
}));
}
//# sourceMappingURL=getEntities.js.map