From f1741a7faa9538e9b12ac60e0fbf6c7721a36059 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Tue, 9 Sep 2025 22:44:09 +0100 Subject: Initial commit --- api/dto/response.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 api/dto/response.go (limited to 'api/dto/response.go') diff --git a/api/dto/response.go b/api/dto/response.go new file mode 100644 index 0000000..2c13218 --- /dev/null +++ b/api/dto/response.go @@ -0,0 +1,38 @@ +package dto + +import "fmt" + +type Response interface { + Error() string + Status() int +} + +type OkResponse struct { + Code int `json:"code"` + Data interface{} `json:"data,omitempty"` +} + +var _ Response = (*OkResponse)(nil) + +type ErrorResponse struct { + Code int `json:"code"` + Message string `json:"message"` +} + +var _ Response = (*ErrorResponse)(nil) + +func (r *OkResponse) Status() int { + return r.Code +} + +func (r *OkResponse) Error() string { + return fmt.Sprintf("HTTP status %d", r.Code) +} + +func (r *ErrorResponse) Status() int { + return r.Code +} + +func (r *ErrorResponse) Error() string { + return fmt.Sprintf("HTTP status %d: %s", r.Code, r.Message) +} -- cgit v1.2.3-70-g09d2