rename models.LangVersion -> models.Version
This commit is contained in:
parent
5d4d8b3077
commit
6c4f27f3d2
|
@ -1,103 +0,0 @@
|
|||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type LanguageTag string
|
||||
|
||||
const (
|
||||
LanguageTagPL LanguageTag = "pl"
|
||||
LanguageTagInt LanguageTag = "en"
|
||||
LanguageTagDE LanguageTag = "de"
|
||||
LanguageTagUK LanguageTag = "uk"
|
||||
LanguageTagIT LanguageTag = "it"
|
||||
LanguageTagFR LanguageTag = "fr"
|
||||
LanguageTagUS LanguageTag = "us"
|
||||
LanguageTagNL LanguageTag = "nl"
|
||||
LanguageTagES LanguageTag = "es"
|
||||
LanguageTagRO LanguageTag = "ro"
|
||||
LanguageTagRU LanguageTag = "ru"
|
||||
LanguageTagGR LanguageTag = "gr"
|
||||
LanguageTagTR LanguageTag = "tr"
|
||||
LanguageTagCS LanguageTag = "cs"
|
||||
LanguageTagCH LanguageTag = "ch"
|
||||
LanguageTagPT LanguageTag = "pt"
|
||||
LanguageTagBR LanguageTag = "br"
|
||||
LanguageTagHU LanguageTag = "hu"
|
||||
)
|
||||
|
||||
func (lt LanguageTag) IsValid() bool {
|
||||
switch lt {
|
||||
case LanguageTagPL,
|
||||
LanguageTagInt,
|
||||
LanguageTagDE,
|
||||
LanguageTagBR,
|
||||
LanguageTagCH,
|
||||
LanguageTagCS,
|
||||
LanguageTagES,
|
||||
LanguageTagFR,
|
||||
LanguageTagGR,
|
||||
LanguageTagHU,
|
||||
LanguageTagIT,
|
||||
LanguageTagNL,
|
||||
LanguageTagPT,
|
||||
LanguageTagRO,
|
||||
LanguageTagRU,
|
||||
LanguageTagTR,
|
||||
LanguageTagUK,
|
||||
LanguageTagUS:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (lt LanguageTag) String() string {
|
||||
return string(lt)
|
||||
}
|
||||
|
||||
func (lt *LanguageTag) UnmarshalGQL(v interface{}) error {
|
||||
str, ok := v.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("enums must be strings")
|
||||
}
|
||||
|
||||
*lt = LanguageTag(strings.ToLower(str))
|
||||
if !lt.IsValid() {
|
||||
return fmt.Errorf("%s is not a valid LanguageTag", str)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (lt LanguageTag) MarshalGQL(w io.Writer) {
|
||||
fmt.Fprint(w, strconv.Quote(lt.String()))
|
||||
}
|
||||
|
||||
type LangVersion struct {
|
||||
tableName struct{} `pg:"alias:lang_version"`
|
||||
|
||||
Tag LanguageTag `pg:",pk" json:"tag" gqlgen:"tag"`
|
||||
Name string `json:"name" gqlgen:"name" pg:",unique"`
|
||||
Host string `json:"host" gqlgen:"host"`
|
||||
Timezone string `json:"timezone" gqlgen:"timezone"`
|
||||
SpecialServers SpecialServers `json:"specialServers" gqlgen:"specialServers" pg:"rel:has-many"`
|
||||
}
|
||||
|
||||
type LangVersionFilter struct {
|
||||
tableName struct{} `urlstruct:"lang_version"`
|
||||
|
||||
Tag []LanguageTag `json:"tag" gqlgen:"tag"`
|
||||
TagNEQ []LanguageTag `json:"tagNEQ" gqlgen:"tagNEQ"`
|
||||
|
||||
Host []string `json:"host" gqlgen:"host"`
|
||||
HostNEQ []string `json:"hostNEQ" gqlgen:"hostNEQ"`
|
||||
HostMATCH string `json:"hostMATCH" gqlgen:"hostMATCH"`
|
||||
HostIEQ string `json:"hostIEQ" gqlgen:"hostIEQ"`
|
||||
|
||||
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset"`
|
||||
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit"`
|
||||
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort"`
|
||||
}
|
|
@ -3,10 +3,10 @@ package models
|
|||
import "time"
|
||||
|
||||
type PlayerNameChange struct {
|
||||
LangVersionTag LanguageTag `pg:",unique:group_1" json:"langVersionTag" gqlgen:"langVersionTag" xml:"langVersionTag"`
|
||||
LangVersion *LangVersion `pg:"fk:lang_version_tag,rel:has-one" json:"langVersion" gqlgen:"langVersion" xml:"langVersion"`
|
||||
PlayerID int `pg:",unique:group_1" json:"playerID" gqlgen:"playerID" xml:"playerID"`
|
||||
OldName string `pg:",unique:group_1" json:"oldName" gqlgen:"oldName" xml:"oldName"`
|
||||
NewName string `pg:",unique:group_1" json:"newName" gqlgen:"newName" xml:"newName"`
|
||||
ChangeDate time.Time `pg:"default:CURRENT_DATE,type:DATE,use_zero,unique:group_1" json:"changeDate" gqlgen:"changeDate" xml:"changeDate"`
|
||||
VersionCode VersionCode `pg:",unique:group_1" json:"versionCode" gqlgen:"versionCode" xml:"versionCode"`
|
||||
Version *Version `pg:"fk:lang_version_tag,rel:has-one" json:"version" gqlgen:"version" xml:"version"`
|
||||
PlayerID int `pg:",unique:group_1" json:"playerID" gqlgen:"playerID" xml:"playerID"`
|
||||
OldName string `pg:",unique:group_1" json:"oldName" gqlgen:"oldName" xml:"oldName"`
|
||||
NewName string `pg:",unique:group_1" json:"newName" gqlgen:"newName" xml:"newName"`
|
||||
ChangeDate time.Time `pg:"default:CURRENT_DATE,type:DATE,use_zero,unique:group_1" json:"changeDate" gqlgen:"changeDate" xml:"changeDate"`
|
||||
}
|
||||
|
|
|
@ -58,8 +58,8 @@ type Server struct {
|
|||
BuildingConfig BuildingConfig `json:"buildingConfig" gqlgen:"buildingConfig" xml:"buildingConfig"`
|
||||
UnitConfig UnitConfig `json:"unitConfig" gqlgen:"unitConfig" xml:"unitConfig"`
|
||||
|
||||
LangVersionTag LanguageTag `json:"langVersionTag" gqlgen:"langVersionTag" xml:"langVersionTag"`
|
||||
LangVersion *LangVersion `json:"langVersion,omitempty" gqlgen:"-" xml:"langVersion" pg:"rel:has-one"`
|
||||
VersionCode VersionCode `json:"versionCode" gqlgen:"versionCode" xml:"versionCode"`
|
||||
Version *Version `json:"version,omitempty" gqlgen:"-" xml:"version" pg:"rel:has-one"`
|
||||
|
||||
DataUpdatedAt time.Time `pg:"default:now(),use_zero" json:"dataUpdatedAt" gqlgen:"dataUpdatedAt" xml:"dataUpdatedAt"`
|
||||
HistoryUpdatedAt time.Time `pg:"default:now(),use_zero" json:"historyUpdatedAt" gqlgen:"historyUpdatedAt" xml:"historyUpdatedAt"`
|
||||
|
@ -77,8 +77,10 @@ type ServerFilter struct {
|
|||
Status []ServerStatus `json:"status" gqlgen:"status"`
|
||||
StatusNEQ []ServerStatus `json:"statusNEQ" gqlgen:"statusNEQ"`
|
||||
|
||||
LangVersionTag []LanguageTag `json:"langVersionTag" gqlgen:"langVersionTag"`
|
||||
LangVersionTagNEQ []LanguageTag `json:"langVersionTagNEQ" gqlgen:"langVersionTagNEQ"`
|
||||
LangVersionTag []VersionCode `urlstruct:",nowhere" json:"langVersionTag" gqlgen:"langVersionTag"`
|
||||
LangVersionTagNEQ []VersionCode `urlstruct:",nowhere" json:"langVersionTagNEQ" gqlgen:"langVersionTagNEQ"`
|
||||
VersionCode []VersionCode `json:"versionCode" gqlgen:"versionCode"`
|
||||
VersionCodeNEQ []VersionCode `json:"versionCodeNEQ" gqlgen:"versionCodeNEQ"`
|
||||
|
||||
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset"`
|
||||
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit"`
|
||||
|
|
|
@ -3,9 +3,9 @@ package models
|
|||
type SpecialServer struct {
|
||||
tableName struct{} `pg:"special_servers,alias:special_server"`
|
||||
|
||||
LangVersionTag LanguageTag `pg:",unique:group_1" json:"langVersionTag" gqlgen:"langVersionTag" xml:"langVersionTag"`
|
||||
LangVersion *LangVersion `pg:"fk:lang_version_tag,rel:has-one" json:"omitempty,langVersion" gqlgen:"-" xml:"langVersion"`
|
||||
Key string `pg:",unique:group_1" json:"key" gqlgen:"key" xml:"key"`
|
||||
VersionCode VersionCode `pg:",unique:group_1" json:"versionCode" gqlgen:"versionCode" xml:"versionCode"`
|
||||
Version *Version `pg:"fk:lang_version_tag,rel:has-one" json:"omitempty,version" gqlgen:"-" xml:"version"`
|
||||
Key string `pg:",unique:group_1" json:"key" gqlgen:"key" xml:"key"`
|
||||
}
|
||||
|
||||
type SpecialServers []*SpecialServer
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type VersionCode string
|
||||
|
||||
const (
|
||||
VersionCodePL VersionCode = "pl"
|
||||
VersionCodeInt VersionCode = "en"
|
||||
VersionCodeDE VersionCode = "de"
|
||||
VersionCodeUK VersionCode = "uk"
|
||||
VersionCodeIT VersionCode = "it"
|
||||
VersionCodeFR VersionCode = "fr"
|
||||
VersionCodeUS VersionCode = "us"
|
||||
VersionCodeNL VersionCode = "nl"
|
||||
VersionCodeES VersionCode = "es"
|
||||
VersionCodeRO VersionCode = "ro"
|
||||
VersionCodeRU VersionCode = "ru"
|
||||
VersionCodeGR VersionCode = "gr"
|
||||
VersionCodeTR VersionCode = "tr"
|
||||
VersionCodeCS VersionCode = "cs"
|
||||
VersionCodeCH VersionCode = "ch"
|
||||
VersionCodePT VersionCode = "pt"
|
||||
VersionCodeBR VersionCode = "br"
|
||||
VersionCodeHU VersionCode = "hu"
|
||||
)
|
||||
|
||||
func (vc VersionCode) IsValid() bool {
|
||||
switch vc {
|
||||
case VersionCodePL,
|
||||
VersionCodeInt,
|
||||
VersionCodeDE,
|
||||
VersionCodeBR,
|
||||
VersionCodeCH,
|
||||
VersionCodeCS,
|
||||
VersionCodeES,
|
||||
VersionCodeFR,
|
||||
VersionCodeGR,
|
||||
VersionCodeHU,
|
||||
VersionCodeIT,
|
||||
VersionCodeNL,
|
||||
VersionCodePT,
|
||||
VersionCodeRO,
|
||||
VersionCodeRU,
|
||||
VersionCodeTR,
|
||||
VersionCodeUK,
|
||||
VersionCodeUS:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (vc VersionCode) String() string {
|
||||
return string(vc)
|
||||
}
|
||||
|
||||
func (vc *VersionCode) UnmarshalGQL(v interface{}) error {
|
||||
str, ok := v.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("enums must be strings")
|
||||
}
|
||||
|
||||
*vc = VersionCode(strings.ToLower(str))
|
||||
if !vc.IsValid() {
|
||||
return fmt.Errorf("%s is not a valid VersionCode", str)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (vc VersionCode) MarshalGQL(w io.Writer) {
|
||||
fmt.Fprint(w, strconv.Quote(vc.String()))
|
||||
}
|
||||
|
||||
type Version struct {
|
||||
tableName struct{} `pg:"alias:version"`
|
||||
|
||||
Code VersionCode `pg:",pk" json:"code" gqlgen:"code"`
|
||||
Name string `json:"name" gqlgen:"name" pg:",unique"`
|
||||
Host string `json:"host" gqlgen:"host"`
|
||||
Timezone string `json:"timezone" gqlgen:"timezone"`
|
||||
SpecialServers SpecialServers `json:"specialServers" gqlgen:"specialServers" pg:"rel:has-many"`
|
||||
}
|
||||
|
||||
type VersionFilter struct {
|
||||
tableName struct{} `urlstruct:"version"`
|
||||
|
||||
Code []VersionCode `json:"code" gqlgen:"code"`
|
||||
CodeNEQ []VersionCode `json:"codeNEQ" gqlgen:"codeNEQ"`
|
||||
LanguageTag []VersionCode `json:"languageTag" gqlgen:"languageTag" urlstruct:",nowhere"`
|
||||
LanguageTagNEQ []VersionCode `json:"languageTagNEQ" gqlgen:"languageTagNEQ" urlstruct:",nowhere"`
|
||||
|
||||
Host []string `json:"host" gqlgen:"host"`
|
||||
HostNEQ []string `json:"hostNEQ" gqlgen:"hostNEQ"`
|
||||
HostMATCH string `json:"hostMATCH" gqlgen:"hostMATCH"`
|
||||
HostIEQ string `json:"hostIEQ" gqlgen:"hostIEQ"`
|
||||
|
||||
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset"`
|
||||
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit"`
|
||||
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort"`
|
||||
}
|
|
@ -4,9 +4,9 @@ import (
|
|||
"github.com/tribalwarshelp/shared/models"
|
||||
)
|
||||
|
||||
func LanguageTagFromServerKey(key string) models.LanguageTag {
|
||||
func VersionCodeFromServerKey(key string) models.VersionCode {
|
||||
if len(key) < 2 {
|
||||
return ""
|
||||
}
|
||||
return models.LanguageTag(key[0:2])
|
||||
return models.VersionCode(key[0:2])
|
||||
}
|
Reference in New Issue