package models import ( "fmt" "io" ) // TagKind represents the kind of tags. type TagKind string const ( // TagKindOrganization is a tag kind, see GraphQL documentation. TagKindOrganization TagKind = "Organization" // TagKindCharacter is a tag kind, see GraphQL documentation. TagKindCharacter TagKind = "Character" // TagKindLocation is a tag kind, see GraphQL documentation. TagKindLocation TagKind = "Location" // TagKindEvent is a tag kind, see GraphQL documentation. TagKindEvent TagKind = "Event" // TagKindSeries is a tag kind, see GraphQL documentation. TagKindSeries TagKind = "Series" ) // UnmarshalGQL unmarshals func (e *TagKind) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = TagKind(str) switch *e { case TagKindOrganization, TagKindCharacter, TagKindLocation, TagKindEvent, TagKindSeries: return nil default: return fmt.Errorf("%s is not a valid TagKind", str) } } // MarshalGQL turns it into a JSON string func (e TagKind) MarshalGQL(w io.Writer) { fmt.Fprint(w, "\""+string(e), "\"") }