diff -r beee0238a82e -r 94f139efff39 notifications.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notifications.go Wed Apr 12 23:47:52 2017 +0200 @@ -0,0 +1,61 @@ +package gondole + +import ( + "encoding/json" + "fmt" + "strconv" + + "github.com/sendgrid/rest" +) + +// GetNotifications returns the list of the user's notifications +func (g *Client) GetNotifications() ([]Notification, error) { + var notifications []Notification + + req := g.prepareRequest("notifications") + r, err := rest.API(req) + if err != nil { + return notifications, fmt.Errorf("notifications API query: %s", err.Error()) + } + + println(r.Body) + err = json.Unmarshal([]byte(r.Body), ¬ifications) + if err != nil { + var res struct { + Error string `json:"error"` + } + err2 := json.Unmarshal([]byte(r.Body), &res) + if err2 == nil { + return notifications, fmt.Errorf("%s", res.Error) + } + return notifications, fmt.Errorf("notifications API: %s", err.Error()) + } + + return notifications, nil +} + +// GetNotification returns a notification +func (g *Client) GetNotification(id int) (*Notification, error) { + var notification Notification + + req := g.prepareRequest("notifications/" + strconv.Itoa(id)) + r, err := rest.API(req) + if err != nil { + return ¬ification, fmt.Errorf("notification API query: %s", err.Error()) + } + + println(r.Body) + err = json.Unmarshal([]byte(r.Body), ¬ification) + if err != nil { + var res struct { + Error string `json:"error"` + } + err2 := json.Unmarshal([]byte(r.Body), &res) + if err2 == nil { + return ¬ification, fmt.Errorf("%s", res.Error) + } + return ¬ification, fmt.Errorf("notification API: %s", err.Error()) + } + + return ¬ification, nil +}