Skip to content

Commit 4d94f1a

Browse files
committed
#1658 moved to reimbursement request utils
1 parent eab0d4f commit 4d94f1a

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

src/backend/src/services/reimbursement-requests.services.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
removeDeletedReceiptPictures,
2525
updateReimbursementProducts,
2626
validateReimbursementProducts,
27+
validateUserEditReimbursementRequest,
2728
validateUserIsPartOfFinanceTeam
2829
} from '../utils/reimbursement-requests.utils';
2930
import {
@@ -255,12 +256,7 @@ export default class ReimbursementRequestService {
255256

256257
if (!oldReimbursementRequest) throw new NotFoundException('Reimbursement Request', requestId);
257258
if (oldReimbursementRequest.dateDeleted) throw new DeletedException('Reimbursement Request', requestId);
258-
try {
259-
await validateUserIsPartOfFinanceTeam(submitter);
260-
} catch {
261-
if (oldReimbursementRequest.recipientId !== submitter.userId)
262-
throw new AccessDeniedException('Only the creator or finance team can edit a reimbursement request');
263-
}
259+
await validateUserEditReimbursementRequest(submitter, oldReimbursementRequest);
264260

265261
const vendor = await prisma.vendor.findUnique({
266262
where: { vendorId }

src/backend/src/utils/reimbursement-requests.utils.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { ReimbursementProductCreateArgs, ReimbursementReceiptCreateArgs, WbsNumber, wbsPipe } from 'shared';
77
import prisma from '../prisma/prisma';
88
import { AccessDeniedException, DeletedException, HttpException, NotFoundException } from './errors.utils';
9-
import { Prisma, Receipt, Reimbursement_Product, Team, User } from '@prisma/client';
9+
import { Prisma, Receipt, Reimbursement_Product, Reimbursement_Request, Team, User } from '@prisma/client';
1010
import authUserQueryArgs from '../prisma-query-args/auth-user.query-args';
1111
import { isUserOnTeam } from './teams.utils';
1212

@@ -233,3 +233,12 @@ export const isAuthUserHeadOfFinance = (user: Prisma.UserGetPayload<typeof authU
233233
const isTeamIdInList = (teamId: string, teamsList: Team[]) => {
234234
return teamsList.map((team) => team.teamId).includes(teamId);
235235
};
236+
237+
export const validateUserEditReimbursementRequest = async (user: User, reimbursementRequest: Reimbursement_Request) => {
238+
try {
239+
await validateUserIsPartOfFinanceTeam(user);
240+
} catch {
241+
if (reimbursementRequest.recipientId !== user.userId)
242+
throw new AccessDeniedException('Only the creator or finance team can edit a reimbursement request');
243+
}
244+
};

0 commit comments

Comments
 (0)