Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
payments-vendor-simulator
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
2
Merge Requests
2
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
payments
payments-vendor-simulator
Commits
cadc9755
Commit
cadc9755
authored
Sep 17, 2021
by
Christopher Cottier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added ErrorModel for error reporting, improved error messages
parent
040b36df
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
46 additions
and
10 deletions
+46
-10
CreditCardController.java
...imulator/creditcard/controllers/CreditCardController.java
+10
-3
CreditCardAmount.java
...ndorsimulator/creditcard/domain/dto/CreditCardAmount.java
+2
-2
CreditCardData.java
...vendorsimulator/creditcard/domain/dto/CreditCardData.java
+5
-5
ErrorModel.java
...m/nisum/paymentvendorsimulator/exceptions/ErrorModel.java
+29
-0
No files found.
src/main/java/com/nisum/paymentvendorsimulator/creditcard/controllers/CreditCardController.java
View file @
cadc9755
...
@@ -4,6 +4,7 @@ import com.nisum.paymentvendorsimulator.creditcard.domain.dto.CreditCardRequest;
...
@@ -4,6 +4,7 @@ import com.nisum.paymentvendorsimulator.creditcard.domain.dto.CreditCardRequest;
import
com.nisum.paymentvendorsimulator.creditcard.domain.dto.CreditCardResponse
;
import
com.nisum.paymentvendorsimulator.creditcard.domain.dto.CreditCardResponse
;
import
com.nisum.paymentvendorsimulator.creditcard.services.CreditCardService
;
import
com.nisum.paymentvendorsimulator.creditcard.services.CreditCardService
;
import
com.nisum.paymentvendorsimulator.exceptions.BaseController
;
import
com.nisum.paymentvendorsimulator.exceptions.BaseController
;
import
com.nisum.paymentvendorsimulator.exceptions.ErrorModel
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -38,13 +39,19 @@ public class CreditCardController{
...
@@ -38,13 +39,19 @@ public class CreditCardController{
@ExceptionHandler
(
MethodArgumentNotValidException
.
class
)
@ExceptionHandler
(
MethodArgumentNotValidException
.
class
)
@ResponseStatus
(
HttpStatus
.
BAD_REQUEST
)
@ResponseStatus
(
HttpStatus
.
BAD_REQUEST
)
public
ResponseEntity
<
List
<
String
>>
handleMethodArgumentNotValidException
(
MethodArgumentNotValidException
e
)
{
public
ResponseEntity
<
ErrorModel
>
handleMethodArgumentNotValidException
(
MethodArgumentNotValidException
e
)
{
System
.
out
.
println
(
"in exception handler"
);
ErrorModel
errorModel
=
new
ErrorModel
();
List
<
String
>
errors
=
e
.
getAllErrors
().
stream
()
List
<
String
>
errors
=
e
.
getAllErrors
().
stream
()
.
map
(
error
->
error
.
getDefaultMessage
())
.
map
(
error
->
error
.
getDefaultMessage
())
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
return
new
ResponseEntity
<>(
errors
,
HttpStatus
.
BAD_REQUEST
);
errorModel
.
setDeveloperMessage
(
"Bad Request"
);
errorModel
.
setUserMessage
(
"Errors: "
+
errors
.
toString
());
errorModel
.
setErrorCode
(
HttpStatus
.
BAD_REQUEST
.
value
());
errorModel
.
setMoreInfo
(
"/swagger-ui/index.html#/credit-card-controller/authorizeUsingPOST_1"
);
return
new
ResponseEntity
<>(
errorModel
,
HttpStatus
.
BAD_REQUEST
);
}
}
}
}
src/main/java/com/nisum/paymentvendorsimulator/creditcard/domain/dto/CreditCardAmount.java
View file @
cadc9755
...
@@ -14,10 +14,10 @@ import javax.validation.constraints.Pattern;
...
@@ -14,10 +14,10 @@ import javax.validation.constraints.Pattern;
@NoArgsConstructor
@NoArgsConstructor
public
class
CreditCardAmount
{
public
class
CreditCardAmount
{
@Pattern
(
regexp
=
"\\d+\\.\\d{2}"
,
message
=
"
V
alue must be at dollar and cents value separated by '.'"
)
@Pattern
(
regexp
=
"\\d+\\.\\d{2}"
,
message
=
"
Amount v
alue must be at dollar and cents value separated by '.'"
)
String
value
;
String
value
;
@NotBlank
(
message
=
"currency cannot be left blank"
)
@NotBlank
(
message
=
"
Amount
currency cannot be left blank"
)
String
currency
;
String
currency
;
}
}
src/main/java/com/nisum/paymentvendorsimulator/creditcard/domain/dto/CreditCardData.java
View file @
cadc9755
...
@@ -14,19 +14,19 @@ import javax.validation.constraints.Pattern;
...
@@ -14,19 +14,19 @@ import javax.validation.constraints.Pattern;
@NoArgsConstructor
@NoArgsConstructor
public
class
CreditCardData
{
public
class
CreditCardData
{
@Pattern
(
regexp
=
"\\d{16}"
,
message
=
"Credit card must be 16 digits"
)
@Pattern
(
regexp
=
"\\d{16}"
,
message
=
"Credit card
number
must be 16 digits"
)
String
number
;
String
number
;
@Pattern
(
regexp
=
"\\d{2}"
,
message
=
"Credit card must be 2 digits"
)
@Pattern
(
regexp
=
"\\d{2}"
,
message
=
"Credit card
expiry month
must be 2 digits"
)
String
expiryMonth
;
String
expiryMonth
;
@Pattern
(
regexp
=
"\\d{4}"
,
message
=
"Credit card must be 4 digits"
)
@Pattern
(
regexp
=
"\\d{4}"
,
message
=
"Credit card
expiry year
must be 4 digits"
)
String
expiryYear
;
String
expiryYear
;
@Pattern
(
regexp
=
"\\d{3}"
,
message
=
"cvc must be 3 digits"
)
@Pattern
(
regexp
=
"\\d{3}"
,
message
=
"
Credit card
cvc must be 3 digits"
)
String
cvc
;
String
cvc
;
@NotBlank
(
message
=
"holderName cannot be left blank"
)
@NotBlank
(
message
=
"
Credit card
holderName cannot be left blank"
)
String
holderName
;
String
holderName
;
}
}
src/main/java/com/nisum/paymentvendorsimulator/exceptions/ErrorModel.java
0 → 100644
View file @
cadc9755
package
com
.
nisum
.
paymentvendorsimulator
.
exceptions
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ErrorModel
{
@JsonProperty
(
"developerMessage"
)
private
String
developerMessage
=
null
;
@JsonProperty
(
"userMessage"
)
private
String
userMessage
=
null
;
@JsonProperty
(
"errorCode"
)
private
Integer
errorCode
=
null
;
@JsonProperty
(
"moreInfo"
)
private
String
moreInfo
=
null
;
}
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