1 package org.oxerr.viagogo.client.rescu.resource;
2
3 import java.util.List;
4 import java.util.Map;
5 import java.util.Objects;
6
7 import org.apache.commons.lang3.builder.ToStringBuilder;
8
9 import com.fasterxml.jackson.annotation.JsonProperty;
10
11 import si.mazi.rescu.HttpStatusExceptionSupport;
12
13 public class ViagogoException extends HttpStatusExceptionSupport {
14
15 private static final long serialVersionUID = 2023020201L;
16
17 private final String type;
18
19 private final String title;
20
21 private final Integer status;
22
23 private final String traceId;
24
25 private final String code;
26
27 private final Map<String, List<String>> errors;
28
29 public ViagogoException(
30 @JsonProperty("type") String type,
31 @JsonProperty("title") String title,
32 @JsonProperty("status") int status,
33 @JsonProperty("traceId") String traceId,
34 @JsonProperty("code") String code,
35 @JsonProperty("message") String message,
36 @JsonProperty("errors") Map<String, List<String>> errors
37 ) {
38 super(Objects.toString(title, message));
39 this.type = type;
40 this.title = title;
41 this.status = status;
42 this.traceId = traceId;
43 this.code = code;
44 this.errors = errors;
45 }
46
47 public String getType() {
48 return type;
49 }
50
51
52 public String getTitle() {
53 return title;
54 }
55
56
57 public Integer getStatus() {
58 return status;
59 }
60
61
62 public String getTraceId() {
63 return traceId;
64 }
65
66 public String getCode() {
67 return code;
68 }
69
70 public Map<String, List<String>> getErrors() {
71 return errors;
72 }
73
74 @Override
75 public String toString() {
76 return new ToStringBuilder(this)
77 .append("type", type)
78 .append("title", title)
79 .append("status", status)
80 .append("traceId", traceId)
81 .append("code", code)
82 .append("errors", errors)
83 .build();
84 }
85
86 }