/
wars.go
128 lines (106 loc) · 2.34 KB
/
wars.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package eveapi
import "fmt"
const warsCollectionV1Type = "application/vnd.ccp.eve.WarsCollection-v1"
type WarsCollectionV1 struct {
*EVEAPIClient
crestPagedFrame
Items []struct {
HRef string
ID int
}
}
const warKillmailsV1Type = "application/vnd.ccp.eve.WarKillmails-v1"
type WarKillmailsV1 struct {
*EVEAPIClient
crestPagedFrame
Items []struct {
HRef string
ID int
}
}
const warV1Type = "application/vnd.ccp.eve.War-v1"
type WarV1 struct {
*EVEAPIClient
crestSimpleFrame
TimeFinished EVETime
OpenForAllies bool
TimeStarted EVETime
AllyCount int
TimeDeclared EVETime
Allies []struct {
HRef string
ID int64
Icon struct {
HRef string
}
Name string
}
Aggressor struct {
ShipsKilled int
Name string
HRef string
Icon struct {
HRef string
}
ID int64
IskKilled float64
}
Mutual bool
Killmails string
Defender struct {
ShipsKilled int
Name string
HRef string
Icon struct {
HRef string
}
ID int64
IskKilled float64
}
ID int64
}
func (c *EVEAPIClient) WarsV1(page int) (*WarsCollectionV1, error) {
w := &WarsCollectionV1{EVEAPIClient: c}
url := c.base.CREST + fmt.Sprintf("wars/?page=%d", page)
res, err := c.doJSON("GET", url, nil, w, warsCollectionV1Type, nil)
if err != nil {
return nil, err
}
w.getFrameInfo(url, res)
return w, nil
}
func (c *WarsCollectionV1) NextPage() (*WarsCollectionV1, error) {
w := &WarsCollectionV1{EVEAPIClient: c.EVEAPIClient}
if c.Next.HRef == "" {
return nil, nil
}
res, err := c.doJSON("GET", c.Next.HRef, nil, w, warsCollectionV1Type, nil)
if err != nil {
return nil, err
}
w.getFrameInfo(c.Next.HRef, res)
return w, nil
}
func (c *EVEAPIClient) WarV1(href string) (*WarV1, error) {
w := &WarV1{EVEAPIClient: c}
res, err := c.doJSON("GET", href, nil, w, warV1Type, nil)
if err != nil {
return nil, err
}
w.getFrameInfo(res)
return w, nil
}
func (c *EVEAPIClient) WarByID(id int) (*WarV1, error) {
url := c.base.CREST + fmt.Sprintf("wars/%d/", id)
return c.WarV1(url)
}
// GetKillmails provides a list of killmails associated to this war.
func (c *WarV1) KillmailsV1() (*WarKillmailsV1, error) {
w := &WarKillmailsV1{EVEAPIClient: c.EVEAPIClient}
res, err := c.doJSON("GET", c.Killmails, nil, w, warKillmailsV1Type, nil)
if err != nil {
return nil, err
}
w.getFrameInfo(c.Killmails, res)
return w, nil
}