Skip to content

Commit

Permalink
EPMRPP-95887 removed api models and refactored the code (#1041)
Browse files Browse the repository at this point in the history
* EPMRPP-95887 removed api models and refactored te code
  • Loading branch information
grabsefx authored Oct 14, 2024
1 parent 920d089 commit e9efb6f
Show file tree
Hide file tree
Showing 17 changed files with 110 additions and 112 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ dependencies {
if (releaseMode) {
compile 'com.epam.reportportal:commons'
} else {
implementation 'com.github.reportportal:commons:1fa3eb2'
implementation 'com.github.reportportal:commons:9ee1332'
}

implementation 'io.swagger.core.v3:swagger-annotations:2.2.9'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,6 @@
import static org.jooq.impl.DSL.choose;
import static org.jooq.impl.DSL.field;

import com.epam.reportportal.api.model.ProjectProfile;
import com.epam.ta.reportportal.commons.querygen.constant.TestItemCriteriaConstant;
import com.epam.ta.reportportal.commons.querygen.query.JoinEntity;
import com.epam.ta.reportportal.commons.querygen.query.QuerySupplier;
Expand All @@ -173,6 +172,7 @@
import com.epam.ta.reportportal.entity.organization.OrganizationUserFilter;
import com.epam.ta.reportportal.entity.project.Project;
import com.epam.ta.reportportal.entity.project.ProjectInfo;
import com.epam.ta.reportportal.entity.project.ProjectProfile;
import com.epam.ta.reportportal.entity.user.User;
import com.epam.ta.reportportal.entity.widget.Widget;
import com.epam.ta.reportportal.jooq.enums.JIntegrationGroupEnum;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import com.epam.ta.reportportal.dao.FilterableRepository;
import com.epam.ta.reportportal.entity.organization.Organization;
import com.epam.reportportal.api.model.OrganizationProfile;
import com.epam.ta.reportportal.entity.organization.OrganizationProfile;
import java.util.Optional;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import com.epam.ta.reportportal.commons.querygen.QueryBuilder;
import com.epam.ta.reportportal.commons.querygen.Queryable;
import com.epam.ta.reportportal.entity.organization.Organization;
import com.epam.reportportal.api.model.OrganizationProfile;
import com.epam.ta.reportportal.entity.organization.OrganizationProfile;
import java.util.List;
import java.util.Optional;
import org.jooq.DSLContext;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package com.epam.ta.reportportal.dao.organization;

import com.epam.reportportal.api.model.OrganizationUserAccount;
import com.epam.ta.reportportal.dao.FilterableRepository;
import com.epam.ta.reportportal.entity.organization.OrganizationUserAccount;

/**
* Repository interface for searching and filtering organization records.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

import static com.epam.ta.reportportal.dao.util.OrganizationMapper.ORGANIZATION_USERS_LIST_FETCHER;

import com.epam.reportportal.api.model.OrganizationUserAccount;
import com.epam.ta.reportportal.commons.querygen.QueryBuilder;
import com.epam.ta.reportportal.commons.querygen.Queryable;
import com.epam.ta.reportportal.entity.organization.OrganizationUserAccount;
import java.util.List;
import org.jooq.DSLContext;
import org.jooq.Record;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.epam.ta.reportportal.dao.project;

import com.epam.ta.reportportal.commons.querygen.Queryable;
import com.epam.reportportal.api.model.ProjectProfile;
import com.epam.ta.reportportal.entity.project.ProjectProfile;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import static com.epam.ta.reportportal.dao.util.ResultFetchers.ORGANIZATION_PROJECT_LIST_FETCHER;

import com.epam.reportportal.api.model.ProjectProfile;
import com.epam.ta.reportportal.commons.querygen.QueryBuilder;
import com.epam.ta.reportportal.commons.querygen.Queryable;
import com.epam.ta.reportportal.entity.project.ProjectProfile;
import org.jooq.DSLContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,21 @@
import static com.epam.ta.reportportal.jooq.Tables.ORGANIZATION_USER;
import static com.epam.ta.reportportal.jooq.tables.JUsers.USERS;

import com.epam.reportportal.api.model.OrganizationInfo.TypeEnum;
import com.epam.reportportal.api.model.OrganizationProfile;
import com.epam.reportportal.api.model.OrganizationRelationRelationships;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsLaunches;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsLaunchesMeta;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsProjects;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsProjectsMeta;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsUsers;
import com.epam.reportportal.api.model.OrganizationRelationRelationshipsUsersMeta;
import com.epam.reportportal.api.model.OrganizationUserAccount;
import com.epam.reportportal.api.model.OrganizationUserAccount.OrgRoleEnum;
import com.epam.reportportal.api.model.OrganizationUserRelationRelationships;
import com.epam.reportportal.api.model.OrganizationUserRelationRelationshipsProjects;
import com.epam.reportportal.api.model.OrganizationUserRelationRelationshipsProjectsMeta;
import com.epam.reportportal.api.model.UserAccount.InstanceRoleEnum;
import com.epam.reportportal.api.model.UserMetadata.AuthProviderEnum;
import com.epam.ta.reportportal.entity.organization.Organization;
import com.epam.ta.reportportal.entity.organization.OrganizationFilter;
import com.epam.ta.reportportal.entity.organization.OrganizationProfile;
import com.epam.ta.reportportal.entity.organization.OrganizationRole;
import com.epam.ta.reportportal.entity.organization.OrganizationUserAccount;
import com.epam.ta.reportportal.entity.user.UserRole;
import com.epam.ta.reportportal.entity.user.UserType;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.function.Function;
import org.jooq.Record;
import org.jooq.RecordMapper;
Expand Down Expand Up @@ -82,32 +72,12 @@ private OrganizationMapper() {
organization.setName(row.get(ORGANIZATION.NAME, String.class));
organization.setSlug(row.get(ORGANIZATION.SLUG, String.class));
organization.setExternalId(row.get(ORGANIZATION.EXTERNAL_ID, String.class));
organization.setType(TypeEnum.valueOf(row.get(ORGANIZATION.ORGANIZATION_TYPE)));
organization.setType(row.get(ORGANIZATION.ORGANIZATION_TYPE, String.class));

// set launches
OrganizationRelationRelationshipsLaunches orl = new OrganizationRelationRelationshipsLaunches();
orl.meta(new OrganizationRelationRelationshipsLaunchesMeta()
.count(row.get(OrganizationFilter.LAUNCHES_QUANTITY, Integer.class))
.lastOccurredAt(row.get(OrganizationFilter.LAST_RUN, Instant.class)));

// set projects
OrganizationRelationRelationshipsProjects rp = new OrganizationRelationRelationshipsProjects();
rp.meta(new OrganizationRelationRelationshipsProjectsMeta()
.count(row.get(PROJECTS_QUANTITY, Integer.class)));

// set users
OrganizationRelationRelationshipsUsersMeta usersMeta =
new OrganizationRelationRelationshipsUsersMeta()
.count(row.get(OrganizationFilter.USERS_QUANTITY, Integer.class));
OrganizationRelationRelationshipsUsers oru = new OrganizationRelationRelationshipsUsers()
.meta(usersMeta);

OrganizationRelationRelationships organizationRelation = new OrganizationRelationRelationships()
.launches(orl)
.projects(rp)
.users(oru);

organization.setRelationships(organizationRelation);
organization.setLaunchesQuantity(row.get(OrganizationFilter.LAUNCHES_QUANTITY, Integer.class));
organization.setLastRun(row.get(OrganizationFilter.LAST_RUN, Instant.class));
organization.setProjectsQuantity(row.get(PROJECTS_QUANTITY, Integer.class));
organization.setUsersQuantity(row.get(OrganizationFilter.USERS_QUANTITY, Integer.class));

return organization;
};
Expand All @@ -123,11 +93,11 @@ private OrganizationMapper() {
organizationUserProfile.setFullName(row.get(USERS.FULL_NAME));
organizationUserProfile.setCreatedAt(row.get(USERS.CREATED_AT, Instant.class));
organizationUserProfile.setUpdatedAt(row.get(USERS.UPDATED_AT, Instant.class));
organizationUserProfile.setInstanceRole(InstanceRoleEnum.fromValue(row.get(USERS.ROLE)));
organizationUserProfile.setInstanceRole(UserRole.valueOf(row.get(USERS.ROLE)));
organizationUserProfile.setOrgRole(
OrgRoleEnum.fromValue(
OrganizationRole.valueOf(
row.get(ORGANIZATION_USER.ORGANIZATION_ROLE.getName(), String.class)));
organizationUserProfile.setAuthProvider(AuthProviderEnum.fromValue(row.get(USERS.TYPE)));
organizationUserProfile.setAuthProvider(UserType.valueOf(row.get(USERS.TYPE)));
organizationUserProfile.setEmail(row.get(USERS.EMAIL));

Optional.ofNullable(row.field(USERS.METADATA))
Expand All @@ -143,18 +113,11 @@ private OrganizationMapper() {
.ifPresent(
extId -> organizationUserProfile.setExternalId(row.get(ORGANIZATION.EXTERNAL_ID)));

// organizationUserProfile.setUuid(row.get(USERS.EXTERNAL_ID, UUID.class));// uncomment later

OrganizationUserRelationRelationshipsProjects projects =
new OrganizationUserRelationRelationshipsProjects()
.meta(new OrganizationUserRelationRelationshipsProjectsMeta()
.count(row.get(PROJECTS_QUANTITY, Integer.class))
);

OrganizationUserRelationRelationships organizationUserRelation = new OrganizationUserRelationRelationships()
.projects(projects);
Optional.ofNullable(row.field(ORGANIZATION.EXTERNAL_ID))
.ifPresent(
extId -> organizationUserProfile.setUuid(row.get(ORGANIZATION.EXTERNAL_ID, UUID.class)));

organizationUserProfile.setRelationships(organizationUserRelation);
organizationUserProfile.setProjectCount(row.get(PROJECTS_QUANTITY, Integer.class));

userProfiles.add(organizationUserProfile);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@
import com.epam.ta.reportportal.entity.log.Log;
import com.epam.ta.reportportal.entity.organization.MembershipDetails;
import com.epam.ta.reportportal.entity.organization.Organization;
import com.epam.ta.reportportal.entity.organization.OrganizationProfile;
import com.epam.ta.reportportal.entity.organization.OrganizationRole;
import com.epam.ta.reportportal.entity.pattern.PatternTemplate;
import com.epam.ta.reportportal.entity.project.Project;
Expand All @@ -103,9 +104,6 @@
import com.epam.ta.reportportal.entity.widget.WidgetOptions;
import com.epam.ta.reportportal.jooq.Tables;
import com.epam.ta.reportportal.jooq.tables.JLog;
import com.epam.reportportal.api.model.OrganizationInfo;
import com.epam.reportportal.api.model.OrganizationProfile;
import com.epam.reportportal.api.model.OrganizationRelation;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
Expand Down Expand Up @@ -205,24 +203,6 @@ public class RecordMappers {
return project;
};

/**
* Maps record into {@link Organization} object
*/
public static final RecordMapper<? super Record, OrganizationProfile> ORGANIZATION_MAPPER = row -> {
OrganizationProfile organization = row.into(OrganizationProfile.class);

organization.setId(row.get(ORGANIZATION.ID, Long.class));
organization.setCreatedAt(row.get(ORGANIZATION.CREATED_AT, Instant.class));
organization.setUpdatedAt(row.get(ORGANIZATION.UPDATED_AT, Instant.class));
organization.setName(row.get(ORGANIZATION.NAME, String.class));
organization.setSlug(row.get(ORGANIZATION.SLUG, String.class));
organization.setExternalId(row.get(ORGANIZATION.EXTERNAL_ID, String.class));
organization.setType(OrganizationInfo.TypeEnum.valueOf(row.get(ORGANIZATION.ORGANIZATION_TYPE)));
OrganizationRelation organizationRelation = new OrganizationRelation();

return organization;
};


/**
* Maps record into {@link TestItemResults} object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,6 @@
import static com.epam.ta.reportportal.jooq.tables.JUsers.USERS;
import static java.util.Optional.ofNullable;

import com.epam.reportportal.api.model.OrganizationProfile;
import com.epam.reportportal.api.model.ProjectProfile;
import com.epam.reportportal.api.model.ProjectRelationshipsRelationships;
import com.epam.reportportal.api.model.ProjectRelationshipsRelationshipsLaunches;
import com.epam.reportportal.api.model.ProjectRelationshipsRelationshipsLaunchesMeta;
import com.epam.reportportal.api.model.ProjectRelationshipsRelationshipsUsers;
import com.epam.reportportal.api.model.ProjectRelationshipsRelationshipsUsersMeta;
import com.epam.reportportal.rules.exception.ErrorType;
import com.epam.reportportal.rules.exception.ReportPortalException;
import com.epam.ta.reportportal.commons.ReportPortalUser;
Expand All @@ -70,9 +63,11 @@
import com.epam.ta.reportportal.entity.log.Log;
import com.epam.ta.reportportal.entity.organization.Organization;
import com.epam.ta.reportportal.entity.organization.OrganizationFilter;
import com.epam.ta.reportportal.entity.organization.OrganizationProfile;
import com.epam.ta.reportportal.entity.pattern.PatternTemplateTestItem;
import com.epam.ta.reportportal.entity.project.Project;
import com.epam.ta.reportportal.entity.project.ProjectAttribute;
import com.epam.ta.reportportal.entity.project.ProjectProfile;
import com.epam.ta.reportportal.entity.user.OrganizationUser;
import com.epam.ta.reportportal.entity.user.ProjectUser;
import com.epam.ta.reportportal.entity.user.User;
Expand Down Expand Up @@ -489,23 +484,9 @@ private ResultFetchers() {
projectProfile.setSlug(row.get(PROJECT.SLUG));
projectProfile.setName(row.get(PROJECT.NAME, String.class));

ProjectRelationshipsRelationshipsLaunches prl = new ProjectRelationshipsRelationshipsLaunches();
// set launches
prl.meta(new ProjectRelationshipsRelationshipsLaunchesMeta()
.count(row.get(OrganizationFilter.LAUNCHES_QUANTITY, Integer.class))
.lastOccurredAt(row.get(OrganizationFilter.LAST_RUN, Instant.class)));

// set users
ProjectRelationshipsRelationshipsUsersMeta usersMeta = new ProjectRelationshipsRelationshipsUsersMeta()
.count(row.get(OrganizationFilter.USERS_QUANTITY, Integer.class));
ProjectRelationshipsRelationshipsUsers oru = new ProjectRelationshipsRelationshipsUsers()
.meta(usersMeta);

ProjectRelationshipsRelationships relationships = new ProjectRelationshipsRelationships()
.launches(prl)
.users(oru);

projectProfile.setRelationships(relationships);
projectProfile.setLaunchesQuantity(row.get(OrganizationFilter.LAUNCHES_QUANTITY, Integer.class));
projectProfile.setLastRun(row.get(OrganizationFilter.LAST_RUN, Instant.class));
projectProfile.setUsersQuantity(row.get(OrganizationFilter.USERS_QUANTITY, Integer.class));

projectProfiles.add(projectProfile);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.epam.ta.reportportal.entity.organization;

import java.time.Instant;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class OrganizationProfile {

private Long id;
private Instant createdAt;
private Instant updatedAt;
private String name;
private String slug;
private String externalId;
private String type;
private Integer launchesQuantity;
private Instant lastRun;
private Integer projectsQuantity;
private Integer usersQuantity;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.epam.ta.reportportal.entity.organization;

import com.epam.ta.reportportal.entity.user.UserRole;
import com.epam.ta.reportportal.entity.user.UserType;
import java.time.Instant;
import java.util.UUID;
import lombok.Data;

@Data
public class OrganizationUserAccount {

private Long id;
private String fullName;
private Instant createdAt;
private Instant updatedAt;
private UserRole instanceRole;
private OrganizationRole orgRole;
private UserType authProvider;
private String email;
private Instant lastLoginAt;
private String externalId;
private UUID uuid;
private Integer projectCount;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.epam.ta.reportportal.entity.project;

import java.time.Instant;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class ProjectProfile {

private Long id;
private Long organizationId;
private Instant createdAt;
private Instant updatedAt;
private String key;
private String slug;
private String name;

private Integer launchesQuantity;
private Instant lastRun;
private Integer usersQuantity;
}
Loading

0 comments on commit e9efb6f

Please sign in to comment.