bump github.com/tribalwarshelp/shared, rename sdk/live_ennoblement.go -> sdk/ennoblement.go

This commit is contained in:
Dawid Wysokiński 2021-01-15 19:13:44 +01:00
parent 96a34cf3e7
commit 377475f612
6 changed files with 125 additions and 100 deletions

View File

@ -4,6 +4,7 @@ import (
"fmt"
"log"
"os"
"time"
"github.com/tribalwarshelp/golang-sdk/sdk"
"github.com/tribalwarshelp/shared/models"
@ -130,21 +131,28 @@ func main() {
}
}
ennoblements, err := api.LiveEnnoblement.Browse("pl151", &sdk.LiveEnnoblementInclude{
NewOwner: true,
NewOwnerInclude: sdk.PlayerInclude{
Tribe: true,
ennoblements, err := api.Ennoblement.Browse("pl151",
100,
0,
[]string{},
&models.EnnoblementFilter{
EnnobledAtGTE: time.Now().Add(-1 * time.Hour),
},
OldOwner: true,
OldOwnerInclude: sdk.PlayerInclude{
Tribe: true,
},
Village: true,
})
&sdk.EnnoblementInclude{
NewOwner: true,
NewOwnerInclude: sdk.PlayerInclude{
Tribe: true,
},
OldOwner: true,
OldOwnerInclude: sdk.PlayerInclude{
Tribe: true,
},
Village: true,
})
if err != nil {
log.Fatal(err)
}
for _, ennoblement := range ennoblements {
for _, ennoblement := range ennoblements.Items {
fmt.Print("\n\n", ennoblement.EnnobledAt.String(), "\n")
if ennoblement.NewOwner != nil {
log.Println(ennoblement.NewOwner.ID, ennoblement.NewOwner.Name)

2
go.mod
View File

@ -5,5 +5,5 @@ go 1.15
require (
github.com/Kichiyaki/gqlgen-client v0.0.0-20200604145848-274796c104f4
github.com/pkg/errors v0.9.1
github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235
github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db
)

4
go.sum
View File

@ -76,8 +76,8 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo=
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs=
github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235 h1:VMc5zgClXx9IPMK4ttyVpElrOr4dWZ/gKMlASzpiuzA=
github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235/go.mod h1:vtDs7EjEysk4dpFPfu3c4lkICXZYIRV0BrT7rsqG0dw=
github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db h1:RzMEF4BP3YJ7jJOyYO00TdeB6DY7g0Dp/8cQ8t6WKzw=
github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db/go.mod h1:vtDs7EjEysk4dpFPfu3c4lkICXZYIRV0BrT7rsqG0dw=
github.com/vmihailenco/bufpool v0.1.11 h1:gOq2WmBrq0i2yW5QJ16ykccQ4wH9UyEsgLm6czKAd94=
github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ=
github.com/vmihailenco/msgpack/v4 v4.3.11/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=

93
sdk/ennoblement.go Normal file
View File

@ -0,0 +1,93 @@
package sdk
import (
"fmt"
"github.com/Kichiyaki/gqlgen-client/client"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
)
type Ennoblement struct {
sdk *SDK
}
type EnnoblementInclude struct {
NewOwner bool
NewOwnerInclude PlayerInclude
OldOwner bool
OldOwnerInclude PlayerInclude
Village bool
}
func (incl EnnoblementInclude) String() string {
i := ""
if incl.NewOwner {
i += fmt.Sprintf(`
newOwner {
%s
%s
}
`, playerFields, incl.NewOwnerInclude.String())
}
if incl.OldOwner {
i += fmt.Sprintf(`
oldOwner {
%s
%s
}
`, playerFields, incl.OldOwnerInclude.String())
}
if incl.Village {
i += fmt.Sprintf(`
village {
%s
}
`, villageFields)
}
return i
}
type EnnoblementList struct {
Items []*models.Ennoblement `json:"items" gqlgen:"items"`
Total int `json:"total" gqlgen:"total"`
}
func (en *Ennoblement) Browse(server string,
limit,
offset int,
sort []string,
filter *models.EnnoblementFilter,
include *EnnoblementInclude) (*EnnoblementList, error) {
if server == "" {
return nil, ErrServerNameIsEmpty
}
if include == nil {
include = &EnnoblementInclude{}
}
resp := struct {
Ennoblements EnnoblementList `json:"ennoblements" gqlgen:"ennoblements"`
}{}
query := fmt.Sprintf(`
query ennoblements($server: String!, $filter: EnnoblementFilter, $limit: Int, $offset: Int, $sort: [String!]) {
ennoblements(server: $server, filter: $filter, limit: $limit, offset: $offset, sort: $sort) {
items {
ennobledAt
%s
}
total
}
}
`, include.String())
err := en.sdk.Post(query,
&resp,
client.Var("filter", filter),
client.Var("server", server),
client.Var("limit", limit),
client.Var("offset", offset),
client.Var("sort", sort))
if err != nil {
return nil, errors.Wrap(err, "twhelp sdk")
}
return &resp.Ennoblements, nil
}

View File

@ -1,76 +0,0 @@
package sdk
import (
"fmt"
"github.com/Kichiyaki/gqlgen-client/client"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
)
type LiveEnnoblement struct {
sdk *SDK
}
type LiveEnnoblementInclude struct {
NewOwner bool
NewOwnerInclude PlayerInclude
OldOwner bool
OldOwnerInclude PlayerInclude
Village bool
}
func (incl LiveEnnoblementInclude) String() string {
i := ""
if incl.NewOwner {
i += fmt.Sprintf(`
newOwner {
%s
%s
}
`, playerFields, incl.NewOwnerInclude.String())
}
if incl.OldOwner {
i += fmt.Sprintf(`
oldOwner {
%s
%s
}
`, playerFields, incl.OldOwnerInclude.String())
}
if incl.Village {
i += fmt.Sprintf(`
village {
%s
}
`, villageFields)
}
return i
}
type liveEnnoblementsResponse struct {
LiveEnnoblements []*models.LiveEnnoblement `json:"liveEnnoblements" gqlgen:"liveEnnoblements"`
}
func (en *LiveEnnoblement) Browse(server string, include *LiveEnnoblementInclude) ([]*models.LiveEnnoblement, error) {
if server == "" {
return nil, ErrServerNameIsEmpty
}
if include == nil {
include = &LiveEnnoblementInclude{}
}
resp := &liveEnnoblementsResponse{}
query := fmt.Sprintf(`
query liveEnnoblements($server: String!) {
liveEnnoblements(server: $server) {
ennobledAt
%s
}
}
`, include.String())
err := en.sdk.Post(query, &resp, client.Var("server", server))
if err != nil {
return nil, errors.Wrap(err, "twhelp sdk")
}
return resp.LiveEnnoblements, nil
}

View File

@ -80,15 +80,15 @@ var (
)
type SDK struct {
url string
client *client.Client
httpClient *http.Client
Version *Version
Server *Server
Player *Player
Tribe *Tribe
Village *Village
LiveEnnoblement *LiveEnnoblement
url string
client *client.Client
httpClient *http.Client
Version *Version
Server *Server
Player *Player
Tribe *Tribe
Village *Village
Ennoblement *Ennoblement
}
func New(url string) *SDK {
@ -104,7 +104,7 @@ func New(url string) *SDK {
sdk.Player = &Player{sdk}
sdk.Tribe = &Tribe{sdk}
sdk.Village = &Village{sdk}
sdk.LiveEnnoblement = &LiveEnnoblement{sdk}
sdk.Ennoblement = &Ennoblement{sdk}
return sdk
}