Skip to content

Commit 4cbd26c

Browse files
committed
Update 'soft' deletes for activities
Now using proper delete endpoint. No longer this weird call with a body param
1 parent 27e47b7 commit 4cbd26c

33 files changed

Lines changed: 243 additions & 628 deletions

app/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
"rimraf": "^6.0.1",
108108
"supertest": "^7.1.1",
109109
"ts-jest": "^29.4.0",
110-
"typescript": "^5.8.3"
110+
"typescript": "^5.9.2"
111111
},
112112
"prisma": {
113113
"schema": "src/db/prisma/schema.prisma"

app/src/controllers/electrificationProject.ts

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { PrismaTransactionClient } from '../db/dataConnection';
44
import { transactionWrapper } from '../db/utils/transactionWrapper';
55
import { generateCreateStamps, generateNullUpdateStamps, generateUpdateStamps } from '../db/utils/utils';
66

7-
import { createActivity } from '../services/activity';
7+
import { createActivity, deleteActivity } from '../services/activity';
88
import { createDraft, deleteDraft, getDraft, getDrafts, updateDraft } from '../services/draft';
99
import { email } from '../services/email';
1010
import {
@@ -13,8 +13,7 @@ import {
1313
getElectrificationProjects,
1414
getElectrificationProjectStatistics,
1515
searchElectrificationProjects,
16-
updateElectrificationProject,
17-
updateElectrificationProjectIsDeletedFlag
16+
updateElectrificationProject
1817
} from '../services/electrificationProject';
1918
import { Initiative } from '../utils/enums/application';
2019
import { ApplicationStatus, DraftCode, IntakeStatus, SubmissionType } from '../utils/enums/projectCommon';
@@ -129,6 +128,17 @@ export const createElectrificationProjectController = async (
129128
res.status(201).json(result);
130129
};
131130

131+
export const deleteElectrificationProjectController = async (
132+
req: Request<{ electrificationProjectId: string }>,
133+
res: Response
134+
) => {
135+
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
136+
const project = await getElectrificationProject(tx, req.params.electrificationProjectId);
137+
await deleteActivity(tx, project.activityId, generateUpdateStamps(req.currentContext));
138+
});
139+
res.status(204).end();
140+
};
141+
132142
export const deleteElectrificationProjectDraftController = async (req: Request<{ draftId: string }>, res: Response) => {
133143
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
134144
await deleteDraft(tx, req.params.draftId);
@@ -258,21 +268,6 @@ export const updateElectrificationProjectDraftController = async (req: Request<n
258268
res.status(update ? 200 : 201).json({ draftId: response?.draftId, activityId: response?.activityId });
259269
};
260270

261-
export const updateElectrificationProjectIsDeletedFlagController = async (
262-
req: Request<{ electrificationProjectId: string }, never, { isDeleted: boolean }>,
263-
res: Response
264-
) => {
265-
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
266-
await updateElectrificationProjectIsDeletedFlag(
267-
tx,
268-
req.params.electrificationProjectId,
269-
req.body.isDeleted,
270-
generateUpdateStamps(req.currentContext)
271-
);
272-
});
273-
res.status(204).end();
274-
};
275-
276271
export const updateElectrificationProjectController = async (
277272
req: Request<never, never, { project: ElectrificationProject; contacts: Array<Contact> }>,
278273
res: Response

app/src/controllers/enquiry.ts

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ import { v4 as uuidv4 } from 'uuid';
33
import { PrismaTransactionClient } from '../db/dataConnection';
44
import { generateCreateStamps, generateNullUpdateStamps, generateUpdateStamps } from '../db/utils/utils';
55

6-
import { createActivity } from '../services/activity';
6+
import { createActivity, deleteActivity } from '../services/activity';
77
import { upsertContacts } from '../services/contact';
88
import {
99
createEnquiry,
1010
getEnquiries,
1111
getEnquiry,
1212
getRelatedEnquiries,
1313
searchEnquiries,
14-
updateEnquiry,
15-
updateEnquiryIsDeletedFlag
14+
updateEnquiry
1615
} from '../services/enquiry';
1716
import { Initiative } from '../utils/enums/application';
1817
import { ApplicationStatus, EnquirySubmittedMethod, IntakeStatus, SubmissionType } from '../utils/enums/projectCommon';
@@ -83,6 +82,14 @@ export const createEnquiryController = async (req: Request<never, never, Enquiry
8382
res.status(201).json(result);
8483
};
8584

85+
export const deleteEnquiryController = async (req: Request<{ enquiryId: string }>, res: Response) => {
86+
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
87+
const enquiry = await getEnquiry(tx, req.params.enquiryId);
88+
await deleteActivity(tx, enquiry.activityId, generateUpdateStamps(req.currentContext));
89+
});
90+
res.status(204).end();
91+
};
92+
8693
export const getEnquiriesController = async (req: Request, res: Response) => {
8794
// Pull from PCNS database
8895
let response = await transactionWrapper<Enquiry[]>(async (tx: PrismaTransactionClient) => {
@@ -147,19 +154,3 @@ export const updateEnquiryController = async (req: Request<never, never, Enquiry
147154

148155
res.status(200).json(result);
149156
};
150-
151-
export const updateEnquiryIsDeletedFlagController = async (
152-
req: Request<{ enquiryId: string }, never, { isDeleted: boolean }>,
153-
res: Response
154-
) => {
155-
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
156-
await updateEnquiryIsDeletedFlag(
157-
tx,
158-
req.params.enquiryId,
159-
req.body.isDeleted,
160-
generateUpdateStamps(req.currentContext)
161-
);
162-
});
163-
164-
res.status(204).end();
165-
};

app/src/controllers/housingProject.ts

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
generateUpdateStamps,
99
jsonToPrismaInputJson
1010
} from '../db/utils/utils';
11-
import { createActivity } from '../services/activity';
11+
import { createActivity, deleteActivity } from '../services/activity';
1212
import { upsertContacts } from '../services/contact';
1313
import { createDraft, deleteDraft, getDraft, getDrafts, updateDraft } from '../services/draft';
1414
import { email } from '../services/email';
@@ -18,8 +18,7 @@ import {
1818
getHousingProjects,
1919
getHousingProjectStatistics,
2020
searchHousingProjects,
21-
updateHousingProject,
22-
updateHousingProjectIsDeletedFlag
21+
updateHousingProject
2322
} from '../services/housingProject';
2423
import { upsertPermit } from '../services/permit';
2524
import { upsertPermitTracking } from '../services/permitTracking';
@@ -291,6 +290,15 @@ export const createHousingProjectController = async (
291290
res.status(201).json(result);
292291
};
293292

