Skip to content

Commit 3864770

Browse files
authored
Merge pull request #2175 from Northeastern-Electric-Racing/#2061-get-all-design-reviews-endpoint
#2061 get all design reviews endpoint
2 parents 5292cad + d388f51 commit 3864770

4 files changed

Lines changed: 34 additions & 0 deletions

File tree

src/backend/src/controllers/design-review.controllers.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ import { getCurrentUser } from '../utils/auth.utils';
44
import DesignReviewService from '../services/design-review.services';
55

66
export default class DesignReviewController {
7+
static async getAllDesignReviews(_req: Request, res: Response, next: NextFunction) {
8+
try {
9+
const designReviews = await DesignReviewService.getAllDesignReviews();
10+
return res.status(200).json(designReviews);
11+
} catch (error: unknown) {
12+
next(error);
13+
}
14+
}
15+
716
static async deleteDesignReview(req: Request, res: Response, next: NextFunction) {
817
try {
918
const drId: string = req.params.designReviewId;

src/backend/src/routes/design-review.routes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import DesignReviewController from '../controllers/design-review.controllers';
33

44
const designReviewRouter = express.Router();
55

6+
designReviewRouter.get('/', DesignReviewController.getAllDesignReviews);
7+
68
designReviewRouter.delete('/:designReviewId/delete', DesignReviewController.deleteDesignReview);
79

810
export default designReviewRouter;

src/backend/src/services/design-review.services.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ import designReviewQueryArgs from '../prisma-query-args/design-review.query-args
66
import { designReviewTransformer } from '../transformers/design-review.transformer';
77

88
export default class DesignReviewService {
9+
/**
10+
* Gets all design reviews in the database
11+
* @returns All of the design reviews
12+
*/
13+
static async getAllDesignReviews(): Promise<DesignReview[]> {
14+
const designReviews = await prisma.design_Review.findMany({
15+
where: { dateDeleted: null },
16+
...designReviewQueryArgs
17+
});
18+
return designReviews.map(designReviewTransformer);
19+
}
20+
921
/**
1022
* Deletes a design review
1123
* @param submitter the user who deleted the design review

src/backend/tests/design-reviews.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@ describe('Design Reviews', () => {
1111
vi.clearAllMocks();
1212
});
1313

14+
describe('getAllDesignReviews', () => {
15+
test('Get All Design Reviews works', async () => {
16+
vi.spyOn(prisma.design_Review, 'findMany').mockResolvedValue([]);
17+
18+
const res = await DesignReviewService.getAllDesignReviews();
19+
20+
expect(prisma.design_Review.findMany).toHaveBeenCalledTimes(1);
21+
expect(res).toStrictEqual([]);
22+
});
23+
});
24+
1425
describe('Delete Design Review Tests', () => {
1526
test('Delete Reimbursment Request fails when ID does not exist', async () => {
1627
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(null);

0 commit comments

Comments
 (0)