Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OTSWithFeign
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Siva Naga Someswara Jatla
OTSWithFeign
Commits
10d431e4
Commit
10d431e4
authored
Apr 21, 2020
by
Siva Naga Someswara Jatla
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sonar fixes.
parent
286d3491
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
40 additions
and
67 deletions
+40
-67
ClientService.java
...m/nisum/offertransactionservice/client/ClientService.java
+5
-4
OfferTransactionConfig.java
...ffertransactionservice/config/OfferTransactionConfig.java
+0
-5
OfferTransactionController.java
...sactionservice/controller/OfferTransactionController.java
+9
-6
OfferLookupRepo.java
...om/nisum/offertransactionservice/dao/OfferLookupRepo.java
+0
-4
OfferLookupDTO.java
...com/nisum/offertransactionservice/dto/OfferLookupDTO.java
+0
-4
OfferTransactionRequest.java
.../offertransactionservice/dto/OfferTransactionRequest.java
+0
-1
OfferTransactionResponse.java
...offertransactionservice/dto/OfferTransactionResponse.java
+0
-1
PERequest.java
...java/com/nisum/offertransactionservice/dto/PERequest.java
+0
-3
PEResponse.java
...ava/com/nisum/offertransactionservice/dto/PEResponse.java
+0
-1
GlobalApiGenericException.java
...onservice/genericexception/GlobalApiGenericException.java
+1
-1
OfferLookupComposite.java
...m/offertransactionservice/model/OfferLookupComposite.java
+0
-1
EndOfSaleService.java
...sum/offertransactionservice/service/EndOfSaleService.java
+1
-2
EndOfTransactionService.java
...ertransactionservice/service/EndOfTransactionService.java
+1
-13
OfferCallingPEService.java
...ffertransactionservice/service/OfferCallingPEService.java
+2
-5
ExceptionUtil.java
...com/nisum/offertransactionservice/util/ExceptionUtil.java
+11
-5
application.properties
src/main/resources/application.properties
+4
-5
OfferControllerTest.java
...fertransactionservice/controller/OfferControllerTest.java
+1
-1
OfferTransactionControllerIntegrationTest.java
...controller/OfferTransactionControllerIntegrationTest.java
+1
-1
OfferTransactionControllerTest.java
...ionservice/controller/OfferTransactionControllerTest.java
+3
-3
EndOfSaleTest.java
.../nisum/offertransactionservice/service/EndOfSaleTest.java
+1
-1
No files found.
src/main/java/com/nisum/offertransactionservice/client/ClientService.java
View file @
10d431e4
...
...
@@ -3,6 +3,7 @@ package com.nisum.offertransactionservice.client;
import
com.nisum.offertransactionservice.config.OfferTransactionConfig
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
com.nisum.offertransactionservice.util.ExceptionUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
...
...
@@ -62,8 +63,8 @@ public class ClientService {
accept
(
MediaType
.
APPLICATION_JSON
).
body
(
Mono
.
just
(
uuid
),
String
.
class
).
retrieve
().
onStatus
(
HttpStatus:
:
is4xxClientError
,
clientResponse
->
handleError
(
clientResponse
)
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
clientResponse
->
handleError
(
clientResponse
)
).
onStatus
(
HttpStatus:
:
is4xxClientError
,
ExceptionUtil:
:
handleError
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
ExceptionUtil:
:
handleError
).
bodyToMono
(
String
.
class
);
}
...
...
@@ -74,8 +75,8 @@ public class ClientService {
contentType
(
MediaType
.
APPLICATION_JSON
).
body
(
Mono
.
just
(
peRequest
),
PERequest
.
class
).
retrieve
().
onStatus
(
HttpStatus:
:
is4xxClientError
,
clientResponse
->
handleError
(
clientResponse
)
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
clientResponse
->
handleError
(
clientResponse
)
).
onStatus
(
HttpStatus:
:
is4xxClientError
,
ExceptionUtil:
:
handleError
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
ExceptionUtil:
:
handleError
).
bodyToFlux
(
PEResponse
.
class
).
blockFirst
();
}
...
...
src/main/java/com/nisum/offertransactionservice/config/OfferTransactionConfig.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
config
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.FieldDefaults
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Configuration
;
...
...
src/main/java/com/nisum/offertransactionservice/controller/OfferTransactionController.java
View file @
10d431e4
...
...
@@ -18,6 +18,9 @@ import java.io.IOException;
@CrossOrigin
(
"*"
)
public
class
OfferTransactionController
{
private
static
final
String
SWY_RES_UNIQUE_UUID
=
"swy-res-unique-uuid"
;
private
static
final
String
USER_ID
=
"user-id"
;
@Autowired
private
OfferCallingPEService
offerCallingPEService
;
...
...
@@ -29,16 +32,16 @@ public class OfferTransactionController {
@PostMapping
(
"offerTransactionCall"
)
public
OfferTransactionResponse
getOfferTransactionResponse
(
@Valid
@RequestBody
OfferTransactionRequest
offerTransactionRequest
)
throws
InterruptedException
{
MDC
.
put
(
"swy-res-unique-uuid"
,
String
.
valueOf
(
offerTransactionRequest
.
getHhId
()));
MDC
.
put
(
"user-id"
,
String
.
valueOf
(
offerTransactionRequest
.
getHhId
()));
MDC
.
put
(
SWY_RES_UNIQUE_UUID
,
String
.
valueOf
(
offerTransactionRequest
.
getHhId
()));
MDC
.
put
(
USER_ID
,
String
.
valueOf
(
offerTransactionRequest
.
getHhId
()));
return
offerCallingPEService
.
getDiscountedItemList
(
offerTransactionRequest
);
}
@PostMapping
(
"endOfSale"
)
public
EndOfSaleResponse
endOfSale
(
@Valid
@RequestBody
EndOfSaleReq
endOfSaleReq
)
throws
IOException
{
MDC
.
put
(
"swy-res-unique-uuid"
,
endOfSaleReq
.
getOfferTransactionResponse
().
getHhid
());
MDC
.
put
(
"user-id"
,
endOfSaleReq
.
getOfferTransactionResponse
().
getHhid
());
MDC
.
put
(
SWY_RES_UNIQUE_UUID
,
endOfSaleReq
.
getOfferTransactionResponse
().
getHhid
());
MDC
.
put
(
USER_ID
,
endOfSaleReq
.
getOfferTransactionResponse
().
getHhid
());
String
transactionID
=
endOfSaleService
.
putEndofSaleResInDb
(
endOfSaleReq
);
EndOfSaleResponse
endOfSaleResponse
=
new
EndOfSaleResponse
();
endOfSaleResponse
.
setUuId
(
transactionID
);
...
...
@@ -48,8 +51,8 @@ public class OfferTransactionController {
@PostMapping
(
"/endOfTransaction"
)
public
String
endOfTransaction
(
@Valid
@RequestBody
String
uuid
)
{
MDC
.
put
(
"swy-res-unique-uuid"
,
uuid
);
MDC
.
put
(
"user-id"
,
uuid
);
MDC
.
put
(
SWY_RES_UNIQUE_UUID
,
uuid
);
MDC
.
put
(
USER_ID
,
uuid
);
return
endOfTransactionService
.
endOfTransaction
(
uuid
);
}
...
...
src/main/java/com/nisum/offertransactionservice/dao/OfferLookupRepo.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dao
;
import
com.nisum.offertransactionservice.dto.Offer
;
import
com.nisum.offertransactionservice.model.OfferLookup
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.CrudRepository
;
import
org.springframework.data.repository.query.Param
;
import
javax.swing.text.html.Option
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Optional
;
public
interface
OfferLookupRepo
extends
JpaRepository
<
OfferLookup
,
String
>
{
...
...
src/main/java/com/nisum/offertransactionservice/dto/OfferLookupDTO.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dto
;
import
com.nisum.offertransactionservice.model.OfferLookupComposite
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.FieldDefaults
;
import
javax.persistence.Column
;
import
javax.persistence.EmbeddedId
;
@Data
@NoArgsConstructor
@AllArgsConstructor
...
...
src/main/java/com/nisum/offertransactionservice/dto/OfferTransactionRequest.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dto
;
import
com.nisum.offertransactionservice.dto.Item
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
src/main/java/com/nisum/offertransactionservice/dto/OfferTransactionResponse.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dto
;
import
com.nisum.offertransactionservice.dto.Item
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
src/main/java/com/nisum/offertransactionservice/dto/PERequest.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dto
;
import
com.nisum.offertransactionservice.dto.Item
;
import
com.nisum.offertransactionservice.model.OfferLookup
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
@@ -10,7 +8,6 @@ import lombok.experimental.FieldDefaults;
import
java.util.List
;
import
static
com
.
google
.
common
.
collect
.
Lists
.
newArrayList
;
@Data
...
...
src/main/java/com/nisum/offertransactionservice/dto/PEResponse.java
View file @
10d431e4
package
com
.
nisum
.
offertransactionservice
.
dto
;
import
com.nisum.offertransactionservice.dto.Item
;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
src/main/java/com/nisum/offertransactionservice/genericexception/GlobalApiGenericException.java
View file @
10d431e4
...
...
@@ -4,7 +4,7 @@ import com.safeway.epe.model.Response;
public
class
GlobalApiGenericException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
-
3841677326659278730L
;
private
String
statusCode
;
...
...
src/main/java/com/nisum/offertransactionservice/model/OfferLookupComposite.java
View file @
10d431e4
...
...
@@ -8,7 +8,6 @@ import lombok.NoArgsConstructor;
import
lombok.experimental.FieldDefaults
;
import
javax.persistence.Column
;
import
javax.persistence.Embeddable
;
import
java.io.Serializable
;
@Data
...
...
src/main/java/com/nisum/offertransactionservice/service/EndOfSaleService.java
View file @
10d431e4
...
...
@@ -31,8 +31,7 @@ public class EndOfSaleService {
endOfSaleRepo
.
save
(
endOfSaleEntity
);
if
(
Objects
.
nonNull
(
endOfSaleReq
.
getOfferTransactionResponse
().
getTransactionId
()))
return
endOfSaleReq
.
getOfferTransactionResponse
().
getTransactionId
();
final
String
toString
=
endOfSaleEntity
.
getUuid
().
toString
();
return
toString
;
return
endOfSaleEntity
.
getUuid
().
toString
();
}
...
...
src/main/java/com/nisum/offertransactionservice/service/EndOfTransactionService.java
View file @
10d431e4
...
...
@@ -4,35 +4,23 @@ import com.nisum.offertransactionservice.client.ClientService;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.PropertySource
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.reactive.function.client.ExchangeFilterFunction
;
import
org.springframework.web.reactive.function.client.WebClient
;
import
reactor.core.publisher.Mono
;
import
javax.annotation.PostConstruct
;
import
java.util.Objects
;
import
static
com
.
nisum
.
offertransactionservice
.
util
.
ExceptionUtil
.
handleError
;
@Service
@PropertySource
(
"classpath:application.properties"
)
@Slf4j
public
class
EndOfTransactionService
{
@Autowired
ClientService
clientService
;
//TODO: configuration properties instead of @Value
public
String
endOfTransaction
(
String
uuid
)
{
if
(
Objects
.
isNull
(
uuid
)
||
uuid
.
isEmpty
())
{
log
.
error
(
"Offer transaction uuid is empty or null"
);
...
...
src/main/java/com/nisum/offertransactionservice/service/OfferCallingPEService.java
View file @
10d431e4
...
...
@@ -14,10 +14,7 @@ import org.springframework.context.annotation.PropertySource;
import
org.springframework.stereotype.Service
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
...
...
@@ -73,7 +70,7 @@ public class OfferCallingPEService {
}
return
null
;
})
.
filter
(
offerLookupDTO
->
offerLookupDTO
!=
n
ull
)
.
filter
(
Objects:
:
nonN
ull
)
.
collect
(
Collectors
.
toList
());
}
...
...
src/main/java/com/nisum/offertransactionservice/util/ExceptionUtil.java
View file @
10d431e4
...
...
@@ -10,11 +10,17 @@ import reactor.core.publisher.Mono;
@Slf4j
public
class
ExceptionUtil
{
public
static
Mono
<?
extends
Throwable
>
handleError
(
ClientResponse
clientResponse
)
throws
GlobalApiGenericException
{
private
ExceptionUtil
(){
throw
new
GlobalApiGenericException
();
}
public
static
Mono
<
Throwable
>
handleError
(
ClientResponse
clientResponse
)
{
final
Mono
<
Response
>
responseMono
=
clientResponse
.
bodyToMono
(
Response
.
class
);
return
responseMono
.
flatMap
(
response
->
{
log
.
error
(
"Error Response While Calling Service {}"
,
response
);
throw
new
GlobalApiGenericException
(
response
,
response
.
getHttpStatusCode
());
});
return
responseMono
.
flatMap
(
ExceptionUtil:
:
apply
);
}
private
static
Mono
<?
extends
Throwable
>
apply
(
Response
response
)
{
log
.
error
(
"Error Response While Calling Service {}"
,
response
);
throw
new
GlobalApiGenericException
(
response
,
response
.
getHttpStatusCode
());
}
}
src/main/resources/application.properties
View file @
10d431e4
spring.profiles.active
=
dev
spring.datasource.url
=
jdbc:postgresql://127.0.0.1:5432/storedb
spring.datasource.username
=
postgres
spring.datasource.password
=
dbpwd
spring.datasource.url
=
jdbc:postgresql://127.0.0.1:5432/postgres
spring.datasource.username
=
user
spring.datasource.password
=
password123
endpoint.url.promotionEngineUrl
=
/promotionEngine/calculateDiscount
endpoint.url.peBaseUrl
=
http://localhost:7073
endpoint.url.storeProducerUrl
=
/store/producer
endpoint.url.spBaseUrl
=
http://localhost:7070
server.port
=
7072
server.port
=
7072
\ No newline at end of file
src/test/java/com/nisum/offertransactionservice/controller/OfferControllerTest.java
View file @
10d431e4
...
...
@@ -60,7 +60,7 @@ public class OfferControllerTest {
public
void
endOfTransactionTest
()
{
Mockito
.
when
(
endOfTransactionService
.
endOfTransaction
(
ArgumentMatchers
.
anyString
())).
thenReturn
(
"End Of Transaction note from Store Producer"
);
String
res
=
offerTransactionController
.
endOfTransaction
(
UUID
.
randomUUID
().
toString
());
Assert
.
assertEquals
(
res
,
"End Of Transaction note from Store Producer"
);
Assert
.
assertEquals
(
"End Of Transaction note from Store Producer"
,
res
);
}
private
EndOfSaleReq
getEndOfSaleReq
()
{
...
...
src/test/java/com/nisum/offertransactionservice/controller/OfferTransactionControllerIntegrationTest.java
View file @
10d431e4
...
...
@@ -27,7 +27,6 @@ import static com.github.tomakehurst.wiremock.client.WireMock.*;
@SpringBootTest
(
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
DEFINED_PORT
)
@AutoConfigureWireMock
@ActiveProfiles
(
value
=
"integration"
)
public
class
OfferTransactionControllerIntegrationTest
extends
AbstractTestBase
{
@Rule
...
...
@@ -81,6 +80,7 @@ public class OfferTransactionControllerIntegrationTest extends AbstractTestBase{
);
OfferTransactionResponse
offerTransactionResponse
=
responseEntity
.
getBody
();
System
.
out
.
println
(
offerTransactionResponse
);
Assert
.
assertNotNull
(
offerTransactionResponse
.
getTransactionId
());
}
...
...
src/test/java/com/nisum/offertransactionservice/controller/OfferTransactionControllerTest.java
View file @
10d431e4
...
...
@@ -65,21 +65,21 @@ class OfferTransactionControllerTest {
when
(
offerCallingPEService
.
getOfferMetaDto
(
ArgumentMatchers
.
any
())).
thenReturn
(
getOfferLookupDto
());
Mockito
.
doReturn
(
Optional
.
of
(
getOfferMeta
())).
when
(
offerMetaDataRepo
).
findByOfferIdAndOfferStatusIgnoreCase
(
Mockito
.
anyLong
(),
Mockito
.
anyString
());
OfferTransactionResponse
offerTransactionResponse
=
offerTransactionController
.
getOfferTransactionResponse
(
getOfferTransactionRequest
());
assertEquals
(
Objects
.
nonNull
(
offerTransactionResponse
.
getTransactionId
()),
true
);
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionResponse
.
getTransactionId
())
);
}
@Description
(
"Component test for endOfSale method"
)
@Test
void
endOfSale
()
throws
IOException
{
when
(
endOfSaleRepo
.
save
(
Mockito
.
any
(
EndOfSaleEntity
.
class
))).
thenReturn
(
new
EndOfSaleEntity
());
assertEquals
(
Objects
.
nonNull
(
offerTransactionController
.
endOfSale
(
buildEndOfSaleReq
())),
true
);
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfSale
(
buildEndOfSaleReq
()))
);
}
@Description
(
"Component test for endOfTransaction method"
)
@Test
void
endOfTransaction
()
{
when
(
clientService
.
getStringMono
(
Mockito
.
anyString
())).
thenReturn
(
getMonoOfString
());
assertEquals
(
Objects
.
nonNull
(
offerTransactionController
.
endOfTransaction
(
UU_ID_FOR_END_OF_TRANSACTION
)),
true
);
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfTransaction
(
UU_ID_FOR_END_OF_TRANSACTION
))
);
}
private
List
<
OfferLookup
>
getOffers
()
{
...
...
src/test/java/com/nisum/offertransactionservice/service/EndOfSaleTest.java
View file @
10d431e4
...
...
@@ -42,7 +42,7 @@ public class EndOfSaleTest {
EndOfSaleReq
endOfSaleReq
=
getEndOfSaleReq
();
Mockito
.
when
(
endOfSaleRepo
.
save
(
ArgumentMatchers
.
any
())).
thenReturn
(
ArgumentMatchers
.
any
());
String
uuid
=
endOfSaleService
.
putEndofSaleResInDb
(
endOfSaleReq
);
Assert
.
assertEquals
(
uuid
,
"123456788899999998"
);
Assert
.
assertEquals
(
"123456788899999998"
,
uuid
);
}
@Test
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment