aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/submelon/pantry/ErrorResponse.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/submelon/pantry/ErrorResponse.java')
-rw-r--r--src/main/java/dev/submelon/pantry/ErrorResponse.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/dev/submelon/pantry/ErrorResponse.java b/src/main/java/dev/submelon/pantry/ErrorResponse.java
new file mode 100644
index 0000000..c5b1dbe
--- /dev/null
+++ b/src/main/java/dev/submelon/pantry/ErrorResponse.java
@@ -0,0 +1,58 @@
+package dev.submelon.pantry;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.http.HttpStatus;
+import java.util.Date;
+
+@Getter
+@Setter
+public class ErrorResponse {
+ // customizing timestamp serialization format
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
+ private Date timestamp;
+
+ private int code;
+
+ private String status;
+
+ private String message;
+
+ private String stackTrace;
+
+ private Object data;
+
+ public ErrorResponse() {
+ timestamp = new Date();
+ }
+
+ public ErrorResponse(HttpStatus httpStatus, String message) {
+ this();
+
+ this.code = httpStatus.value();
+ this.status = httpStatus.name();
+ this.message = message;
+ }
+
+ public ErrorResponse(
+ HttpStatus httpStatus,
+ String message,
+ String stackTrace
+ ) {
+ this(httpStatus, message);
+
+ this.stackTrace = stackTrace;
+ }
+
+ public ErrorResponse(
+ HttpStatus httpStatus,
+ String message,
+ String stackTrace,
+ Object data
+ ) {
+ this(httpStatus, message, stackTrace);
+
+ this.data = data;
+ }
+}