Add timelines support
authorMikael Berthe <mikael@lilotux.net>
Wed, 12 Apr 2017 18:28:39 +0200
changeset 88 df00ec8423fe
parent 87 1b4653f07bfc
child 89 8a7a33bec6e1
Add timelines support
timelines.go
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/timelines.go	Wed Apr 12 18:28:39 2017 +0200
@@ -0,0 +1,37 @@
+package gondole
+
+import (
+	"encoding/json"
+	"fmt"
+	"strings"
+
+	"github.com/sendgrid/rest"
+)
+
+// GetTimelines returns a timeline (a list of statuses
+// timeline can be "home", "public", or a hashtag (":hashtag")
+func (g *Client) GetTimelines(timeline string) ([]Status, error) {
+	var endPoint string
+	var tl []Status
+
+	if timeline == "home" || timeline == "public" {
+		endPoint = "timelines/" + timeline
+	} else if strings.HasPrefix(timeline, ":") {
+		endPoint = "timelines/tag/" + timeline
+	} else {
+		return tl, fmt.Errorf("GetTimelines: bad timelines argument")
+	}
+
+	req := g.prepareRequest(endPoint)
+	r, err := rest.API(req)
+	if err != nil {
+		return tl, fmt.Errorf("timelines API query: %s", err.Error())
+	}
+
+	err = json.Unmarshal([]byte(r.Body), &tl)
+	if err != nil {
+		return tl, fmt.Errorf("timelines API: %s", err.Error())
+	}
+
+	return tl, nil
+}