/
category.go
55 lines (45 loc) · 1.86 KB
/
category.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
package eventbrite
import "golang.org/x/net/context"
// CategoriesResult is the response structure for the Categories
type CategoriesResult struct {
Locale string `json:"locale"`
Pagination Pagination `json:"pagination"`
Categories []Category `json:"categories"`
}
// SubCategoriesResult is the response structure for the SubCategories
type SubCategoriesResult struct {
Locale string `json:"locale"`
Pagination Pagination `json:"pagination"`
Subcategories []Category `json:"subcategories"`
}
// Categories returns a list of category as categories, including subcategories nested
//
// https://www.eventbrite.com/developer/v3/endpoints/categories/#ebapi-get-categories
func (c *Client) Categories(ctx context.Context) (*CategoriesResult, error) {
result := new(CategoriesResult)
return result, c.getJSON(ctx, "/categories", nil, &result)
}
// Category gets a category by ID as category
//
// https://www.eventbrite.com/developer/v3/endpoints/categories/#ebapi-get-categories-id
func (c *Client) Category(ctx context.Context, id string) (*Category, error) {
result := new(Category)
return result, c.getJSON(ctx, "/categories/"+id, nil, &result)
}
// SubCategories gets a list of subcategory as subcategories
//
// https://www.eventbrite.com/developer/v3/endpoints/categories/#ebapi-get-subcategories
func (c *Client) SubCategories(ctx context.Context) (*SubCategoriesResult, error) {
result := new(SubCategoriesResult)
return result, c.getJSON(ctx, "/subcategories/", nil, &result)
}
// SubCategory gets a subcategory by ID as subcategory
//
// https://www.eventbrite.com/developer/v3/endpoints/categories/#ebapi-get-subcategories-id
func (c *Client) SubCategory(ctx context.Context, id string) (*SubCategory, error) {
result := &SubCategory{}
if err := c.getJSON(ctx, "/subcategories/"+id, nil, &result); err != nil {
return nil, err
}
return result, nil
}