update sdk.Servers

This commit is contained in:
Dawid Wysokiński 2020-06-18 17:48:23 +02:00
parent 9db5260115
commit 9b569d862c
4 changed files with 49 additions and 23 deletions

View File

@ -35,13 +35,13 @@ func main() {
log.Println(langVersion.Name, langVersion.Tag, langVersion.Host, langVersion.Timezone)
}
server, err := api.Servers.Read("pl151")
server, err := api.Servers.Read("pl151", &sdk.ServerInclude{LangVersion: true})
if err != nil {
log.Fatal(err)
}
log.Println(server.Key, server.Status)
log.Println(server.Key, server.Status, server.LangVersion.Tag)
serversList, err := api.Servers.Browse(nil)
serversList, err := api.Servers.Browse(nil, nil)
if err != nil {
log.Fatal(err)
}

View File

@ -1,6 +1,8 @@
package sdk
import (
"fmt"
"github.com/Kichiyaki/gqlgen-client/client"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
@ -14,16 +16,13 @@ func (lv *LangVersions) Read(tag models.LanguageTag) (*models.LangVersion, error
resp := struct {
LangVersion *models.LangVersion `json:"langVersion" gqlgen:"langVersion"`
}{}
query := `
query := fmt.Sprintf(`
query langVersion($tag: LanguageTag!) {
langVersion(tag: $tag) {
tag
name
host
timezone
%s
}
}
`
`, langVersionFields)
err := lv.sdk.client.Post(minifyString(query), &resp, client.Var("tag", tag))
if err != nil {
return nil, errors.Wrap(err, "twhelp sdk")
@ -43,19 +42,16 @@ func (lv *LangVersions) Browse(filter *models.LangVersionFilter) (*LangVersionsL
resp := struct {
LangVersions *LangVersionsList `json:"langVersions" gqlgen:"langVersions"`
}{}
query := `
query := fmt.Sprintf(`
query langVersions($filter: LangVersionFilter) {
langVersions(filter: $filter) {
items {
tag
name
host
timezone
%s
}
total
}
}
`
`, langVersionFields)
err := lv.sdk.client.Post(minifyString(query), &resp, client.Var("filter", filter))
if err != nil {

View File

@ -52,6 +52,12 @@ var (
x
y
`
langVersionFields = `
tag
name
host
timezone
`
)
type SDK struct {

View File

@ -1,6 +1,8 @@
package sdk
import (
"fmt"
"github.com/Kichiyaki/gqlgen-client/client"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
@ -10,20 +12,39 @@ type Servers struct {
sdk *SDK
}
func (ss *Servers) Read(key string) (*models.Server, error) {
type ServerInclude struct {
LangVersion bool
}
func (incl ServerInclude) String() string {
i := ""
if incl.LangVersion {
i += fmt.Sprintf(`
langVersion {
%s
}
`, langVersionFields)
}
return i
}
func (ss *Servers) Read(key string, incl *ServerInclude) (*models.Server, error) {
if incl == nil {
incl = &ServerInclude{}
}
resp := struct {
Server *models.Server `json:"server" gqlgen:"server"`
}{}
query := `
query := fmt.Sprintf(`
query server($key: String!) {
server(key: $key) {
id
key
status
langVersionTag
%s
}
}
`
`, incl.String())
err := ss.sdk.client.Post(minifyString(query), &resp, client.Var("key", key))
if err != nil {
return nil, errors.Wrap(err, "twhelp sdk")
@ -36,7 +57,10 @@ type ServersList struct {
Total int `json:"total" gqlgen:"total"`
}
func (ss *Servers) Browse(filter *models.ServerFilter) (*ServersList, error) {
func (ss *Servers) Browse(filter *models.ServerFilter, incl *ServerInclude) (*ServersList, error) {
if incl == nil {
incl = &ServerInclude{}
}
if filter == nil {
filter = &models.ServerFilter{}
}
@ -44,19 +68,19 @@ func (ss *Servers) Browse(filter *models.ServerFilter) (*ServersList, error) {
Servers *ServersList `json:"servers" gqlgen:"servers"`
}{}
query := `
query := fmt.Sprintf(`
query servers($filter: ServerFilter) {
servers(filter: $filter) {
items {
id
key
status
langVersionTag
%s
}
total
}
}
`
`, incl.String())
err := ss.sdk.client.Post(minifyString(query), &resp, client.Var("filter", filter))
if err != nil {