-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapi_static_item.go
109 lines (91 loc) · 2.92 KB
/
api_static_item.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
package riotapi
import (
"encoding/json"
"net/http"
"net/url"
"strconv"
"strings"
)
// ItemDataTags tags that provide modifiers of what data is returned on an item request
type ItemDataTag string
const (
ItemDataNil ItemDataTag = ""
ItemDataAll ItemDataTag = "all"
ItemDataColloq ItemDataTag = "colloq"
ItemDataConsumeOnFull ItemDataTag = "consumeOnFull"
ItemDataConsumed ItemDataTag = "consumed"
ItemDataDepth ItemDataTag = "depth"
ItemDataEffect ItemDataTag = "effect"
ItemDataGold ItemDataTag = "gold"
ItemDataGroups ItemDataTag = "groups"
ItemDataHideFromAll ItemDataTag = "hideFromAll"
ItemDataImage ItemDataTag = "image"
ItemDataInStore ItemDataTag = "inStore"
ItemDataInfo ItemDataTag = "info"
ItemDataMaps ItemDataTag = "maps"
ItemDataRequiredChampion ItemDataTag = "requiredChampion"
ItemDataSanitizedDescription ItemDataTag = "sanitizedDescription"
ItemDataSpecialRecipe ItemDataTag = "specialRecipe"
ItemDataStacks ItemDataTag = "stacks"
ItemDataStats ItemDataTag = "stats"
ItemDataTags ItemDataTag = "tags"
ItemDataTree ItemDataTag = "tree"
)
// https://developer.riotgames.com/api/methods#!/1055/3621
// StaticItem get static champion data
// If version is not defined then it uses the current version
func (c *APIClient) StaticItem(version string, itemData ...ItemDataTag) (id *ItemData, err error) {
var req *http.Request
// setup api query options
q := url.Values{}
if version != "" {
q.Add("version", version)
}
if len(itemData) > 0 {
for i := range itemData {
q.Add("itemListData", string(itemData[i]))
}
}
req, err = c.genStaticRequest("GET", "v1.2", "item", q)
if err != nil {
return id, err
}
data, err := c.do(req, true)
if err != nil {
return id, err
}
err = json.Unmarshal(data, &id)
if err != nil {
return nil, err
}
return id, err
}
// https://developer.riotgames.com/api/methods#!/1055/3627
// StaticItemByID get an item by ID
// If version is not defined then it uses the current version
func (c *APIClient) StaticItemByID(id int, version string, itemData ...ItemDataTag) (it *Item, err error) {
var req *http.Request
// setup api query options
q := url.Values{}
if version != "" {
q.Add("version", version)
}
if len(itemData) > 0 {
for i := range itemData {
q.Add("itemData", string(itemData[i]))
}
}
req, err = c.genStaticRequest("GET", "v1.2", strings.Join([]string{"item", strconv.Itoa(id)}, "/"), q)
if err != nil {
return it, err
}
data, err := c.do(req, true)
if err != nil {
return it, err
}
err = json.Unmarshal(data, &it)
if err != nil {
return nil, err
}
return it, err
}