mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 04:01:34 +00:00
Some checks failed
- Updated database models and repositories to replace uint IDs with UUIDs. - Modified test fixtures to generate and use UUIDs for authors, translations, users, and works. - Adjusted mock implementations to align with the new UUID structure. - Ensured all relevant functions and methods are updated to handle UUIDs correctly. - Added necessary imports for UUID handling in various files.
34 lines
917 B
Go
34 lines
917 B
Go
package graphql
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
"tercul/internal/domain"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
// The 'validate' variable is declared in binding.go and is used here.
|
|
|
|
// Validate performs validation on a struct using the validator library.
|
|
func Validate(s interface{}) error {
|
|
err := validate.Struct(s)
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
|
|
var validationErrors validator.ValidationErrors
|
|
if errors.As(err, &validationErrors) {
|
|
var errorMessages []string
|
|
for _, err := range validationErrors {
|
|
// Customize error messages here if needed.
|
|
errorMessages = append(errorMessages, fmt.Sprintf("field '%s' failed on the '%s' tag", err.Field(), err.Tag()))
|
|
}
|
|
return fmt.Errorf("%w: %s", domain.ErrValidation, strings.Join(errorMessages, "; "))
|
|
}
|
|
|
|
// For other unexpected errors, like invalid validation input.
|
|
return fmt.Errorf("unexpected error during validation: %w", err)
|
|
}
|