UNPKG

stackpress

Version:

Incept is a content management framework.

25 lines (24 loc) 988 B
import detail from '../actions/detail'; export default function detailEventFactory(model) { return async function DetailEventAction(req, res, ctx) { if (res.body || (res.code && res.code !== 200)) { return; } const engine = ctx.plugin('database'); if (!engine) return; const ids = Object.fromEntries(model.ids .map(column => [column.name, req.data(column.name)]) .filter(entry => Boolean(entry[1]))); const columns = req.data('columns'); const selectors = Array.isArray(columns) && columns.every(column => typeof column === 'string') ? columns : ['*']; const seed = ctx.config.path('session.seed'); const response = await detail(model, engine, ids, selectors, seed); if (response.code === 200 && !response.results) { response.code = 404; response.status = 'Not Found'; } res.fromStatusResponse(response); }; } ;