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
Raw Normal View History

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