Skip to content

Commit

Permalink
feat(API): zod validation (#129)
Browse files Browse the repository at this point in the history
* feat(API): zod validation

* fix(Books API): use body validator for custom catalog endpoints

---------

Co-authored-by: Ethan Turner <[email protected]>
  • Loading branch information
jakeaturner and ethanaturner committed Oct 25, 2023
1 parent 7829b6a commit 786b03b
Show file tree
Hide file tree
Showing 10 changed files with 2,414 additions and 2,073 deletions.
33 changes: 11 additions & 22 deletions server/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -491,56 +491,47 @@ router.route('/commons/syncwithlibs/automated').put(

/* Commons Books/Catalogs */
router.route('/commons/catalog').get(
booksAPI.validate('getCommonsCatalog'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getCommonsCatalogSchema),
booksAPI.getCommonsCatalog,
);

router.route('/commons/mastercatalog').get(
booksAPI.validate('getMasterCatalog'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getMasterCatalogSchema),
booksAPI.getMasterCatalog,
);

router.route('/commons/book/:bookID').get(
booksAPI.validate('getBookDetail'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDParamSchema),
booksAPI.getBookDetail,
);

router.route('/commons/book/:bookID/summary').get(
booksAPI.validate('getBookSummary'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDParamSchema),
booksAPI.getBookSummary,
);

router.route('/commons/book/:bookID/files/:fileID?').get(
booksAPI.validate('getBookFiles'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getBookFilesSchema),
booksAPI.getBookFiles,
);

router.route('/commons/book/:bookID/files/:fileID/download').get(
booksAPI.validate('downloadBookFile'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.downloadBookFileSchema),
booksAPI.downloadBookFile,
);

router.route('/commons/book/:bookID/toc').get(
booksAPI.validate('getBookTOC'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDParamSchema),
booksAPI.getBookTOC,
);

router.route('/commons/book/:bookID/licensereport').get(
booksAPI.validate('getLicenseReport'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDParamSchema),
booksAPI.getLicenseReport,
);

router.route('/commons/book/:bookID/peerreviews').get(
booksAPI.validate('getBookPeerReviews'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDParamSchema),
booksAPI.getBookPeerReviews,
);

Expand All @@ -550,17 +541,15 @@ router.route('/commons/catalogs/addresource').put(
authAPI.verifyRequest,
authAPI.getUserAttributes,
authAPI.checkHasRoleMiddleware(process.env.ORG_ID, 'campusadmin'),
booksAPI.validate('addBookToCustomCatalog'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDBodySchema),
booksAPI.addBookToCustomCatalog,
);

router.route('/commons/catalogs/removeresource').put(
authAPI.verifyRequest,
authAPI.getUserAttributes,
authAPI.checkHasRoleMiddleware(process.env.ORG_ID, 'campusadmin'),
booksAPI.validate('removeBookFromCustomCatalog'),
middleware.checkValidationErrors,
middleware.validateZod(booksAPI.getWithBookIDBodySchema),
booksAPI.removeBookFromCustomCatalog,
);

Expand Down
Loading

0 comments on commit 786b03b

Please sign in to comment.