Skip to content

Commit 9ca37b0

Browse files
committed
chore: Refactor cdMaterialListModal function to accept userApprovalConfig
1 parent 3205923 commit 9ca37b0

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

src/Common/Common.service.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import {
3737
ImageApprovalPolicyType,
3838
ImageApprovalUsersInfoDTO,
3939
UserApprovalMetadataType,
40+
UserApprovalConfigType,
41+
CDMaterialListModalServiceUtilProps,
4042
} from './Types'
4143
import { ApiResourceType } from '../Pages'
4244
import { getIsManualApprovalSpecific, sanitizeUserApprovalConfig, stringComparatorBySortOrder } from '@Shared/Helpers'
@@ -88,30 +90,35 @@ export function setImageTags(request, pipelineId: number, artifactId: number) {
8890
return post(`${ROUTES.IMAGE_TAGGING}/${pipelineId}/${artifactId}`, request)
8991
}
9092

91-
const sanitizeApprovalConfigFromApprovalMetadata = (approvalMetadata: UserApprovalMetadataType):UserApprovalMetadataType => {
93+
const sanitizeApprovalConfigFromApprovalMetadata = (
94+
approvalMetadata: UserApprovalMetadataType,
95+
userApprovalConfig: UserApprovalConfigType,
96+
): UserApprovalMetadataType => {
9297
if (!approvalMetadata) {
9398
return null
9499
}
95100

96101
const approvedUsersData = approvalMetadata.approvedUsersData || []
102+
const unsanitizedApprovalConfig = approvalMetadata.approvalConfig || userApprovalConfig
97103

98104
return {
99105
...approvalMetadata,
100106
approvedUsersData: approvedUsersData.map((userData) => ({
101107
...userData,
102108
userGroups: userData.userGroups?.filter((group) => !!group?.identifier && !!group?.name) ?? [],
103109
})),
104-
approvalConfig: sanitizeUserApprovalConfig(approvalMetadata.approvalConfig),
110+
approvalConfig: sanitizeUserApprovalConfig(unsanitizedApprovalConfig),
105111
}
106112
}
107113

108-
const cdMaterialListModal = (
109-
artifacts: any[],
110-
offset: number,
111-
artifactId?: number,
112-
artifactStatus?: string,
113-
disableDefaultSelection?: boolean,
114-
) => {
114+
const cdMaterialListModal = ({
115+
artifacts,
116+
offset,
117+
artifactId,
118+
artifactStatus,
119+
disableDefaultSelection,
120+
userApprovalConfig,
121+
}: CDMaterialListModalServiceUtilProps) => {
115122
if (!artifacts || !artifacts.length) return []
116123

117124
const markFirstSelected = offset === 0
@@ -155,7 +162,10 @@ const cdMaterialListModal = (
155162
vulnerable: material.vulnerable,
156163
runningOnParentCd: material.runningOnParentCd,
157164
artifactStatus: artifactStatusValue,
158-
userApprovalMetadata: sanitizeApprovalConfigFromApprovalMetadata(material.userApprovalMetadata),
165+
userApprovalMetadata: sanitizeApprovalConfigFromApprovalMetadata(
166+
material.userApprovalMetadata,
167+
userApprovalConfig,
168+
),
159169
triggeredBy: material.triggeredBy,
160170
isVirtualEnvironment: material.isVirtualEnvironment,
161171
imageComment: material.imageComment,
@@ -356,13 +366,14 @@ export const processCDMaterialServiceResponse = (
356366
}
357367
}
358368

359-
const materials = cdMaterialListModal(
360-
cdMaterialsResult.ci_artifacts,
361-
offset ?? 0,
362-
cdMaterialsResult.latest_wf_artifact_id,
363-
cdMaterialsResult.latest_wf_artifact_status,
369+
const materials = cdMaterialListModal({
370+
artifacts: cdMaterialsResult.ci_artifacts,
371+
offset: offset ?? 0,
372+
artifactId: cdMaterialsResult.latest_wf_artifact_id,
373+
artifactStatus: cdMaterialsResult.latest_wf_artifact_status,
364374
disableDefaultSelection,
365-
)
375+
userApprovalConfig: cdMaterialsResult.userApprovalConfig,
376+
})
366377
const approvalInfo = processCDMaterialsApprovalInfo(
367378
stage === DeploymentNodeType.CD || stage === DeploymentNodeType.APPROVAL,
368379
cdMaterialsResult,

src/Common/Types.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,15 @@ export interface ArtifactReleaseMappingType {
448448
version: string
449449
}
450450

451+
export interface CDMaterialListModalServiceUtilProps {
452+
artifacts: any[],
453+
offset: number,
454+
artifactId?: number,
455+
artifactStatus?: string,
456+
disableDefaultSelection?: boolean,
457+
userApprovalConfig?: UserApprovalConfigType,
458+
}
459+
451460
export interface CDMaterialType {
452461
index: number
453462
id: string

0 commit comments

Comments
 (0)