remove owner field in experiment and metric entity
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
package com.navi.medici.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Getter
|
||||
@Setter
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class LitmusOwner {
|
||||
String emailId;
|
||||
String name;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package com.navi.medici.filters;
|
||||
|
||||
import com.navi.medici.enums.ExperimentStatus;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ExperimentSearchFilter {
|
||||
String experimentOwner;
|
||||
String query;
|
||||
ExperimentStatus experimentStatus;
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.navi.medici.mapper;
|
||||
|
||||
import com.navi.medici.dto.LitmusOwner;
|
||||
import com.navi.medici.entity.ExperimentEntity;
|
||||
import com.navi.medici.dto.ExperimentImpact;
|
||||
import com.navi.medici.enums.ExperimentStatus;
|
||||
@@ -33,9 +32,7 @@ public class ExperimentMapper {
|
||||
? ExperimentStatus.valueOf(experimentEntity.getExperimentStatus())
|
||||
: null)
|
||||
.impact(ExperimentImpact.builder().build())
|
||||
.ownerName(StringUtils.isNotBlank(experimentEntity.getExperimentOwner())
|
||||
? jacksonUtils.stringToObject(experimentEntity.getExperimentOwner(), LitmusOwner.class).getName()
|
||||
: null)
|
||||
.createdBy(experimentEntity.getCreatedBy())
|
||||
.testUsers(experimentEntity.getTestUsers())
|
||||
.primaryMetric(experimentEntity.getPrimaryMetric())
|
||||
.build();
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package com.navi.medici.mapper;
|
||||
|
||||
import com.navi.medici.dto.LitmusOwner;
|
||||
import com.navi.medici.entity.MetricEntity;
|
||||
import com.navi.medici.enums.MetricType;
|
||||
import com.navi.medici.query.experiment.IExperimentQuery;
|
||||
import com.navi.medici.repository.ExperimentRepository;
|
||||
import com.navi.medici.response.MetricResponse;
|
||||
import com.navi.medici.util.JacksonUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -22,9 +18,7 @@ public class MetricMapper {
|
||||
long numberOfExperimentsForMetrics = experimentRepository.countByPrimaryMetric(metricEntity.getMetricName());
|
||||
return MetricResponse.builder()
|
||||
.metricId(metricEntity.getMetricId())
|
||||
.metricOwner(StringUtils.isNotBlank(metricEntity.getMetricOwner())
|
||||
? jacksonUtils.stringToObject(metricEntity.getMetricOwner(), LitmusOwner.class)
|
||||
: null)
|
||||
.createdBy(metricEntity.getCreatedBy())
|
||||
.metricName(metricEntity.getMetricName())
|
||||
.metricType(StringUtils.isNotBlank(metricEntity.getMetricType())
|
||||
? jacksonUtils.stringToObject(metricEntity.getMetricType(), MetricType.class)
|
||||
|
||||
@@ -17,4 +17,5 @@ public class CreateMetricRequest {
|
||||
String metricName;
|
||||
String athenaQuery;
|
||||
MetricType metricType;
|
||||
String createdBy;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import lombok.experimental.FieldDefaults;
|
||||
public class ExperimentResponse {
|
||||
String experimentId;
|
||||
String experimentName;
|
||||
String ownerName;
|
||||
String createdBy;
|
||||
String primaryMetric;
|
||||
ExperimentImpact impact;
|
||||
Long testUsers;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.navi.medici.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.navi.medici.dto.LitmusOwner;
|
||||
import com.navi.medici.enums.MetricType;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -24,7 +23,7 @@ public class MetricResponse {
|
||||
String metricId;
|
||||
String metricName;
|
||||
MetricType metricType;
|
||||
LitmusOwner metricOwner;
|
||||
String createdBy;
|
||||
LocalDateTime updatedAt;
|
||||
Long numberOfExperiments;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.navi.medici.entity.MetricEntity;
|
||||
import com.navi.medici.mapper.MetricMapper;
|
||||
import com.navi.medici.repository.MetricRepository;
|
||||
import com.navi.medici.request.CreateMetricRequest;
|
||||
import com.navi.medici.dto.LitmusOwner;
|
||||
import com.navi.medici.response.MetricResponse;
|
||||
import com.navi.medici.util.JacksonUtils;
|
||||
import com.navi.medici.validator.MetricValidator;
|
||||
@@ -31,7 +30,7 @@ public class MetricServiceImpl implements MetricService {
|
||||
.metricId(UUID.randomUUID().toString())
|
||||
.metricName(createMetricRequest.getMetricName())
|
||||
.metricType(jacksonUtils.objectToString(createMetricRequest.getMetricType()))
|
||||
.metricOwner(jacksonUtils.objectToString(LitmusOwner.builder().build()))
|
||||
.createdBy(createMetricRequest.getCreatedBy())
|
||||
.athenaQuery(createMetricRequest.getAthenaQuery())
|
||||
.build();
|
||||
return metricMapper.mapMetricEntityToMetricResponse(metricRepository.save(metric));
|
||||
|
||||
@@ -28,7 +28,7 @@ public class ExperimentSpecification {
|
||||
cb.or(
|
||||
cb.like(
|
||||
cb.lower(root.get("name")),
|
||||
value.toLowerCase()+"%"
|
||||
"%"+value.toLowerCase()+"%"
|
||||
),
|
||||
cb.like(
|
||||
cb.lower(root.get("primaryMetric")),
|
||||
@@ -50,10 +50,7 @@ public class ExperimentSpecification {
|
||||
Optional.ofNullable(owner).ifPresent(value -> {
|
||||
predicateList.add(
|
||||
cb.equal(
|
||||
cb.function("jsonb_extract_path_text",
|
||||
String.class,
|
||||
root.get("experimentOwner"),
|
||||
cb.literal("emailId")),
|
||||
root.get("createdBy"),
|
||||
value
|
||||
)
|
||||
);
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.navi.medici.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.navi.medici.controller.v1.ExperimentController;
|
||||
import com.navi.medici.dto.LitmusOwner;
|
||||
import com.navi.medici.enums.ExperimentStatus;
|
||||
import com.navi.medici.request.ExperimentSearchRequest;
|
||||
import com.navi.medici.request.v1.LitmusExperiment;
|
||||
@@ -19,7 +18,6 @@ import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
@@ -28,7 +26,6 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.navi.medici.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -6,33 +6,24 @@ import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Version;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import org.hibernate.annotations.CreationTimestamp;
|
||||
import org.hibernate.annotations.UpdateTimestamp;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Entity
|
||||
@Table(name = "experiments")
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ExperimentEntity {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
Long id;
|
||||
public class ExperimentEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "experiment_id")
|
||||
String experimentId;
|
||||
@@ -68,23 +59,10 @@ public class ExperimentEntity {
|
||||
@Column(name = "vertical")
|
||||
String vertical;
|
||||
|
||||
@Version
|
||||
private Integer version;
|
||||
|
||||
@Column(name = "created_at")
|
||||
@CreationTimestamp
|
||||
LocalDateTime createdAt;
|
||||
|
||||
@Column(name = "updated_at")
|
||||
@UpdateTimestamp
|
||||
LocalDateTime updatedAt;
|
||||
|
||||
String primaryMetric;
|
||||
|
||||
String secondaryMetric;
|
||||
|
||||
String experimentOwner;
|
||||
|
||||
Long sampleSizeRequired;
|
||||
|
||||
Double baselineConversion;
|
||||
|
||||
@@ -8,6 +8,7 @@ import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.hibernate.annotations.Type;
|
||||
import org.hibernate.annotations.TypeDef;
|
||||
import org.springframework.jmx.support.MetricType;
|
||||
@@ -22,7 +23,7 @@ import javax.persistence.Table;
|
||||
@Table(name = "metrics")
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
@@ -33,7 +34,5 @@ public class MetricEntity extends BaseEntity{
|
||||
|
||||
String metricType;
|
||||
|
||||
String metricOwner;
|
||||
|
||||
String athenaQuery;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.hibernate.annotations.CreationTimestamp;
|
||||
import org.hibernate.annotations.UpdateTimestamp;
|
||||
|
||||
@@ -27,14 +28,11 @@ import org.hibernate.annotations.UpdateTimestamp;
|
||||
@Table(name = "segments")
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class SegmentEntity {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
public class SegmentEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "segment_id")
|
||||
String segmentId;
|
||||
@@ -51,15 +49,4 @@ public class SegmentEntity {
|
||||
@Column(name = "segment_type")
|
||||
@Enumerated(EnumType.STRING)
|
||||
SegmentType segmentType;
|
||||
|
||||
@Version
|
||||
private Integer version;
|
||||
|
||||
@Column(name = "created_at")
|
||||
@CreationTimestamp
|
||||
LocalDateTime createdAt;
|
||||
|
||||
@Column(name = "updated_at")
|
||||
@UpdateTimestamp
|
||||
LocalDateTime updatedAt;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
--liquibase formatted sql
|
||||
|
||||
--changeset author:akshatsonic id:202302211500
|
||||
|
||||
ALTER TABLE experiments
|
||||
DROP COLUMN experiment_owner;
|
||||
|
||||
ALTER TABLE metrics
|
||||
DROP COLUMN metric_owner;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user