Rework the API wrappers to handle arrays of parameters
This make some API calls work better (reports with several statuses,
statuses with several attachments, relationships for multiple
accounts...).
package gondole
import (
"fmt"
"strings"
"github.com/sendgrid/rest"
)
// GetTimelines returns a timeline (a list of statuses
// timeline can be "home", "public", or a hashtag (use ":hashtag")
// For the public timelines, you can set 'local' to true to get only the
// local instance.
func (g *Client) GetTimelines(timeline string, local bool) ([]Status, error) {
var endPoint string
switch {
case timeline == "home", timeline == "public":
endPoint = "timelines/" + timeline
case strings.HasPrefix(timeline, ":"):
hashtag := timeline[1:]
if hashtag == "" {
return nil, fmt.Errorf("timelines API: empty hashtag")
}
endPoint = "timelines/tag/" + hashtag
default:
return nil, fmt.Errorf("GetTimelines: bad timelines argument")
}
params := make(apiCallParams)
if timeline == "public" && local {
params["local"] = "true"
}
var tl []Status
if err := g.apiCall(endPoint, rest.Get, params, &tl); err != nil {
return nil, err
}
return tl, nil
}