Use dedicated type for each order field
Signed-off-by: gearnode <bryan@frimin.fr>
This commit is contained in:
@@ -21,51 +21,6 @@ import (
|
||||
type (
|
||||
OrderField interface {
|
||||
Column() string
|
||||
fmt.Stringer
|
||||
}
|
||||
|
||||
GenericOrderField string
|
||||
)
|
||||
|
||||
const (
|
||||
OrderFieldCreatedAt GenericOrderField = "CREATED_AT"
|
||||
OrderFieldUpdatedAt GenericOrderField = "UPDATED_AT"
|
||||
OrderFieldName GenericOrderField = "NAME"
|
||||
)
|
||||
|
||||
func (of GenericOrderField) String() string {
|
||||
return string(of)
|
||||
}
|
||||
|
||||
func (of GenericOrderField) Column() string {
|
||||
switch of {
|
||||
case OrderFieldCreatedAt:
|
||||
return "created_at"
|
||||
case OrderFieldUpdatedAt:
|
||||
return "updated_at"
|
||||
case OrderFieldName:
|
||||
return "name"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
func (of GenericOrderField) MarshalText() ([]byte, error) {
|
||||
return []byte(of.String()), nil
|
||||
}
|
||||
|
||||
func (of *GenericOrderField) UnmarshalText(data []byte) error {
|
||||
val := string(data)
|
||||
|
||||
switch val {
|
||||
case OrderFieldCreatedAt.String():
|
||||
*of = OrderFieldCreatedAt
|
||||
case OrderFieldUpdatedAt.String():
|
||||
*of = OrderFieldUpdatedAt
|
||||
case OrderFieldName.String():
|
||||
*of = OrderFieldName
|
||||
default:
|
||||
return fmt.Errorf("invalid GenericOrderField value: %q", val)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user