Files
api-antrian-operasi/internal/shared/baseResponse.go
2026-02-09 10:26:19 +07:00

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,
}
}