Skip to content

Commit 47fea8a

Browse files
committed
feat(dto): add API response and health response DTOs
1 parent c02d948 commit 47fea8a

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.example.demo.dto;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
9+
import java.time.LocalDateTime;
10+
11+
@Data
12+
@Builder
13+
@NoArgsConstructor
14+
@AllArgsConstructor
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
public class ApiResponse<T> {
17+
private String message;
18+
private LocalDateTime timestamp;
19+
private int status;
20+
private boolean success;
21+
private T data;
22+
23+
public static <T> ApiResponse<T> success(String message, T data) {
24+
return ApiResponse.<T>builder()
25+
.message(message)
26+
.timestamp(LocalDateTime.now())
27+
.status(200)
28+
.success(true)
29+
.data(data)
30+
.build();
31+
}
32+
33+
public static <T> ApiResponse<T> success(String message) {
34+
return ApiResponse.<T>builder()
35+
.message(message)
36+
.timestamp(LocalDateTime.now())
37+
.status(200)
38+
.success(true)
39+
.build();
40+
}
41+
42+
public static <T> ApiResponse<T> error(String message, int status) {
43+
return ApiResponse.<T>builder()
44+
.message(message)
45+
.timestamp(LocalDateTime.now())
46+
.status(status)
47+
.success(false)
48+
.build();
49+
}
50+
51+
public static <T> ApiResponse<T> error(String message, int status, T data) {
52+
return ApiResponse.<T>builder()
53+
.message(message)
54+
.timestamp(LocalDateTime.now())
55+
.status(status)
56+
.success(false)
57+
.data(data)
58+
.build();
59+
}
60+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.example.demo.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.time.LocalDateTime;
9+
import java.util.Map;
10+
11+
@Data
12+
@Builder
13+
@NoArgsConstructor
14+
@AllArgsConstructor
15+
public class HealthResponse {
16+
private String status;
17+
private String message;
18+
private LocalDateTime timestamp;
19+
private Map<String, Object> details;
20+
private Long uptime;
21+
private String version;
22+
}

0 commit comments

Comments
 (0)