From 32957833f3a27ae8bb357bdccb01188da66ebabe Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Mon, 30 Nov 2020 10:55:26 -0500 Subject: [PATCH 1/3] add requestHandler types --- src/collections/requestHandlers/create.ts | 2 +- src/collections/requestHandlers/delete.ts | 12 +++++++++++- src/collections/requestHandlers/find.ts | 9 ++++++++- src/collections/requestHandlers/findByID.ts | 13 ++++++++++++- src/collections/requestHandlers/update.ts | 11 ++++++++++- 5 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/collections/requestHandlers/create.ts b/src/collections/requestHandlers/create.ts index bc742a955e..41c93319fc 100644 --- a/src/collections/requestHandlers/create.ts +++ b/src/collections/requestHandlers/create.ts @@ -9,7 +9,7 @@ export type CreateRequestHandler = (req: PayloadRequest, res: Response, next: Ne export type CreateResult = { message: string doc: Document -} +}; export default async function create(req: PayloadRequest, res: Response, next: NextFunction): Promise | void> { try { diff --git a/src/collections/requestHandlers/delete.ts b/src/collections/requestHandlers/delete.ts index fe9a671e0e..413bd009c3 100644 --- a/src/collections/requestHandlers/delete.ts +++ b/src/collections/requestHandlers/delete.ts @@ -1,7 +1,17 @@ +import { Response, NextFunction } from 'express'; import httpStatus from 'http-status'; +import { PayloadRequest } from '../../express/types/payloadRequest'; import { NotFound } from '../../errors'; +import { Document } from '../../types'; -export default async function deleteHandler(req, res, next) { +export type DeleteRequestHandler = (req: PayloadRequest, res: Response, next: NextFunction) => unknown; + +export type DeleteResult = { + message: string; + doc: Document; +} + +export default async function deleteHandler(req: PayloadRequest, res: Response, next: NextFunction): Promise | void> { try { const doc = await this.operations.collections.delete({ req, diff --git a/src/collections/requestHandlers/find.ts b/src/collections/requestHandlers/find.ts index 8f2cfb1e63..f262d48451 100644 --- a/src/collections/requestHandlers/find.ts +++ b/src/collections/requestHandlers/find.ts @@ -1,6 +1,13 @@ +import { Response, NextFunction } from 'express'; import httpStatus from 'http-status'; +import { FindResponse } from '../../types'; +import { PayloadRequest } from '../../express/types/payloadRequest'; -export default async function find(req, res, next) { +export type FindRequestHandler = (req: PayloadRequest, res: Response, next: NextFunction) => unknown; + +export type FindResult = FindResponse; + +export default async function find(req: PayloadRequest, res: Response, next: NextFunction): Promise | void> { try { const options = { req, diff --git a/src/collections/requestHandlers/findByID.ts b/src/collections/requestHandlers/findByID.ts index 5370645d18..7160b51eb8 100644 --- a/src/collections/requestHandlers/findByID.ts +++ b/src/collections/requestHandlers/findByID.ts @@ -1,4 +1,15 @@ -export default async function findByID(req, res, next) { +import { Response, NextFunction } from 'express'; +import { PayloadRequest } from '../../express/types/payloadRequest'; +import { Document } from '../../types'; + +export type FindByIDRequestHandler = (req: PayloadRequest, res: Response, next: NextFunction) => unknown; + +export type FindByIDResult = { + message: string; + doc: Document; +}; + +export default async function findByID(req: PayloadRequest, res: Response, next: NextFunction): Promise | void> { const options = { req, collection: req.collection, diff --git a/src/collections/requestHandlers/update.ts b/src/collections/requestHandlers/update.ts index a2121f3f5e..2976819161 100644 --- a/src/collections/requestHandlers/update.ts +++ b/src/collections/requestHandlers/update.ts @@ -1,7 +1,16 @@ +import { Response, NextFunction } from 'express'; import httpStatus from 'http-status'; +import { PayloadRequest } from '../../express/types/payloadRequest'; import formatSuccessResponse from '../../express/responses/formatSuccess'; -export default async function update(req, res, next) { +export type UpdateRequestHandler = (req: PayloadRequest, res: Response, next: NextFunction) => unknown; + +export type UpdateResult = { + message: string + doc: Document +}; + +export default async function update(req: PayloadRequest, res: Response, next: NextFunction): Promise | void> { try { const doc = await this.operations.collections.update({ req, From 7333cc25d8f1ec8b9d58b0a75ff1c25dcaa8068c Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Mon, 30 Nov 2020 10:56:03 -0500 Subject: [PATCH 2/3] fix CollectionConfig type, boolean unions will have been sanitized --- src/collections/config/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/collections/config/types.ts b/src/collections/config/types.ts index fd2b90562c..78c19b3e33 100644 --- a/src/collections/config/types.ts +++ b/src/collections/config/types.ts @@ -119,8 +119,8 @@ export type PayloadCollectionConfig = { }; export interface CollectionConfig extends Omit, 'auth' | 'upload'> { - auth: Auth | boolean - upload: Upload | boolean + auth: Auth; + upload: Upload; } export type Collection = { From c1b1b8177492c70ac555c5848bbb05927a513c2f Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Mon, 30 Nov 2020 10:56:40 -0500 Subject: [PATCH 3/3] add requesthandlers to bindings --- src/init/bindRequestHandlers.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/init/bindRequestHandlers.ts b/src/init/bindRequestHandlers.ts index b53e266391..380ac58936 100644 --- a/src/init/bindRequestHandlers.ts +++ b/src/init/bindRequestHandlers.ts @@ -11,10 +11,10 @@ import verifyEmail from '../auth/requestHandlers/verifyEmail'; import unlock from '../auth/requestHandlers/unlock'; import create, { CreateRequestHandler } from '../collections/requestHandlers/create'; -import find from '../collections/requestHandlers/find'; -import findByID from '../collections/requestHandlers/findByID'; -import update from '../collections/requestHandlers/update'; -import deleteHandler from '../collections/requestHandlers/delete'; +import find, { FindRequestHandler } from '../collections/requestHandlers/find'; +import findByID, { FindByIDRequestHandler } from '../collections/requestHandlers/findByID'; +import update, { UpdateRequestHandler } from '../collections/requestHandlers/update'; +import deleteHandler, { DeleteRequestHandler } from '../collections/requestHandlers/delete'; import findOne from '../globals/requestHandlers/findOne'; import globalUpdate from '../globals/requestHandlers/update'; @@ -22,9 +22,13 @@ import { Payload } from '../index'; export type RequestHandlers = { collections: { - create: CreateRequestHandler + create: CreateRequestHandler, + find: FindRequestHandler, + findByID: FindByIDRequestHandler, + update: UpdateRequestHandler, + delete: DeleteRequestHandler, auth: { - access: AccessRequestHandler + access: AccessRequestHandler, } } }