-
Notifications
You must be signed in to change notification settings - Fork 1
/
hop.go
94 lines (85 loc) · 2.05 KB
/
hop.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
package brewerydb
import (
"fmt"
"net/http"
)
// HopService provides access to the BreweryDB Hop API. Use Client.Hop.
//
// See: http://www.brewerydb.com/developers/docs-endpoint/hop_index
type HopService struct {
c *Client
}
// HopList represents a "page" containing a slice of Hops.
type HopList struct {
CurrentPage int
NumberOfPages int
TotalResults int
Hops []Hop `json:"data"`
}
// Hop contains all relevant information for a single variety of Hop.
type Hop struct {
ID int
Name string
Description string
CountryOfOrigin string
AlphaAcidMin float64
AlphaAcidMax float64
BetaAcidMin float64
BetaAcidMax float64
HumuleneMin float64
HumuleneMax float64
CaryophylleneMin float64
CaryophylleneMax float64
CohumuloneMin float64
CohumuloneMax float64
MyrceneMin float64
MyrceneMax float64
FarneseneMin float64
FarneseneMax float64
IsNoble YesNo
ForBittering YesNo
ForFlavor YesNo
ForAroma YesNo
Category string
CategoryDisplay string
CreateDate string
UpdateDate string
Country struct {
IsoCode string
Name string
DisplayName string
IsoThree string
NumberCode int
CreateDate string
}
}
// List returns all Hops on the given page.
//
// See: http://www.brewerydb.com/developers/docs-endpoint/hop_index#1
func (hs *HopService) List(page int) (hl HopList, err error) {
var req *http.Request
req, err = hs.c.NewRequest("GET", "/hops", &Page{page})
if err != nil {
return
}
err = hs.c.Do(req, &hl)
return
}
// Get queries for a single Hop with the given Hop ID.
//
// See: http://www.brewerydb.com/developers/docs-endpoint/hop_index#2
func (hs *HopService) Get(id int) (hop Hop, err error) {
// GET: /hop/:hopId
var req *http.Request
req, err = hs.c.NewRequest("GET", fmt.Sprintf("/hop/%d", id), nil)
if err != nil {
return
}
hopResp := struct {
Message string
Data Hop
Status string
}{}
err = hs.c.Do(req, &hopResp)
return hopResp.Data, err
}