-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass.go
47 lines (42 loc) · 1.46 KB
/
class.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
package go5e
type Class struct {
ClassLevels ClassAPIResource `json:"class_levels"`
HitDie int `json:"hit_die"`
Id string `json:"_id"`
Index string `json:"index"`
Name string `json:"name"`
Proficiencies []NamedAPIResource `json:"proficiencies"`
ProficiencyChoices []NamedChoice `json:"proficiency_choices"`
SavingThrows []NamedAPIResource `json:"saving_throws"`
Spellcasting ClassAPIResource `json:"spellcasting"`
StartingEquipment ClassAPIResource `json:"starting_equipment"`
Subclasses []ClassAPIResource `json:"subclasses"`
Url string `json:"url"`
}
func GetClass(index string) (Class, error) {
var ret Class
err := doRequestAndUnmarshal("classes/"+index, &ret)
if err != nil {
return ret, err
}
return ret, nil
}
func GetClassByUrl(url string) (Class, error) {
var ret Class
err := doRequestRawAndUnmarshal(url, ret)
return ret, err
}
func SearchClassByName(query string) (NamedAPIResourceList, error) {
var ret NamedAPIResourceList
err := doRequestAndUnmarshal("classes/?name="+query, &ret)
return ret, err
}
// There should be more endpoints like this
func GetClassSubclasses(index string) (NamedAPIResourceList, error) {
var ret NamedAPIResourceList
err := doRequestAndUnmarshal("classes/"+index+"/subclasses", &ret)
if err != nil {
return ret, err
}
return ret, nil
}