46 lines
822 B
Go
46 lines
822 B
Go
package shared
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
func ValidationError(err error) []string {
|
|
var ve validator.ValidationErrors
|
|
var result []string
|
|
|
|
if !errors.As(err, &ve) {
|
|
return []string{
|
|
err.Error(),
|
|
}
|
|
}
|
|
|
|
for _, fe := range ve {
|
|
result = append(result, errorMessage(fe))
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
func errorMessage(fe validator.FieldError) string {
|
|
var errorInfo string
|
|
|
|
switch fe.Tag() {
|
|
case "required":
|
|
errorInfo = "tidak boleh kosong"
|
|
case "min":
|
|
errorInfo = "harus diisi minimal " + fe.Param()
|
|
case "max":
|
|
errorInfo = "harus diisi maksimal " + fe.Param()
|
|
case "oneof":
|
|
errorInfo = "hanya bisa diisi dengan : " + fe.Param()
|
|
case "uuid":
|
|
errorInfo = "harus diisi dengan uuid"
|
|
default:
|
|
errorInfo = "tidak valid"
|
|
}
|
|
|
|
return fe.Field() + " " + errorInfo
|
|
}
|