Files
payload/src/collections/requestHandlers/create.ts
2020-12-26 16:25:58 -05:00

29 lines
860 B
TypeScript

import httpStatus from 'http-status';
import { Response, NextFunction } from 'express';
import { PayloadRequest } from '../../express/types';
import formatSuccessResponse from '../../express/responses/formatSuccess';
import { Document } from '../../types';
export type CreateResult = {
message: string
doc: Document
};
export default async function create(req: PayloadRequest, res: Response, next: NextFunction): Promise<Response<CreateResult> | void> {
try {
const doc = await this.operations.collections.create({
req,
collection: req.collection,
data: req.body,
depth: req.query.depth,
});
return res.status(httpStatus.CREATED).json({
...formatSuccessResponse(`${req.collection.config.labels.singular} successfully created.`, 'message'),
doc,
});
} catch (error) {
return next(error);
}
}