Skip to content

Commit e198794

Browse files
authored
Merge pull request #6139 from bcgov/feat/6028
feat(6028): display distinct labels for actioned requests
2 parents 8489db0 + 1a8a689 commit e198794

File tree

8 files changed

+44
-11
lines changed

8 files changed

+44
-11
lines changed

app/app/api/tasks/[id]/start/route.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { z } from 'zod';
22
import createApiHandler from '@/core/api-handler';
33
import prisma from '@/core/prisma';
44
import { BadRequestResponse, OkResponse } from '@/core/responses';
5-
import { TaskStatus } from '@/prisma/client';
5+
import { TaskStatus, TaskType } from '@/prisma/client';
66
import { objectId } from '@/validation-schemas';
77

88
const pathParamSchema = z.object({
@@ -33,6 +33,18 @@ export const POST = apiHandler(async ({ pathParams, session }) => {
3333
},
3434
});
3535

36+
if (result.type === TaskType.REVIEW_PRIVATE_CLOUD_REQUEST || result.type === TaskType.REVIEW_PUBLIC_CLOUD_REQUEST) {
37+
if (result.data && result.data['requestId']) {
38+
const updateData = { where: { id: result.data['requestId'] }, data: { actioned: true } };
39+
40+
if (result.type === TaskType.REVIEW_PRIVATE_CLOUD_REQUEST) {
41+
await prisma.privateCloudRequest.update(updateData);
42+
} else if (result.type === TaskType.REVIEW_PUBLIC_CLOUD_REQUEST) {
43+
await prisma.publicCloudRequest.update(updateData);
44+
}
45+
}
46+
}
47+
3648
if (!result) {
3749
return BadRequestResponse('invalid task');
3850
}

app/components/form/PrivateCloudActiveRequestBox.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default function PrivateCloudActiveRequestBox({
2525
}: {
2626
request: Pick<
2727
PrivateCloudRequestDetail,
28-
'id' | 'licencePlate' | 'active' | 'type' | 'licencePlate' | 'decisionStatus' | 'createdByEmail'
28+
'id' | 'licencePlate' | 'active' | 'actioned' | 'type' | 'licencePlate' | 'decisionStatus' | 'createdByEmail'
2929
>;
3030
className?: string;
3131
showCount?: boolean;
@@ -78,8 +78,13 @@ export default function PrivateCloudActiveRequestBox({
7878

7979
switch (request.decisionStatus) {
8080
case DecisionStatus.PENDING:
81-
decisionColor = 'blue';
82-
decisionText = 'Reviewing';
81+
if (request.actioned) {
82+
decisionColor = 'blue';
83+
decisionText = 'Reviewing';
84+
} else {
85+
decisionColor = 'gray';
86+
decisionText = 'Submitted';
87+
}
8388
DecisionIcon = IconHourglass;
8489
break;
8590
case DecisionStatus.APPROVED:

app/components/form/PublicCloudActiveRequestBox.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default function PublicCloudActiveRequestBox({
2323
}: {
2424
request: Pick<
2525
PublicCloudRequestDetail,
26-
'id' | 'licencePlate' | 'active' | 'type' | 'licencePlate' | 'decisionStatus' | 'createdByEmail'
26+
'id' | 'licencePlate' | 'active' | 'actioned' | 'type' | 'licencePlate' | 'decisionStatus' | 'createdByEmail'
2727
>;
2828
className?: string;
2929
}) {
@@ -71,8 +71,13 @@ export default function PublicCloudActiveRequestBox({
7171

7272
switch (request.decisionStatus) {
7373
case DecisionStatus.PENDING:
74-
decisionColor = 'blue';
75-
decisionText = 'Reviewing';
74+
if (request.actioned) {
75+
decisionColor = 'blue';
76+
decisionText = 'Reviewing';
77+
} else {
78+
decisionColor = 'gray';
79+
decisionText = 'Submitted';
80+
}
7681

7782
if (inEmouProcess && initialBillingSearch?.data.length) {
7883
const initialBilling = initialBillingSearch.data[0];

app/components/private-cloud/RequestBadge.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default function RequestBadge({
1111
}: {
1212
data: Pick<
1313
PrivateCloudRequestDetailDecorated,
14-
'licencePlate' | 'type' | 'decisionStatus' | 'decisionData' | 'active'
14+
'licencePlate' | 'type' | 'decisionStatus' | 'decisionData' | 'active' | 'actioned'
1515
>;
1616
className?: string;
1717
}) {
@@ -30,9 +30,11 @@ export default function RequestBadge({
3030
break;
3131
}
3232

33+
let status: string = data.decisionStatus;
3334
switch (data.decisionStatus) {
3435
case DecisionStatus.PENDING:
3536
decisionColor = 'gray';
37+
status = data.actioned ? 'Reviewing' : 'Submitted';
3638
break;
3739
case DecisionStatus.APPROVED:
3840
case DecisionStatus.AUTO_APPROVED:
@@ -57,7 +59,7 @@ export default function RequestBadge({
5759
{data.active ? 'ACTIVE' : 'CLOSED'}
5860
</Badge>
5961
<Badge color={decisionColor} radius="sm" className="ml-1">
60-
{data.decisionStatus}
62+
{status}
6163
</Badge>
6264
{data.decisionData.isTest && (
6365
<Badge color="yellow" radius="sm" className="ml-1">

app/components/public-cloud/RequestBadge.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ export default function RequestBadge({
88
data,
99
className,
1010
}: {
11-
data: Pick<PublicCloudRequestDetailDecorated, 'licencePlate' | 'type' | 'decisionStatus' | 'decisionData' | 'active'>;
11+
data: Pick<
12+
PublicCloudRequestDetailDecorated,
13+
'licencePlate' | 'type' | 'decisionStatus' | 'decisionData' | 'active' | 'actioned'
14+
>;
1215
className?: string;
1316
}) {
1417
let typeColor = 'gray';
@@ -26,9 +29,11 @@ export default function RequestBadge({
2629
break;
2730
}
2831

32+
let status: string = data.decisionStatus;
2933
switch (data.decisionStatus) {
3034
case DecisionStatus.PENDING:
3135
decisionColor = 'gray';
36+
status = data.actioned ? 'Reviewing' : 'Submitted';
3237
break;
3338
case DecisionStatus.APPROVED:
3439
case DecisionStatus.AUTO_APPROVED:
@@ -52,7 +57,7 @@ export default function RequestBadge({
5257
{data.active ? 'ACTIVE' : 'CLOSED'}
5358
</Badge>
5459
<Badge color={decisionColor} radius="sm" className="ml-1">
55-
{data.decisionStatus}
60+
{status}
5661
</Badge>
5762
</div>
5863
);

app/helpers/mock-resources/private-cloud-request.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ export function createSamplePrivateCloudRequest(args?: {
9090
decisionComment: faker.lorem.sentence(),
9191
quotaUpgradeResourceDetailList: [],
9292
active: true,
93+
actioned: true,
9394
createdAt: new Date(),
9495
updatedAt: new Date(),
9596
cancelledAt: null,

app/helpers/mock-resources/public-cloud-request.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ export function createSamplePublicCloudRequest(args?: {
113113
requestComment: faker.lorem.sentence(),
114114
decisionComment: faker.lorem.sentence(),
115115
active: true,
116+
actioned: true,
116117
createdAt: new Date(),
117118
updatedAt: new Date(),
118119
decisionDate: new Date(),

app/prisma/schema.prisma

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ model PrivateCloudRequest {
8989
quotaJustification String?
9090
type RequestType
9191
decisionStatus DecisionStatus
92+
actioned Boolean? @default(false)
9293
isQuotaChanged Boolean? @default(false)
9394
requestComment String?
9495
decisionComment String?
@@ -252,6 +253,7 @@ model PublicCloudRequest {
252253
decisionMaker User? @relation("decisionMaker", fields: [decisionMakerEmail], references: [email])
253254
type PublicCloudRequestType
254255
decisionStatus DecisionStatus
256+
actioned Boolean? @default(false)
255257
requestComment String?
256258
decisionComment String?
257259
active Boolean @default(true)

0 commit comments

Comments
 (0)