UNPKG

@furystack/rest-service

Version:

Repository implementation for FuryStack

25 lines 1.09 kB
import { RequestError } from '@furystack/rest'; import '@furystack/repository'; import { JsonResult } from '../request-action-implementation.js'; import { getRepository } from '@furystack/repository'; import { readPostBody } from '../read-post-body.js'; /** * Creates a POST endpoint for updating entities * @param options The options for endpoint creation * @param options.model The Model class * @param options.primaryKey The field name used as primary key * @returns a boolean that indicates the success */ export const createPostEndpoint = (options) => { const endpoint = async ({ injector, request }) => { const dataSet = getRepository(injector).getDataSetFor(options.model, options.primaryKey); const entityToCreate = await readPostBody(request); const { created } = await dataSet.add(injector, entityToCreate); if (!created || !created.length) { throw new RequestError('Entity not found', 404); } return JsonResult(created[0], 201); }; return endpoint; }; //# sourceMappingURL=create-post-endpoint.js.map