Improve code reuse

This commit is contained in:
video-prize-ranch
2022-05-23 11:10:50 -04:00
parent 5569feb2c8
commit 6eee86d682
7 changed files with 65 additions and 90 deletions

View File

@@ -1,8 +1,6 @@
package api
import (
"io"
"net/http"
"strings"
"time"
@@ -20,25 +18,16 @@ func FetchAlbum(albumID string) (types.Album, error) {
return cacheData.(types.Album), nil
}
res, err := http.Get("https://api.imgur.com/post/v1/albums/" + albumID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount")
data, err := utils.GetJSON("https://api.imgur.com/post/v1/albums/" + albumID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount")
if err != nil {
return types.Album{}, err
}
body, err := io.ReadAll(res.Body)
album, err := ParseAlbum(data)
if err != nil {
return types.Album{}, err
}
data := gjson.Parse(string(body))
album := types.Album{}
if data.Get("shared_with_community").Bool() || res.StatusCode == 404 {
album, err = FetchPosts(albumID)
} else {
album, err = ParseAlbum(data)
}
albumCache.Set(albumID + "-album", album, cache.DefaultExpiration)
return album, err
}
@@ -49,17 +38,11 @@ func FetchPosts(albumID string) (types.Album, error) {
return cacheData.(types.Album), nil
}
res, err := http.Get("https://api.imgur.com/post/v1/posts/" + albumID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount%2Ctags")
data, err := utils.GetJSON("https://api.imgur.com/post/v1/posts/" + albumID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount%2Ctags")
if err != nil {
return types.Album{}, err
}
body, err := io.ReadAll(res.Body)
if err != nil {
return types.Album{}, err
}
data := gjson.Parse(string(body))
album, err := ParseAlbum(data)
if err != nil {
return types.Album{}, err
@@ -75,17 +58,11 @@ func FetchMedia(mediaID string) (types.Album, error) {
return cacheData.(types.Album), nil
}
res, err := http.Get("https://api.imgur.com/post/v1/media/" + mediaID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount")
data, err := utils.GetJSON("https://api.imgur.com/post/v1/media/" + mediaID + "?client_id=" + utils.Config["imgurId"].(string) + "&include=media%2Caccount")
if err != nil {
return types.Album{}, err
}
body, err := io.ReadAll(res.Body)
if err != nil {
return types.Album{}, err
}
data := gjson.Parse(string(body))
album, err := ParseAlbum(data)
if err != nil {
return types.Album{}, err

View File

@@ -1,8 +1,6 @@
package api
import (
"io"
"net/http"
"strings"
"sync"
"time"
@@ -22,18 +20,11 @@ func FetchComments(galleryID string) ([]types.Comment, error) {
return cacheData.([]types.Comment), nil
}
res, err := http.Get("https://api.imgur.com/comment/v1/comments?client_id=" + utils.Config["imgurId"].(string) + "&filter[post]=eq:" + galleryID + "&include=account,adconfig&per_page=30&sort=best")
data, err := utils.GetJSON("https://api.imgur.com/comment/v1/comments?client_id=" + utils.Config["imgurId"].(string) + "&filter[post]=eq:" + galleryID + "&include=account,adconfig&per_page=30&sort=best")
if err != nil {
return []types.Comment{}, err
return []types.Comment{}, nil
}
body, err := io.ReadAll(res.Body)
if err != nil {
return []types.Comment{}, err
}
data := gjson.Parse(string(body))
wg := sync.WaitGroup{}
comments := make([]types.Comment, 0)
data.Get("data").ForEach(

View File

@@ -55,18 +55,11 @@ func FetchSubmissions(username string, sort string, page string) ([]types.Submis
return cacheData.([]types.Submission), nil
}
res, err := http.Get("https://api.imgur.com/3/account/" + username + "/submissions/" + page + "/" + sort + "?album_previews=1&client_id=" + utils.Config["imgurId"].(string))
data, err := utils.GetJSON("https://api.imgur.com/3/account/" + username + "/submissions/" + page + "/" + sort + "?album_previews=1&client_id=" + utils.Config["imgurId"].(string))
if err != nil {
return []types.Submission{}, err
}
body, err := io.ReadAll(res.Body)
if err != nil {
return []types.Submission{}, err
}
data := gjson.Parse(string(body))
submissions := []types.Submission{}
wg := sync.WaitGroup{}