77 lines
1.5 KiB
Go
77 lines
1.5 KiB
Go
package sdk
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/Kichiyaki/gqlgen-client/client"
|
|
"github.com/pkg/errors"
|
|
"github.com/tribalwarshelp/shared/models"
|
|
)
|
|
|
|
type LiveEnnoblements 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 *LiveEnnoblements) 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.client.Post(minifyString(query), &resp, client.Var("server", server))
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "twhelp sdk")
|
|
}
|
|
return resp.LiveEnnoblements, nil
|
|
}
|