@furystack/rest-service
Version:
Repository implementation for FuryStack
25 lines • 1.09 kB
JavaScript
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