From 8fae68fa0eee6852f4dc0eeca3c7d4015823674b Mon Sep 17 00:00:00 2001 From: akshat-sonic Date: Mon, 13 Feb 2023 16:31:13 +0530 Subject: [PATCH] temp commit --- .../controller/v1/MetricController.java | 17 ++++++++ .../com/navi/medici/entity/BaseEntity.java | 42 +++++++++++++++++++ .../navi/medici/entity/ExperimentEntity.java | 5 +++ .../com/navi/medici/entity/MetricEntity.java | 36 ++++++++++++++++ .../medici/repository/MetricRepository.java | 8 ++++ .../202302131535-add-metrics-table.sql | 18 ++++++++ .../com/navi/medici/enums/MetricType.java | 12 ++++++ local_core.env | 12 ++++-- 8 files changed, 146 insertions(+), 4 deletions(-) create mode 100644 litmus-core/src/main/java/com/navi/medici/controller/v1/MetricController.java create mode 100644 litmus-db/src/main/java/com/navi/medici/entity/BaseEntity.java create mode 100644 litmus-db/src/main/java/com/navi/medici/entity/MetricEntity.java create mode 100644 litmus-db/src/main/java/com/navi/medici/repository/MetricRepository.java create mode 100644 litmus-liquibase/src/main/resources/db/changelog/202302131535-add-metrics-table.sql create mode 100644 litmus-model/src/main/java/com/navi/medici/enums/MetricType.java diff --git a/litmus-core/src/main/java/com/navi/medici/controller/v1/MetricController.java b/litmus-core/src/main/java/com/navi/medici/controller/v1/MetricController.java new file mode 100644 index 0000000..d2cba77 --- /dev/null +++ b/litmus-core/src/main/java/com/navi/medici/controller/v1/MetricController.java @@ -0,0 +1,17 @@ +package com.navi.medici.controller.v1; + +import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/v1/metrics") +@Log4j2 +@RequiredArgsConstructor +public class MetricController { + + @PostMapping + public MetricResponse +} diff --git a/litmus-db/src/main/java/com/navi/medici/entity/BaseEntity.java b/litmus-db/src/main/java/com/navi/medici/entity/BaseEntity.java new file mode 100644 index 0000000..ed5852b --- /dev/null +++ b/litmus-db/src/main/java/com/navi/medici/entity/BaseEntity.java @@ -0,0 +1,42 @@ +package com.navi.medici.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.SuperBuilder; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.Version; +import java.time.LocalDateTime; + +@MappedSuperclass +@Getter +@Setter +@NoArgsConstructor +@SuperBuilder +public abstract class BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(updatable = false, nullable = false) + private Long id; + + @CreationTimestamp + @JsonIgnore + @Column(updatable = false) + private LocalDateTime createdAt; + + @UpdateTimestamp + @JsonIgnore + private LocalDateTime updatedAt; + + @Version + private int version; +} diff --git a/litmus-db/src/main/java/com/navi/medici/entity/ExperimentEntity.java b/litmus-db/src/main/java/com/navi/medici/entity/ExperimentEntity.java index 3ba52fe..9a4bb32 100644 --- a/litmus-db/src/main/java/com/navi/medici/entity/ExperimentEntity.java +++ b/litmus-db/src/main/java/com/navi/medici/entity/ExperimentEntity.java @@ -79,4 +79,9 @@ public class ExperimentEntity { @UpdateTimestamp LocalDateTime updatedAt; + @Column(name = "owner") + String experimentOwner; + + + } diff --git a/litmus-db/src/main/java/com/navi/medici/entity/MetricEntity.java b/litmus-db/src/main/java/com/navi/medici/entity/MetricEntity.java new file mode 100644 index 0000000..cd677f6 --- /dev/null +++ b/litmus-db/src/main/java/com/navi/medici/entity/MetricEntity.java @@ -0,0 +1,36 @@ +package com.navi.medici.entity; + +import com.navi.medici.enums.MetricType; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Table; + +@Entity +@Table(name = "metrics") +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@FieldDefaults(level = AccessLevel.PRIVATE) +public class MetricEntity extends BaseEntity{ + + String metricName; + + String metricId; + + @Enumerated(EnumType.STRING) + MetricType metricType; + String metricOwner; + String athenaQuery; + +} diff --git a/litmus-db/src/main/java/com/navi/medici/repository/MetricRepository.java b/litmus-db/src/main/java/com/navi/medici/repository/MetricRepository.java new file mode 100644 index 0000000..77ca528 --- /dev/null +++ b/litmus-db/src/main/java/com/navi/medici/repository/MetricRepository.java @@ -0,0 +1,8 @@ +package com.navi.medici.repository; + +import com.navi.medici.entity.MetricEntity; +import org.springframework.data.repository.CrudRepository; + +public interface MetricRepository extends CrudRepository { + +} diff --git a/litmus-liquibase/src/main/resources/db/changelog/202302131535-add-metrics-table.sql b/litmus-liquibase/src/main/resources/db/changelog/202302131535-add-metrics-table.sql new file mode 100644 index 0000000..6b2b0a3 --- /dev/null +++ b/litmus-liquibase/src/main/resources/db/changelog/202302131535-add-metrics-table.sql @@ -0,0 +1,18 @@ +--liquibase formatted sql + +--changeset author:akshatsonic id:202302131535 +CREATE TABLE metrics ( + id SERIAL PRIMARY KEY, + metric_id varchar(36) NOT NULL, + metric_name varchar(100) NOT NULL, + metric_type varchar(100) NOT NULL, + metric_owner varchar(100) NOT NULL, + athena_query text NOT NULL, + version BIGINT, + created_at timestamp, + updated_at timestamp +); + + +CREATE INDEX idx_metric_id ON metrics(metric_id); +CREATE INDEX idx_metric_name ON metrics(metric_name); diff --git a/litmus-model/src/main/java/com/navi/medici/enums/MetricType.java b/litmus-model/src/main/java/com/navi/medici/enums/MetricType.java new file mode 100644 index 0000000..92ed57b --- /dev/null +++ b/litmus-model/src/main/java/com/navi/medici/enums/MetricType.java @@ -0,0 +1,12 @@ +package com.navi.medici.enums; + +public enum MetricType { + BUSINESS("Business"), + TECH("Tech"); + + private String value; + + MetricType(String value) { + this.value = value; + } +} diff --git a/local_core.env b/local_core.env index f8be88e..dd6a069 100644 --- a/local_core.env +++ b/local_core.env @@ -1,6 +1,10 @@ -DATASOURCE_URL=jdbc:postgresql://dev-db-service-db.np.navi-tech.in:5432/litmus -DATASOURCE_USERNAME=service_user -DATASOURCE_PASSWORD=JRCFCMXUXBJHGZVTPBNTXHYCCFVMWN -REDIS_HOST=dev-env-redis.twod4l.0001.aps1.cache.amazonaws.com +#DATASOURCE_URL=jdbc:postgresql://dev-db-service-db.np.navi-tech.in:5432/litmus +#DATASOURCE_USERNAME=service_user +#DATASOURCE_PASSWORD=JRCFCMXUXBJHGZVTPBNTXHYCCFVMWN +DATASOURCE_URL=jdbc:postgresql://localhost:5432/litmus +DATASOURCE_USERNAME=postgres +DATASOURCE_PASSWORD= +#REDIS_HOST=dev-env-redis.twod4l.0001.aps1.cache.amazonaws.com +REDIS_HOST=localhost SEGMENT_S3_BUCKET= DEFAULT_POLLING_TIME_SECONDS=300 \ No newline at end of file