293+
export const deleteHousingProjectController = async (req: Request<{ housingProjectId: string }>, res: Response) => {
294+
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
295+
const project = await getHousingProject(tx, req.params.housingProjectId);
296+
await deleteActivity(tx, project.activityId, generateUpdateStamps(req.currentContext));
297+
});
298+
299+
res.status(204).end();
300+
};
301+
294302
export const deleteHousingProjectDraftController = async (req: Request<{ draftId: string }>, res: Response) => {
295303
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
296304
await deleteDraft(tx, req.params.draftId);
@@ -448,22 +456,6 @@ export const updateHousingProjectDraftController = async (req: Request<never, ne
448456
res.status(update ? 200 : 201).json({ draftId: response?.draftId, activityId: response?.activityId });
449457
};
450458

451-
export const updateHousingProjectIsDeletedFlagController = async (
452-
req: Request<{ housingProjectId: string }, never, { isDeleted: boolean }>,
453-
res: Response
454-
) => {
455-
await transactionWrapper<void>(async (tx: PrismaTransactionClient) => {
456-
await updateHousingProjectIsDeletedFlag(
457-
tx,
458-
req.params.housingProjectId,
459-
req.body.isDeleted,
460-
generateUpdateStamps(req.currentContext)
461-
);
462-
});
463-
464-
res.status(204).end();
465-
};
466-
467459
export const updateHousingProjectController = async (req: Request<never, never, HousingProject>, res: Response) => {
468460
const response = await transactionWrapper<HousingProject>(async (tx: PrismaTransactionClient) => {
469461
return await updateHousingProject(tx, {

app/src/db/dataConnection.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,18 @@ const prisma = new PrismaClient({
2525
// TODO: https://www.prisma.io/docs/orm/prisma-client/observability-and-logging/logging#event-based-logging
2626
log: ['error', 'warn'],
2727
errorFormat: 'pretty',
28-
datasourceUrl: datasourceUrl
28+
datasourceUrl: datasourceUrl,
29+
omit: {
30+
activity: {
31+
isDeleted: true
32+
},
33+
note_history: {
34+
isDeleted: true
35+
},
36+
permit_note: {
37+
isDeleted: true
38+
}
39+
}
2940
})
3041
.$extends(filterDeletedTransform)
3142
.$extends(numericTransform)

0 commit comments

Comments
 (0)