|
18 | 18 | package appStoreDiscoverRepository |
19 | 19 |
|
20 | 20 | import ( |
| 21 | + "fmt" |
21 | 22 | appStoreBean "github.com/devtron-labs/devtron/pkg/appStore/bean" |
22 | 23 | "github.com/devtron-labs/devtron/pkg/sql" |
23 | 24 | "github.com/go-pg/pg" |
@@ -114,27 +115,33 @@ func updateFindWithFilterQuery(filter *appStoreBean.AppStoreFilter, updateAction |
114 | 115 | query = " ch.name as chart_name, das.id as docker_artifact_store_id" |
115 | 116 | } |
116 | 117 | } |
| 118 | + |
| 119 | + latestAppStoreVersionQuery := " SELECT MAX(asv.id) as id " + |
| 120 | + " FROM app_store_application_version asv " + |
| 121 | + " INNER JOIN app_store aps ON (asv.app_store_id = aps.id and aps.active = true) " + |
| 122 | + " GROUP BY asv.app_store_id " |
| 123 | + |
117 | 124 | if updateAction == QUERY_JOIN_UPDTAE { |
118 | 125 | if len(filter.ChartRepoId) > 0 && len(filter.RegistryId) > 0 { |
119 | 126 | query = " LEFT JOIN chart_repo ch ON (aps.chart_repo_id = ch.id and ch.deleted IS FALSE)" + |
120 | 127 | " LEFT JOIN docker_artifact_store das ON aps.docker_artifact_store_id = das.id" + |
121 | 128 | " LEFT JOIN oci_registry_config oci ON oci.docker_artifact_store_id = das.id" + |
122 | | - " WHERE (asv.latest IS TRUE AND (ch.active IS TRUE OR (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)))" + |
| 129 | + fmt.Sprintf(" WHERE (asv.id IN (%s) AND (ch.active IS TRUE OR (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)))", latestAppStoreVersionQuery) + |
123 | 130 | " AND (ch.id IN (?) OR das.id IN (?))" |
124 | 131 | } else if len(filter.RegistryId) > 0 { |
125 | 132 | query = " LEFT JOIN docker_artifact_store das ON aps.docker_artifact_store_id = das.id" + |
126 | 133 | " LEFT JOIN oci_registry_config oci ON oci.docker_artifact_store_id = das.id" + |
127 | | - " WHERE asv.latest IS TRUE AND (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)" + |
| 134 | + fmt.Sprintf(" WHERE asv.id IN (%s) AND (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)", latestAppStoreVersionQuery) + |
128 | 135 | " AND das.id IN (?)" |
129 | 136 | } else if len(filter.ChartRepoId) > 0 { |
130 | 137 | query = " LEFT JOIN chart_repo ch ON (aps.chart_repo_id = ch.id and ch.deleted IS FALSE)" + |
131 | | - " WHERE asv.latest IS TRUE AND ch.active IS TRUE" + |
| 138 | + fmt.Sprintf(" WHERE asv.id IN (%s) AND ch.active IS TRUE", latestAppStoreVersionQuery) + |
132 | 139 | " AND ch.id IN (?)" |
133 | 140 | } else { |
134 | 141 | query = " LEFT JOIN chart_repo ch ON (aps.chart_repo_id = ch.id and ch.deleted IS FALSE)" + |
135 | 142 | " LEFT JOIN docker_artifact_store das ON aps.docker_artifact_store_id = das.id" + |
136 | 143 | " LEFT JOIN oci_registry_config oci ON oci.docker_artifact_store_id = das.id" + |
137 | | - " WHERE (asv.latest IS TRUE AND (ch.active IS TRUE OR (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)))" |
| 144 | + fmt.Sprintf(" WHERE (asv.id IN (%s) AND (ch.active IS TRUE OR (das.active IS TRUE AND oci.deleted IS FALSE AND oci.is_chart_pull_active IS TRUE)))", latestAppStoreVersionQuery) |
138 | 145 | } |
139 | 146 | } |
140 | 147 | return query |
@@ -249,7 +256,7 @@ func (impl *AppStoreApplicationVersionRepositoryImpl) FindByAppStoreName(name st |
249 | 256 |
|
250 | 257 | func (impl *AppStoreApplicationVersionRepositoryImpl) SearchAppStoreChartByName(chartName string) ([]*appStoreBean.ChartRepoSearch, error) { |
251 | 258 | var chartRepos []*appStoreBean.ChartRepoSearch |
252 | | - //eryTemp := "select asv.version, asv.icon,asv.deprecated ,asv.id as app_store_application_version_id, aps.*, ch.name as chart_name from app_store_application_version asv inner join app_store aps on asv.app_store_id = aps.id inner join chart_repo ch on aps.chart_repo_id = ch.id where asv.latest is TRUE order by aps.name asc;" |
| 259 | + // eryTemp := "select asv.version, asv.icon,asv.deprecated ,asv.id as app_store_application_version_id, aps.*, ch.name as chart_name from app_store_application_version asv inner join app_store aps on asv.app_store_id = aps.id inner join chart_repo ch on aps.chart_repo_id = ch.id where asv.latest is TRUE order by aps.name asc;" |
253 | 260 | queryTemp := "select asv.id as app_store_application_version_id, asv.version, asv.deprecated, aps.id as chart_id," + |
254 | 261 | " aps.name as chart_name, chr.id as chart_repo_id, chr.name as chart_repo_name" + |
255 | 262 | " from app_store_application_version asv" + |
|
0 commit comments