47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package shared
|
|
|
|
type BaseErrorResponse struct {
|
|
Success bool `json:"success"`
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Errors []string `json:"errors"`
|
|
}
|
|
|
|
type BaseResponse[T any] struct {
|
|
Success bool `json:"success"`
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Data T `json:"data" swaggertype:"object"`
|
|
}
|
|
|
|
type BaseResponsePaginate[T any] struct {
|
|
Success bool `json:"success"`
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Data []T `json:"data" swaggertype:"array"`
|
|
Paginate PaginationInfo
|
|
}
|
|
|
|
func ToBaseResponse[T any](data T, isSuccess bool, code int, message string) BaseResponse[T] {
|
|
return BaseResponse[T]{
|
|
Success: true,
|
|
Code: 200,
|
|
Message: message,
|
|
Data: data,
|
|
}
|
|
}
|
|
|
|
func ToBaseResponsePaginate[T any](data []T, paginate PaginationInfo, isSuccess bool, code int, message string) BaseResponsePaginate[T] {
|
|
if len(data) == 0 {
|
|
data = make([]T, 0)
|
|
}
|
|
|
|
return BaseResponsePaginate[T]{
|
|
Success: true,
|
|
Code: 200,
|
|
Message: message,
|
|
Data: data,
|
|
Paginate: paginate,
|
|
}
|
|
}
|