From 6c4f27f3d2262b61651f0dce85a5e9711ba31c64 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Fri, 6 Nov 2020 19:04:34 +0100 Subject: [PATCH] rename models.LangVersion -> models.Version --- models/lang_version.go | 103 ----------------- models/player_name_change.go | 12 +- models/server.go | 10 +- models/special_server.go | 6 +- models/version.go | 105 ++++++++++++++++++ ...key.go => version_code_from_server_key.go} | 4 +- 6 files changed, 122 insertions(+), 118 deletions(-) delete mode 100644 models/lang_version.go create mode 100644 models/version.go rename tw/{language_tag_from_server_key.go => version_code_from_server_key.go} (50%) diff --git a/models/lang_version.go b/models/lang_version.go deleted file mode 100644 index b7b1b2b..0000000 --- a/models/lang_version.go +++ /dev/null @@ -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"` -} diff --git a/models/player_name_change.go b/models/player_name_change.go index a93290e..efb8ee6 100644 --- a/models/player_name_change.go +++ b/models/player_name_change.go @@ -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"` } diff --git a/models/server.go b/models/server.go index e706a58..755fde8 100644 --- a/models/server.go +++ b/models/server.go @@ -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"` diff --git a/models/special_server.go b/models/special_server.go index f0cd714..99d8ee1 100644 --- a/models/special_server.go +++ b/models/special_server.go @@ -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 diff --git a/models/version.go b/models/version.go new file mode 100644 index 0000000..59b98af --- /dev/null +++ b/models/version.go @@ -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"` +} diff --git a/tw/language_tag_from_server_key.go b/tw/version_code_from_server_key.go similarity index 50% rename from tw/language_tag_from_server_key.go rename to tw/version_code_from_server_key.go index dab6c24..ec0d73a 100644 --- a/tw/language_tag_from_server_key.go +++ b/tw/version_code_from_server_key.go @@ -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]) }