This repository has been archived on 2022-09-04. You can view files and clone it, but cannot push or open issues or pull requests.
golang-sdk/sdk/live_ennoblements.go

77 lines
1.5 KiB
Go
Raw Normal View History

2020-06-07 15:04:57 +00:00
package sdk
import (
"fmt"
"github.com/Kichiyaki/gqlgen-client/client"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
)
2020-06-21 11:59:16 +00:00
type LiveEnnoblements struct {
2020-06-07 15:04:57 +00:00
sdk *SDK
}
2020-06-21 11:59:16 +00:00
type LiveEnnoblementInclude struct {
2020-06-07 15:04:57 +00:00
NewOwner bool
NewOwnerInclude PlayerInclude
OldOwner bool
OldOwnerInclude PlayerInclude
Village bool
}
2020-06-21 11:59:16 +00:00
func (incl LiveEnnoblementInclude) String() string {
2020-06-07 15:04:57 +00:00
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
}
2020-06-21 11:59:16 +00:00
type liveEnnoblementsResponse struct {
LiveEnnoblements []*models.LiveEnnoblement `json:"liveEnnoblements" gqlgen:"liveEnnoblements"`
2020-06-07 15:04:57 +00:00
}
2020-06-21 11:59:16 +00:00
func (en *LiveEnnoblements) Browse(server string, include *LiveEnnoblementInclude) ([]*models.LiveEnnoblement, error) {
2020-06-07 15:04:57 +00:00
if server == "" {
return nil, ErrServerNameIsEmpty
}
if include == nil {
2020-06-21 11:59:16 +00:00
include = &LiveEnnoblementInclude{}
2020-06-07 15:04:57 +00:00
}
2020-06-21 11:59:16 +00:00
resp := &liveEnnoblementsResponse{}
2020-06-07 15:04:57 +00:00
query := fmt.Sprintf(`
2020-06-21 11:59:16 +00:00
query liveEnnoblements($server: String!) {
liveEnnoblements(server: $server) {
2020-06-07 15:04:57 +00:00
ennobledAt
%s
}
}
`, include.String())
err := en.sdk.client.Post(minifyString(query), &resp, client.Var("server", server))
if err != nil {
return nil, errors.Wrap(err, "twhelp sdk")
}
2020-06-21 11:59:16 +00:00
return resp.LiveEnnoblements, nil
2020-06-07 15:04:57 +00:00
}