dukcapil/internal/transformer/common_transformer.go
Aditya Siregar bc64eb20ea add dukcapil
2026-05-07 04:01:32 +07:00

58 lines
1.2 KiB
Go

package transformer
import (
"go-backend-template/internal/contract"
"math"
)
func PaginationToRequest(page, limit int) (int, int) {
if page < 1 {
page = 1
}
if limit < 1 {
limit = 10
}
if limit > 100 {
limit = 100
}
return page, limit
}
func CreatePaginationResponse(totalCount, page, limit int) contract.PaginationResponse {
totalPages := int(math.Ceil(float64(totalCount) / float64(limit)))
if totalPages < 1 {
totalPages = 1
}
return contract.PaginationResponse{
TotalCount: totalCount,
Page: page,
Limit: limit,
TotalPages: totalPages,
}
}
func CreateErrorResponse(message string, code int) *contract.ErrorResponse {
return &contract.ErrorResponse{
Error: "error",
Message: message,
Code: code,
}
}
func CreateValidationErrorResponse(message string, details map[string]string) *contract.ValidationErrorResponse {
return &contract.ValidationErrorResponse{
Error: "validation_error",
Message: message,
Details: details,
Code: 400,
}
}
func CreateSuccessResponse(message string, data interface{}) *contract.SuccessResponse {
return &contract.SuccessResponse{
Message: message,
Data: data,
}
}