-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathoffering-change-request.ts
33 lines (31 loc) · 1.33 KB
/
offering-change-request.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { EducationProgramOffering, OfferingStatus } from "@sims/sims-db";
/**
* Create a fake offering request change.
* @param options dependencies:
* - `currentOffering` current offering, which is requested for the changed, which is
* already saved in the DB.
* @returns the current and requested offering.
*/
export function createFakeOfferingRequestChange(options: {
currentOffering: EducationProgramOffering;
}): EducationProgramOffering[] {
const now = new Date();
const requestedOfferingId = options.currentOffering.id;
const requestedOffering = options.currentOffering;
delete requestedOffering.id;
requestedOffering.offeringStatus = OfferingStatus.ChangeAwaitingApproval;
requestedOffering.parentOffering =
options.currentOffering.parentOffering ??
({ id: requestedOfferingId } as EducationProgramOffering);
requestedOffering.precedingOffering = {
id: requestedOfferingId,
} as EducationProgramOffering;
requestedOffering.createdAt = now;
requestedOffering.submittedDate = now;
// Update the status and audit details of current offering.
const precedingOffering = new EducationProgramOffering();
precedingOffering.id = requestedOfferingId;
precedingOffering.offeringStatus = OfferingStatus.ChangeUnderReview;
precedingOffering.updatedAt = now;
return [precedingOffering, requestedOffering];
}