diff options
Diffstat (limited to 'anime/util.go')
-rw-r--r-- | anime/util.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/anime/util.go b/anime/util.go index 319bbc9..f09f189 100644 --- a/anime/util.go +++ b/anime/util.go @@ -4,8 +4,11 @@ import ( "io/ioutil" "log" "net/http" + "errors" ) +// Handles HTTP request with your OAuth token as a Header +// TODO: Verify that this function is safe to use func requestHandler(token string, endpoint string) string { client := &http.Client{} @@ -31,3 +34,40 @@ func requestHandler(token string, endpoint string) string { return string(body) } + +func urlGenerator(baseUrl string, names []string, values [][]string, isPrimary bool) (string, error) { + // TODO: error if cap(names) != cap(values) + if cap(names) != cap(values) { + return "", errors.New("urlGenerator: Error: Length of names and values don't match.") + } + + var fields string + + for index, name := range(names) { + var data string + /* if the data is the first field in URL, + * it goes like ?key=value + * else it is &nextkey=value */ + if isPrimary { + data = "?" + name + "=" + } else { + data = "&" + name + "=" + } + + // add values to data variable + for i, j := range values[index] { + if i > 0 { + data = data + "," + j + } else { + data = data + j + } + } + + fields = fields + data + + // from now on all other fields will be secondary + isPrimary = false + } + + return baseUrl + fields, nil +} |