Skip to content

Commit 1bf3a88

Browse files
committed
Merge branch 'feat/approval-policy' of github.com:devtron-labs/devtron-fe-common-lib into fix/approval-policy
2 parents af4fb0f + d6539f3 commit 1bf3a88

File tree

6 files changed

+75
-29
lines changed

6 files changed

+75
-29
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@devtron-labs/devtron-fe-common-lib",
3-
"version": "1.2.4-beta-4",
3+
"version": "1.2.5-beta-8",
44
"description": "Supporting common component library",
55
"type": "module",
66
"main": "dist/index.js",

src/Common/Constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export const ROUTES = {
116116
USER_LIST_MIN: 'user/list/min',
117117
CONFIG_DATA: 'config/data',
118118
K8S_RESOURCE_LIST: 'k8s/resource/list',
119+
CONFIG_COMPARE_SECRET: 'config/compare/secret',
119120
}
120121

121122
export enum KEY_VALUE {

src/Shared/Components/CICDHistory/DeploymentHistoryConfigDiff/DeploymentHistoryConfigDiff.tsx

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import { generatePath, Route, Switch, useLocation, useRouteMatch } from 'react-r
44
import { ReactComponent as ICError } from '@Icons/ic-error.svg'
55
import { getAppEnvDeploymentConfigList } from '@Shared/Components/DeploymentConfigDiff'
66
import { useAsync } from '@Common/Helper'
7-
import { EnvResourceType, getAppEnvDeploymentConfig } from '@Shared/Services'
7+
import { EnvResourceType, getAppEnvDeploymentConfig, getCompareSecretsData } from '@Shared/Services'
88
import { groupArrayByObjectKey } from '@Shared/Helpers'
99
import ErrorScreenManager from '@Common/ErrorScreenManager'
1010
import { Progressing } from '@Common/Progressing'
1111
import { useUrlFilters } from '@Common/Hooks'
1212
import { GenericEmptyState, InfoColourBar } from '@Common/index'
1313

14+
import { useMainContext } from '@Shared/Providers'
1415
import { DeploymentHistoryConfigDiffCompare } from './DeploymentHistoryConfigDiffCompare'
1516
import { DeploymentHistoryConfigDiffProps, DeploymentHistoryConfigDiffQueryParams } from './types'
1617
import {
@@ -35,6 +36,7 @@ export const DeploymentHistoryConfigDiff = ({
3536
// HOOKS
3637
const { path, params } = useRouteMatch()
3738
const { pathname, search } = useLocation()
39+
const { isSuperAdmin } = useMainContext()
3840

3941
// CONSTANTS
4042
const pipelineDeployments = useMemo(() => getPipelineDeployments(triggerHistory), [triggerHistory])
@@ -54,32 +56,49 @@ export const DeploymentHistoryConfigDiff = ({
5456

5557
// ASYNC CALLS
5658
// Load comparison deployment data
57-
const [compareDeploymentConfigLoader, compareDeploymentConfig, , reloadCompareDeploymentConfig] = useAsync(
58-
() =>
59-
Promise.allSettled([
60-
getAppEnvDeploymentConfig({
61-
params: {
62-
appName,
63-
envName,
64-
configArea: 'DeploymentHistory',
65-
pipelineId,
66-
wfrId: currentWfrId,
67-
},
68-
}),
59+
const [compareDeploymentConfigLoader, compareDeploymentConfig, , reloadCompareDeploymentConfig] =
60+
useAsync(async () => {
61+
const payloads = [
62+
{
63+
appName,
64+
envName,
65+
configArea: 'DeploymentHistory',
66+
pipelineId,
67+
wfrId: currentWfrId,
68+
} as const,
6969
isPreviousDeploymentConfigAvailable
70-
? getAppEnvDeploymentConfig({
71-
params: {
72-
appName,
73-
envName,
74-
configArea: 'DeploymentHistory',
75-
pipelineId,
76-
wfrId: compareWfrId,
77-
},
78-
})
70+
? ({
71+
appName,
72+
envName,
73+
configArea: 'DeploymentHistory',
74+
pipelineId,
75+
wfrId: compareWfrId,
76+
} as const)
7977
: null,
80-
]),
81-
[currentWfrId, compareWfrId],
82-
)
78+
] as const
79+
80+
const [secretsData, ...configDatas] = await Promise.allSettled([
81+
!isSuperAdmin ? getCompareSecretsData([...payloads]) : null,
82+
...payloads.map((payload) => payload && getAppEnvDeploymentConfig({ params: payload })),
83+
])
84+
85+
if (secretsData.status !== 'fulfilled' || !secretsData.value) {
86+
return configDatas
87+
}
88+
89+
secretsData.value.forEach((data, index) => {
90+
if (
91+
configDatas[index].status !== 'fulfilled' ||
92+
!configDatas[index].value ||
93+
configDatas[index].value.result.isAppAdmin
94+
) {
95+
return
96+
}
97+
configDatas[index].value.result.secretsData = data.secretsData
98+
})
99+
100+
return configDatas
101+
}, [currentWfrId, compareWfrId])
83102

84103
// METHODS
85104
const getNavItemHref = (resourceType: EnvResourceType, resourceName: string) =>

src/Shared/Services/app.service.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,29 @@ export const getAppEnvDeploymentConfig = ({
6363
signal?: AbortSignal
6464
}): Promise<ResponseType<AppEnvDeploymentConfigDTO>> =>
6565
get(getUrlWithSearchParams(ROUTES.CONFIG_DATA, params), { signal })
66+
67+
export const getCompareSecretsData = async (
68+
params: AppEnvDeploymentConfigPayloadType[],
69+
): Promise<AppEnvDeploymentConfigDTO[]> => {
70+
const payload = {
71+
comparisonItems: params.filter((param) => !!param).map((param, index) => ({ index, ...param })),
72+
}
73+
74+
const results = Array(params.length).fill(null)
75+
76+
const {
77+
result: { comparisonItemResponse },
78+
} = await (get(
79+
getUrlWithSearchParams(ROUTES.CONFIG_COMPARE_SECRET, {
80+
compareConfig: JSON.stringify(payload),
81+
}),
82+
) as Promise<
83+
ResponseType<Record<'comparisonItemResponse', (AppEnvDeploymentConfigDTO & Record<'index', number>)[]>>
84+
>)
85+
86+
comparisonItemResponse.forEach((resp) => {
87+
results[resp.index] = resp
88+
})
89+
90+
return results
91+
}

src/Shared/Services/app.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ export type AppEnvDeploymentConfigPayloadType =
274274
appName: string
275275
envName: string
276276
configType: AppEnvDeploymentConfigType
277-
identifierId?: number
277+
wfrId?: number
278278
pipelineId?: number
279279
resourceType?: ConfigResourceType
280280
resourceId?: number

0 commit comments

Comments
 (0)