|
2 | 2 |
|
3 | 3 | import { useMemo } from 'react'
|
4 | 4 | import { useLocation } from 'react-router-dom-v5-compat'
|
5 |
| -import { ArgoApplication, OCPAppResource } from '../resources' |
| 5 | +import { OCPAppResource } from '../resources' |
6 | 6 | import { getBackendUrl, IRequestResult, postRequest } from '../resources/utils'
|
7 | 7 | import { flatten, uniqBy } from 'lodash'
|
8 | 8 |
|
@@ -65,107 +65,6 @@ export function queryStatusCount(cluster: string): IRequestResult<ISearchResult>
|
65 | 65 | })
|
66 | 66 | }
|
67 | 67 |
|
68 |
| -function getRemoteArgoFilters({ |
69 |
| - cluster, |
70 |
| - clusters = [], |
71 |
| - name, |
72 |
| - namespace, |
73 |
| -}: Pick<DiscoveredAppsParams, 'clusters'> & { |
74 |
| - cluster?: DiscoveredAppsParams['search'] |
75 |
| - name?: DiscoveredAppsParams['search'] |
76 |
| - namespace?: DiscoveredAppsParams['search'] |
77 |
| -}) { |
78 |
| - const clustersFilter = { property: 'cluster', values: [] as string[] } |
79 |
| - const filtersArr = [ |
80 |
| - { property: 'kind', values: ['Application'] }, |
81 |
| - { property: 'apigroup', values: ['argoproj.io'] }, |
82 |
| - clustersFilter, |
83 |
| - ...(name ? [{ property: 'name', values: [`*${name}*`] }] : []), |
84 |
| - ...(namespace ? [{ property: 'destinationNamespace', values: [`*${namespace}*`] }] : []), |
85 |
| - ] |
86 |
| - |
87 |
| - if (clusters.length) { |
88 |
| - clustersFilter.values = clustersFilter.values.concat(clusters) |
89 |
| - } else if (cluster) { |
90 |
| - clustersFilter.values.push(`*${cluster}*`) |
91 |
| - } else { |
92 |
| - clustersFilter.values.push('!local-cluster') |
93 |
| - } |
94 |
| - |
95 |
| - return filtersArr |
96 |
| -} |
97 |
| - |
98 |
| -export async function queryRemoteArgoApps(params: DiscoveredAppsParams): Promise<ArgoApplication[]> |
99 |
| -export async function queryRemoteArgoApps(params: DiscoveredAppsParams & { countOnly: true }): Promise<number> |
100 |
| -export async function queryRemoteArgoApps( |
101 |
| - params: DiscoveredAppsParams & { countOnly?: true } |
102 |
| -): Promise<ArgoApplication[] | number> { |
103 |
| - const { clusters = [], search, searchLimit, countOnly = false } = params |
104 |
| - |
105 |
| - let variables: SearchQuery['variables'] |
106 |
| - let query: string |
107 |
| - |
108 |
| - const limitObject = countOnly ? {} : { limit: searchLimit } |
109 |
| - |
110 |
| - if (search) { |
111 |
| - variables = { |
112 |
| - byNameInput: [ |
113 |
| - { |
114 |
| - filters: getRemoteArgoFilters({ clusters, name: search }), |
115 |
| - ...limitObject, |
116 |
| - }, |
117 |
| - ], |
118 |
| - byNamespaceInput: [ |
119 |
| - { |
120 |
| - filters: getRemoteArgoFilters({ clusters, namespace: search }), |
121 |
| - ...limitObject, |
122 |
| - }, |
123 |
| - ], |
124 |
| - ...(clusters.length |
125 |
| - ? {} |
126 |
| - : { |
127 |
| - byClusterInput: [ |
128 |
| - { |
129 |
| - filters: getRemoteArgoFilters({ cluster: search }), |
130 |
| - ...limitObject, |
131 |
| - }, |
132 |
| - ], |
133 |
| - }), |
134 |
| - } |
135 |
| - if (clusters.length) { |
136 |
| - query = countOnly ? searchMatchAndFilterQueryCount : searchMatchAndFilterQuery |
137 |
| - } else { |
138 |
| - query = countOnly ? searchMatchWithClusterAndFilterQueryCount : searchMatchWithClusterAndFilterQuery |
139 |
| - } |
140 |
| - } else { |
141 |
| - variables = { |
142 |
| - input: [ |
143 |
| - { |
144 |
| - filters: getRemoteArgoFilters({ clusters }), |
145 |
| - ...limitObject, |
146 |
| - }, |
147 |
| - ], |
148 |
| - } |
149 |
| - query = countOnly ? searchFilterQueryCount : searchFilterQuery |
150 |
| - } |
151 |
| - |
152 |
| - const { promise } = postRequest<SearchQuery, ISearchResult>(getBackendUrl() + apiSearchUrl, { |
153 |
| - operationName: 'searchResult', |
154 |
| - variables, |
155 |
| - query, |
156 |
| - }) |
157 |
| - return promise.then((result) => { |
158 |
| - if (countOnly) { |
159 |
| - return Math.max(...Object.values(result.data).map((value) => value?.[0]?.count || 0)) |
160 |
| - } else { |
161 |
| - return uniqBy( |
162 |
| - flatten(Object.values(result.data).map((value) => value?.[0]?.items || [])), |
163 |
| - (item) => item._uid |
164 |
| - ) as ArgoApplication[] |
165 |
| - } |
166 |
| - }) |
167 |
| -} |
168 |
| - |
169 | 68 | export type DiscoveredAppsParams = {
|
170 | 69 | clusters?: string[]
|
171 | 70 | types?: string[]
|
|
0 commit comments