Skip to content

Commit 966c9f0

Browse files
committed
#3938 add transformer
1 parent 3c54f35 commit 966c9f0

7 files changed

Lines changed: 39 additions & 18 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
getPartReviewRequestQueryArgs,
3232
getPartSubmissionQueryArgs
3333
} from '../prisma-query-args/part-review.query-args.js';
34-
import { faqTransformer } from '../transformers/faq.transformer.js';
34+
import { faqTransformer } from '../transformers/recruitment-transformer.js';
3535
import {
3636
partReviewRequestTransformer,
3737
partsReviewCommonMistakeTransformer,

src/backend/src/services/recruitment.services.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { isAdmin, User } from 'shared';
33
import prisma from '../prisma/prisma.js';
44
import { AccessDeniedAdminOnlyException, DeletedException, NotFoundException } from '../utils/errors.utils.js';
55
import { userHasPermission } from '../utils/users.utils.js';
6-
import { faqTransformer } from '../transformers/faq.transformer.js';
6+
import { faqTransformer, guestDefinitionTransformer } from '../transformers/recruitment-transformer.js';
77
import { getFaqQueryArgs } from '../prisma-query-args/faq.query-args.js';
88

99
export default class RecruitmentServices {
@@ -259,6 +259,6 @@ export default class RecruitmentServices {
259259
where: { organizationId: organization.organizationId, dateDeleted: null }
260260
});
261261

262-
return allGuestDefintions;
262+
return allGuestDefintions.map(guestDefinitionTransformer);
263263
}
264264
}

src/backend/src/transformers/faq.transformer.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Prisma } from '@prisma/client';
2+
import { FrequentlyAskedQuestion, GuestDefinition } from 'shared';
3+
import { FaqQueryArgs } from '../prisma-query-args/faq.query-args.js';
4+
import { userTransformer } from './user.transformer.js';
5+
6+
export const faqTransformer = (faq: Prisma.FrequentlyAskedQuestionGetPayload<FaqQueryArgs>): FrequentlyAskedQuestion => ({
7+
faqId: faq.faqId,
8+
question: faq.question,
9+
answer: faq.answer,
10+
userCreated: userTransformer(faq.userCreated),
11+
dateCreated: faq.dateCreated,
12+
dateDeleted: faq.dateDeleted ?? undefined
13+
});
14+
15+
export const guestDefinitionTransformer = (guestDefinition: Prisma.Guest_DefinitionGetPayload<{}>): GuestDefinition => ({
16+
definitionId: guestDefinition.definitionId,
17+
term: guestDefinition.term,
18+
description: guestDefinition.description,
19+
order: guestDefinition.order,
20+
buttonText: guestDefinition.buttonText ?? undefined,
21+
buttonLink: guestDefinition.buttonLink ?? undefined,
22+
icon: guestDefinition.icon ?? undefined
23+
});

src/backend/tests/unit/recruitment.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
flashAdmin,
2020
alfred
2121
} from '../test-data/users.test-data.js';
22+
import { guestDefinitionTransformer } from '../../src/transformers/recruitment-transformer.js';
2223

2324
describe('Recruitment Tests', () => {
2425
let orgId: string;
@@ -403,7 +404,7 @@ describe('Recruitment Tests', () => {
403404
);
404405

405406
const result = await RecruitmentServices.getAllGuestDefinitions(organization);
406-
expect(result).toStrictEqual([def, def2]);
407+
expect(result).toStrictEqual([guestDefinitionTransformer(def), guestDefinitionTransformer(def2)]);
407408
});
408409
});
409410
});

src/shared/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export * from './src/types/team-types.js';
1111
export * from './src/types/task-types.js';
1212
export * from './src/types/finance-types.js';
1313
export * from './src/types/reimbursement-requests-types.js';
14-
export * from './src/types/frequently-asked-questions-types.js';
14+
export * from './src/types/recruitment-types.js';
1515
export * from './src/types/milestone-types.js';
1616
export * from './src/types/checklist-types.js';
1717
export * from './src/types/pop-up-types.js';

src/shared/src/types/frequently-asked-questions-types.ts renamed to src/shared/src/types/recruitment-types.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,13 @@ export interface FrequentlyAskedQuestion {
1414
dateCreated: Date;
1515
dateDeleted?: Date;
1616
}
17+
18+
export interface GuestDefinition {
19+
definitionId: string;
20+
term: string;
21+
description: string;
22+
order: number;
23+
buttonText?: string;
24+
buttonLink?: string;
25+
icon?: string;
26+
}

0 commit comments

Comments
 (0)