From 08e1cad3e1ba716dc2862236630cc8bf0deb3303 Mon Sep 17 00:00:00 2001 From: siarhei_hrabko Date: Fri, 16 Feb 2024 09:58:43 +0300 Subject: [PATCH] EPMRPP-89198 organizations routing refactoring --- .../commons/querygen/FilterTarget.java | 30 ++++++++++++++++--- .../constant/ProjectCriteriaConstant.java | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/epam/ta/reportportal/commons/querygen/FilterTarget.java b/src/main/java/com/epam/ta/reportportal/commons/querygen/FilterTarget.java index aaa6bc07d..774ec75bf 100644 --- a/src/main/java/com/epam/ta/reportportal/commons/querygen/FilterTarget.java +++ b/src/main/java/com/epam/ta/reportportal/commons/querygen/FilterTarget.java @@ -68,6 +68,7 @@ import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_ALLOCATED_STORAGE; import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_ATTRIBUTE_NAME; import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_CREATION_DATE; +import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_KEY; import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_NAME; import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_ORGANIZATION; import static com.epam.ta.reportportal.commons.querygen.constant.ProjectCriteriaConstant.CRITERIA_PROJECT_TYPE; @@ -183,6 +184,8 @@ public enum FilterTarget { PROJECT.ALLOCATED_STORAGE, Long.class).get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_NAME, PROJECT.NAME, String.class) .get(), + new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_KEY, PROJECT.KEY, String.class) + .get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_ORGANIZATION, PROJECT.ORGANIZATION, String.class).get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_TYPE, PROJECT.PROJECT_TYPE, @@ -268,6 +271,8 @@ protected Field idField() { new CriteriaHolderBuilder().newBuilder(CRITERIA_ID, PROJECT.ID, Long.class).get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_NAME, PROJECT.NAME, String.class) .get(), + new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_KEY, PROJECT.KEY, String.class) + .get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_TYPE, PROJECT.PROJECT_TYPE, String.class).get(), @@ -296,7 +301,7 @@ protected Field idField() { public QuerySupplier getQuery() { SelectQuery query = DSL.select(selectFields()).getQuery(); addFrom(query); - query.addGroupBy(PROJECT.ID, PROJECT.CREATION_DATE, PROJECT.NAME, PROJECT.PROJECT_TYPE); + query.addGroupBy(PROJECT.ID, PROJECT.CREATION_DATE, PROJECT.KEY, PROJECT.PROJECT_TYPE); QuerySupplier querySupplier = new QuerySupplier(query); joinTables(querySupplier); return querySupplier; @@ -312,9 +317,12 @@ protected Collection selectFields() { DSL.max(LAUNCH.START_TIME).as(LAST_RUN), PROJECT.ID, PROJECT.CREATION_DATE, - PROJECT.NAME, + PROJECT.KEY, + PROJECT.SLUG, + PROJECT.KEY, PROJECT.PROJECT_TYPE, - PROJECT.ORGANIZATION + PROJECT.ORGANIZATION, + PROJECT.ORGANIZATION_ID ); } @@ -360,6 +368,12 @@ protected Field idField() { new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT, PROJECT.NAME, List.class) .withAggregateCriteria(DSL.arrayAgg(PROJECT.NAME).toString()) .get(), + new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT, PROJECT.KEY, List.class) + .withAggregateCriteria(DSL.arrayAgg(PROJECT.KEY).toString()) + .get(), + new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT, PROJECT.ORGANIZATION_ID, List.class) + .withAggregateCriteria(DSL.arrayAgg(PROJECT.ORGANIZATION_ID).toString()) + .get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_LAST_LOGIN, "(" + USERS.METADATA + "-> 'metadata' ->> 'last_login')::DOUBLE PRECISION ", Long.class @@ -385,6 +399,9 @@ protected Collection selectFields() { USERS.ROLE, USERS.METADATA, PROJECT.NAME, + PROJECT.KEY, + PROJECT.SLUG, + PROJECT.ORGANIZATION_ID, PROJECT.PROJECT_TYPE, PROJECT_USER.PROJECT_ID, PROJECT_USER.PROJECT_ROLE, @@ -1197,6 +1214,8 @@ protected Field idField() { new CriteriaHolderBuilder().newBuilder(CRITERIA_NAME, INTEGRATION_TYPE.NAME, String.class) .get(), new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_NAME, PROJECT.NAME, String.class) + .get(), + new CriteriaHolderBuilder().newBuilder(CRITERIA_PROJECT_KEY, PROJECT.KEY, String.class) .get() )) { @Override @@ -1210,7 +1229,10 @@ protected Collection selectFields() { INTEGRATION.CREATION_DATE, INTEGRATION_TYPE.NAME, INTEGRATION_TYPE.GROUP_TYPE, - PROJECT.NAME + PROJECT.NAME, + PROJECT.KEY, + PROJECT.SLUG, + PROJECT.ORGANIZATION_ID ); } diff --git a/src/main/java/com/epam/ta/reportportal/commons/querygen/constant/ProjectCriteriaConstant.java b/src/main/java/com/epam/ta/reportportal/commons/querygen/constant/ProjectCriteriaConstant.java index 59a667720..2b2de0004 100644 --- a/src/main/java/com/epam/ta/reportportal/commons/querygen/constant/ProjectCriteriaConstant.java +++ b/src/main/java/com/epam/ta/reportportal/commons/querygen/constant/ProjectCriteriaConstant.java @@ -23,6 +23,8 @@ public final class ProjectCriteriaConstant { public static final String CRITERIA_PROJECT_TYPE = "type"; public static final String CRITERIA_PROJECT_NAME = "name"; + public static final String CRITERIA_PROJECT_KEY = "key"; + public static final String CRITERIA_PROJECT_SLUG = "slug"; public static final String CRITERIA_ALLOCATED_STORAGE = "allocatedStorage"; public static final String CRITERIA_PROJECT_ORGANIZATION = "organization"; public static final String CRITERIA_PROJECT_CREATION_DATE = "creationDate";