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/example/main.go

174 lines
4.1 KiB
Go

package main
import (
"fmt"
"github.com/tribalwarshelp/shared/tw/twmodel"
"log"
"os"
"time"
"github.com/tribalwarshelp/golang-sdk/sdk"
)
func init() {
os.Setenv("TZ", "UTC")
}
func main() {
api := sdk.New("https://api.tribalwarshelp.com/graphql")
version, err := api.Version.Read(twmodel.VersionCodePL)
if err != nil {
log.Fatal(err)
}
log.Println(version.Name, version.Code, version.Host, version.Timezone)
versionList, err := api.Version.Browse(0, 0, []string{}, &twmodel.VersionFilter{
HostMATCH: "plemiona%",
})
if err != nil {
log.Fatal(err)
}
for _, version := range versionList.Items {
log.Println(version.Name, version.Code, version.Host, version.Timezone)
}
server, err := api.Server.Read("pl151", &sdk.ServerInclude{Version: true})
if err != nil {
log.Fatal(err)
}
log.Println(server.Key, server.Status, server.Version.Code)
serverList, err := api.Server.Browse(3, 0, []string{}, nil, nil)
if err != nil {
log.Fatal(err)
}
for _, server := range serverList.Items {
log.Println(server.Key, server.Status)
}
player, err := api.Player.Read("pl151", 699813215, nil)
if err != nil {
log.Fatal(err)
}
log.Println(player.ID, player.Name, player.RankAtt, player.RankDef, player.RankSup)
playerList, err := api.Player.Browse("pl151",
10,
0,
[]string{"rank ASC"},
&twmodel.PlayerFilter{},
&sdk.PlayerInclude{
Tribe: true,
})
if err != nil {
log.Fatal(err)
}
for _, player := range playerList.Items {
log.Println(player.ID, player.Name, player.RankAtt, player.RankDef, player.RankSup)
if player.Tribe != nil {
log.Println(player.Tribe.ID, player.Tribe.Tag)
}
}
tribe, err := api.Tribe.Read("pl151", 894)
if err != nil {
log.Fatal(err)
}
log.Println(tribe.ID, tribe.Name, tribe.Tag, tribe.RankAtt, tribe.RankDef)
tribeList, err := api.Tribe.Browse("pl151", 10, 0, []string{}, &twmodel.TribeFilter{
TagIEQ: ":.+.:",
})
if err != nil {
log.Fatal(err)
}
for _, tribe := range tribeList.Items {
log.Println(tribe.ID, tribe.Name, tribe.Tag, tribe.RankAtt, tribe.RankDef)
}
village, err := api.Village.Read("pl151", 28120, &sdk.VillageInclude{
Player: true,
PlayerInclude: sdk.PlayerInclude{
Tribe: true,
},
})
if err != nil {
log.Fatal(err)
}
log.Println(village.ID, village.Name)
if village.Player != nil {
log.Println(village.Player.ID, village.Player.Name)
if village.Player.Tribe != nil {
log.Println(village.Player.Tribe.ID, village.Player.Tribe.Tag)
}
}
villagelist, err := api.Village.Browse("pl151",
10,
0,
[]string{"id ASC"},
&twmodel.VillageFilter{
PlayerID: []int{699270453},
}, &sdk.VillageInclude{
Player: true,
PlayerInclude: sdk.PlayerInclude{
Tribe: true,
},
})
if err != nil {
log.Fatal(err)
}
for _, village := range villagelist.Items {
fmt.Print("\n\n")
log.Println(village.ID, village.Name)
if village.Player != nil {
log.Println(village.Player.ID, village.Player.Name)
if village.Player.Tribe != nil {
log.Println(village.Player.Tribe.ID, village.Player.Tribe.Tag)
}
}
}
ennoblements, err := api.Ennoblement.Browse("pl151",
100,
0,
[]string{},
&twmodel.EnnoblementFilter{
EnnobledAtGTE: time.Now().Add(-1 * time.Hour),
},
&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.Items {
fmt.Print("\n\n", ennoblement.EnnobledAt.String(), "\n")
if ennoblement.NewOwner != nil {
log.Println(ennoblement.NewOwner.ID, ennoblement.NewOwner.Name)
if ennoblement.NewOwner.Tribe != nil {
log.Println(ennoblement.NewOwner.Tribe.ID, ennoblement.NewOwner.Tribe.Tag)
}
}
if ennoblement.OldOwner != nil {
log.Println(ennoblement.OldOwner.ID, ennoblement.OldOwner.Name)
if ennoblement.OldOwner.Tribe != nil {
log.Println(ennoblement.OldOwner.Tribe.ID, ennoblement.OldOwner.Tribe.Tag)
}
}
if ennoblement.Village != nil {
log.Println(ennoblement.Village.ID, ennoblement.Village.Name)
}
}
}