Finished up wrapper

This commit is contained in:
Josh Sherman 2016-09-07 21:46:56 -05:00
parent 1adc8d6f90
commit 6556bc0cb8
2 changed files with 83 additions and 21 deletions

View file

@ -1,36 +1,62 @@
//package holidayapi
package main
package holidayapi
import "fmt"
// TODO: import ( encoding/json net/http net/url )
import (
"encoding/json"
"io/ioutil"
"net/http"
"net/url"
)
type V1 struct {
Url string
Key string
}
func NewV1(key string) *V1 {
v1 := &V1{
Key: key,
Url: "https://holidayapi.com/v1/holidays?",
}
return v1
}
func (v1 *V1) Holidays(parameters map[string]interface{}) map[string]interface{} {
return map[string]interface{}{
"test": "ing",
func (v1 *V1) Holidays(args map[string]interface{}) (map[string]interface{}, error) {
var data map[string]interface{}
if _, ok := args["key"]; !ok {
args["key"] = v1.Key
}
}
func main() {
hapi := NewV1("_MY_API_KEY_")
fmt.Println(hapi.Key)
holidays := hapi.Holidays(map[string]interface{}{
"country": "US",
})
fmt.Println("%#v\n", holidays)
params := url.Values{}
for k, v := range args {
params.Add(k, v.(string))
}
resp, err := http.Get(v1.Url + params.Encode())
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
json.Unmarshal([]byte(string(body)), &data)
if resp.StatusCode != 200 {
_, ok := data["error"]
if !ok {
data["error"] = "Unknown error."
}
}
return data, nil
}