Dawid Wysokiński
d1ba315bd2
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #116
101 lines
1.9 KiB
Go
101 lines
1.9 KiB
Go
package domain
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var ErrNothingToUpdate = errors.New("nothing to update")
|
|
|
|
type TranslatableError interface {
|
|
error
|
|
Slug() string
|
|
Params() map[string]any
|
|
}
|
|
|
|
type RequiredError struct {
|
|
Field string
|
|
}
|
|
|
|
var _ TranslatableError = RequiredError{}
|
|
|
|
func (e RequiredError) Error() string {
|
|
return fmt.Sprintf("%s can't be blank", e.Field)
|
|
}
|
|
|
|
func (e RequiredError) Slug() string {
|
|
return "required"
|
|
}
|
|
|
|
func (e RequiredError) Params() map[string]any {
|
|
return map[string]any{
|
|
"Field": e.Field,
|
|
}
|
|
}
|
|
|
|
type GreaterEqualThanError struct {
|
|
Field string
|
|
Threshold int
|
|
}
|
|
|
|
var _ TranslatableError = GreaterEqualThanError{}
|
|
|
|
func (e GreaterEqualThanError) Error() string {
|
|
return fmt.Sprintf("%s must be no less than %d", e.Field, e.Threshold)
|
|
}
|
|
|
|
func (e GreaterEqualThanError) Slug() string {
|
|
return "greater-equal-than"
|
|
}
|
|
|
|
func (e GreaterEqualThanError) Params() map[string]any {
|
|
return map[string]any{
|
|
"Field": e.Field,
|
|
"Threshold": e.Threshold,
|
|
}
|
|
}
|
|
|
|
type LessEqualThanError struct {
|
|
Field string
|
|
Threshold int
|
|
}
|
|
|
|
var _ TranslatableError = LessEqualThanError{}
|
|
|
|
func (e LessEqualThanError) Error() string {
|
|
return fmt.Sprintf("%s must be no no greater than %d", e.Field, e.Threshold)
|
|
}
|
|
|
|
func (e LessEqualThanError) Slug() string {
|
|
return "less-equal-than"
|
|
}
|
|
|
|
func (e LessEqualThanError) Params() map[string]any {
|
|
return map[string]any{
|
|
"Field": e.Field,
|
|
"Threshold": e.Threshold,
|
|
}
|
|
}
|
|
|
|
type LengthTooShortError struct {
|
|
Field string
|
|
Threshold int
|
|
}
|
|
|
|
var _ TranslatableError = LengthTooShortError{}
|
|
|
|
func (e LengthTooShortError) Error() string {
|
|
return fmt.Sprintf("%s: the length must be no less than %d", e.Field, e.Threshold)
|
|
}
|
|
|
|
func (e LengthTooShortError) Slug() string {
|
|
return "length-too-short"
|
|
}
|
|
|
|
func (e LengthTooShortError) Params() map[string]any {
|
|
return map[string]any{
|
|
"Field": e.Field,
|
|
"Threshold": e.Threshold,
|
|
}
|
|
}
|