🏷️ Created ResourceType enum
This commit is contained in:
parent
c20c35f625
commit
6679806534
|
@ -0,0 +1,50 @@
|
|||
package domain
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ResourceType struct {
|
||||
resourceType string
|
||||
}
|
||||
|
||||
var (
|
||||
ResourceTypeUnd ResourceType = ResourceType{} // "und"
|
||||
ResourceTypeAudio ResourceType = ResourceType{"audio"} // "audio"
|
||||
ResourceTypeImage ResourceType = ResourceType{"image"} // "image"
|
||||
ResourceTypePage ResourceType = ResourceType{"page"} // "page"
|
||||
ResourceTypeText ResourceType = ResourceType{"text"} // "text"
|
||||
ResourceTypeVideo ResourceType = ResourceType{"video"} // "video"
|
||||
)
|
||||
|
||||
var ErrResourceType error = errors.New("unsupported ResourceType enum")
|
||||
|
||||
var stringsResourceTypes = map[string]ResourceType{
|
||||
ResourceTypeAudio.resourceType: ResourceTypeAudio,
|
||||
ResourceTypeImage.resourceType: ResourceTypeImage,
|
||||
ResourceTypePage.resourceType: ResourceTypePage,
|
||||
ResourceTypeText.resourceType: ResourceTypeText,
|
||||
ResourceTypeVideo.resourceType: ResourceTypeVideo,
|
||||
}
|
||||
|
||||
func ParseResourceType(raw string) (ResourceType, error) {
|
||||
if rt, ok := stringsResourceTypes[strings.ToLower(raw)]; ok {
|
||||
return rt, nil
|
||||
}
|
||||
|
||||
return ResourceTypeUnd, fmt.Errorf("%w: got '%s', want %s", ErrResourceType, raw, stringsResourceTypes)
|
||||
}
|
||||
|
||||
func (rt ResourceType) String() string {
|
||||
if rt.resourceType != "" {
|
||||
return rt.resourceType
|
||||
}
|
||||
|
||||
return "und"
|
||||
}
|
||||
|
||||
func (rt ResourceType) GoString() string {
|
||||
return "domain.ResourceType(" + rt.String() + ")"
|
||||
}
|
Loading…
Reference in New Issue