stackpress
Version:
Incept is a content management framework.
23 lines (22 loc) • 736 B
JavaScript
import Exception from '../../Exception.js';
import { toErrorResponse } from '../helpers.js';
import search from './search.js';
export default async function detail(model, engine, ids, columns = ['*'], seed) {
const filter = Object.fromEntries(model.ids.map(column => [
column.name,
ids[column.name]
]));
if (model.active) {
filter[model.active.name] = -1;
}
const response = await search(model, engine, { columns, filter, take: 1 }, seed);
if (response.code !== 200) {
return response;
}
else if (!response.results?.[0]) {
return toErrorResponse(Exception.for('Not Found').withCode(404));
}
response.results = response.results[0];
return response;
}
;