Commit 8dc94187 authored by Kali Padhi's avatar Kali Padhi

Added EndofSale Database logic

parent e3199ff0
...@@ -16,7 +16,7 @@ configurations { ...@@ -16,7 +16,7 @@ configurations {
repositories { repositories {
flatDir { flatDir {
dirs 'C:\\Users\\sgandhi\\.m2\\repository\\com\\nisum\\exceptionservice\\0.0.1' dirs 'C:\\Users\\kpadhi\\.m2\\repository\\com\\nisum\\exceptionservice\\0.0.1'
} }
mavenCentral() mavenCentral()
} }
...@@ -32,6 +32,11 @@ dependencies { ...@@ -32,6 +32,11 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') testImplementation('org.springframework.boot:spring-boot-starter-test')
compile 'com.nisum:exceptionservice:0.0.1' compile 'com.nisum:exceptionservice:0.0.1'
// https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl
compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.0'
// https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-parent
compile 'com.vladmihalcea:hibernate-types-52:2.0.0'
implementation group: 'junit', name: 'junit', version: '4.12' implementation group: 'junit', name: 'junit', version: '4.12'
testImplementation('org.springframework.boot:spring-boot-starter-test') testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.0.3.RELEASE' testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.0.3.RELEASE'
......
...@@ -57,6 +57,28 @@ INSERT INTO public.offerlookup( ...@@ -57,6 +57,28 @@ INSERT INTO public.offerlookup(
VALUES ('1234567890','0001','002','UPC','01','AND'); VALUES ('1234567890','0001','002','UPC','01','AND');
Create a table for end of sale
==============================
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE endofsale(
uuid uuid NOT NULL DEFAULT uuid_generate_v1(),
offertransactionresponse jsonb NOT NULL,
offers jsonb NOT NULL
);
dummy data
==========
INSERT INTO endofsale VALUES ( uuid_generate_v4() ,
'{"name": "Paint house", "tags": ["Improvements", "Office"], "finished": true}',
'{"name": "Paint house", "tags": ["Improvements", "Office"], "finished": true}' );
......
...@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException;
import java.util.UUID; import java.util.UUID;
@RestController @RestController
...@@ -32,7 +33,7 @@ public class OfferTransactionController { ...@@ -32,7 +33,7 @@ public class OfferTransactionController {
@PostMapping("endOfSale") @PostMapping("endOfSale")
public ResponseEntity<String> endOfSale(@Valid @RequestBody EndOfSaleReq endOfSaleReq) { public ResponseEntity<String> endOfSale(@Valid @RequestBody EndOfSaleReq endOfSaleReq) throws IOException {
UUID uuid = endOfSaleService.putEndofSaleResInDb(endOfSaleReq); UUID uuid = endOfSaleService.putEndofSaleResInDb(endOfSaleReq);
return new ResponseEntity<String>(uuid.toString(), HttpStatus.OK); return new ResponseEntity<String>(uuid.toString(), HttpStatus.OK);
} }
......
package com.nisum.offertransactionservice.model; package com.nisum.offertransactionservice.model;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
...@@ -19,21 +22,25 @@ import java.util.UUID; ...@@ -19,21 +22,25 @@ import java.util.UUID;
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = false) @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = false)
@Entity @Entity
@Table(name = "endofsale") @Table(name = "endofsale")
@TypeDef(
name = "jsonb",
typeClass = JsonBinaryType.class
)
public class EndOfSaleEntity { public class EndOfSaleEntity {
@Id @Id
@Column(name = "uuid") @Column(name = "uuid")
UUID uuid; UUID uuid;
/*
*
* offerTransaction Response and offers
* Can we put these data in JSON_PAYLOAD
*
*
* */
@Type(type = "jsonb")
@Column(name = "offertransactionresponse") @Column(name = "offertransactionresponse")
String offerTransactionResponse;
OfferTransactionResponse offerTransactionResponse; //OfferTransactionResponse offerTransactionResponse;
@Type(type = "jsonb")
@Column(name = "offers") @Column(name = "offers")
List<OfferLookup> offers; String offers;
//List<OfferLookup> offers;
} }
...@@ -4,9 +4,11 @@ import com.nisum.offertransactionservice.dao.EndOfSaleRepo; ...@@ -4,9 +4,11 @@ import com.nisum.offertransactionservice.dao.EndOfSaleRepo;
import com.nisum.offertransactionservice.model.EndOfSaleReq; import com.nisum.offertransactionservice.model.EndOfSaleReq;
import com.nisum.offertransactionservice.model.EndOfSaleEntity; import com.nisum.offertransactionservice.model.EndOfSaleEntity;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.UUID; import java.util.UUID;
@Service @Service
...@@ -16,10 +18,17 @@ public class EndOfSaleService { ...@@ -16,10 +18,17 @@ public class EndOfSaleService {
@Autowired @Autowired
private EndOfSaleRepo endOfSaleRepo; private EndOfSaleRepo endOfSaleRepo;
public UUID putEndofSaleResInDb(EndOfSaleReq endOfSaleReq){
public UUID putEndofSaleResInDb(EndOfSaleReq endOfSaleReq) throws IOException {
ObjectMapper mapper = new ObjectMapper();
String offerTransactionResponseJson = mapper.writeValueAsString(endOfSaleReq.getOfferTransactionResponse());
String offersJosn = mapper.writeValueAsString(endOfSaleReq.getOffers());
EndOfSaleEntity endOfSaleEntity = new EndOfSaleEntity(); EndOfSaleEntity endOfSaleEntity = new EndOfSaleEntity();
endOfSaleEntity.setOfferTransactionResponse(endOfSaleReq.getOfferTransactionResponse()); endOfSaleEntity.setOfferTransactionResponse(offerTransactionResponseJson);
endOfSaleEntity.setOffers(endOfSaleReq.getOffers()); endOfSaleEntity.setOffers(offersJosn);
endOfSaleEntity.setUuid(UUID.randomUUID()); endOfSaleEntity.setUuid(UUID.randomUUID());
endOfSaleRepo.save(endOfSaleEntity); endOfSaleRepo.save(endOfSaleEntity);
return endOfSaleEntity.getUuid(); return endOfSaleEntity.getUuid();
......
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/user spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/postgres
spring.datasource.username=user spring.datasource.username=user
spring.datasource.password=password123 spring.datasource.password=password123
promotion.engine.calculate.discount.url=/promotionEngine/calculateDiscount promotion.engine.calculate.discount.url=/promotionEngine/calculateDiscount
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment