aboutsummaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
Diffstat (limited to 'user')
-rw-r--r--user/anime/animelist.go19
-rw-r--r--user/anime/request_handler.go (renamed from user/anime/util.go)37
2 files changed, 16 insertions, 40 deletions
diff --git a/user/anime/animelist.go b/user/anime/animelist.go
index b36b50d..e4cddc3 100644
--- a/user/anime/animelist.go
+++ b/user/anime/animelist.go
@@ -20,18 +20,31 @@ import (
"encoding/json"
"fmt"
"github.com/MikunoNaka/mal2go/anime"
+ e "github.com/MikunoNaka/mal2go/errhandlers"
)
const BASE_URL string = "https://api.myanimelist.net/v2"
// Get authenticated user's anime list
-func (c AnimeListClient) GetAnimeList(user, status, sort string/*, limit, offset int*/) {
+func (c AnimeListClient) GetAnimeList(user, status, sort string, limit, offset int, fields []string) (anime.AnimeList, error){
+ var userAnimeList anime.AnimeList
+ // error handling for limit and offset
+ limitsErr := e.LimitsErrHandler(limit, offset)
+ if limitsErr != nil {
+ return userAnimeList, limitsErr
+ }
+
+ // handle all the errors for the fields
+ fields, err := e.FieldsErrHandler(fields)
+ if err != nil {
+ return userAnimeList, err
+ }
+
// get own list if user not specified
if user == "" {
user = "@me"
}
- var userAnimeList anime.AnimeList
endpoint := BASE_URL + "/users/0ZeroTsu/animelist?fields=list_status&limit=4"
// get data from API
@@ -54,6 +67,6 @@ func (c AnimeListClient) GetAnimeList(user, status, sort string/*, limit, offset
Paging: animeListData.Paging,
}
- fmt.Println(userAnimeList)
+ return userAnimeList, nil
}
diff --git a/user/anime/util.go b/user/anime/request_handler.go
index d9a4a4c..f424c29 100644
--- a/user/anime/util.go
+++ b/user/anime/request_handler.go
@@ -46,40 +46,3 @@ func (c AnimeListClient) requestHandler(endpoint, method string) string {
return string(body)
}
-
-// func urlGenerator(baseUrl string, names []string, values [][]string, isPrimary bool) (string, error) {
-// // length of names and values should be same
-// 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
-// }