diff --git a/client.go b/client.go index 6b5d419..3d6c8cc 100644 --- a/client.go +++ b/client.go @@ -8,7 +8,9 @@ import ( "io/ioutil" "log" "net/http" + "net/url" "os" + "strings" ) /* The trading endpoint for Ally */ @@ -66,6 +68,19 @@ func (c *AllyApi) getAndRead(path string) []byte { return raw } +/** +Build up our query string, then send it along. +*/ +func (c *AllyApi) getWithParameters(path string, values url.Values) []byte { + b := strings.Builder{} + for k, v := range values { + b.WriteString(fmt.Sprintf("?%s=%s", k, strings.Join(v, ","))) + } + + log.Printf("Path built: %s%s\n", path, b.String()) + return c.getAndRead(fmt.Sprintf("%s%s", path, b.String())) +} + /* The /accounts endpoint of Ally */ func (c *AllyApi) Accounts() []AccountSummary { var resp AccountResponse @@ -111,6 +126,13 @@ func (c *AllyApi) MarketClock() (resp MarketClockResponse) { return } +func (c *AllyApi) MarketQuotes() { + v := url.Values{ + "symbols": []string{"IBM"}, + } + fmt.Printf("%s\n", c.getWithParameters("market/ext/quotes", v)) +} + // Why does this work?? wtf?? func (c *AllyApi) marshalInterfaceResponse(p string, i interface{}) { resp := c.getAndRead(p) diff --git a/main.go b/main.go index f00f976..c502d9e 100644 --- a/main.go +++ b/main.go @@ -1,13 +1,9 @@ package main -import ( - "fmt" -) - func main() { // Load our environment variables var api AllyApi api.Initialize() - fmt.Printf("Market Clock: %d\n", api.MarketClock().CurrentStatus) + api.MarketQuotes() }