socialnetworknews-api

git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-api.git
Log | Files | Refs | LICENSE

commit 0d7555eb0206cf0f97fa0ac7d670010d1c777f5a
parent 499afe57fe02e1fbc1740f8e8bcb79c9716dec67
Author: MTRNord <mtrnord1@gmail.com>
Date:   Mon, 19 Feb 2018 19:45:03 +0100

Add missing if functions

Diffstat:
Mapi/webserver.go | 39+++++++++++++++++++++++++++++++--------
1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/api/webserver.go b/api/webserver.go @@ -55,7 +55,7 @@ func Papers(w http.ResponseWriter, r *http.Request) { var data []byte switch r.Method { case "GET": - papers, err := getPapers(false) + papers, err := getPapers(false, "") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -86,10 +86,13 @@ func Papers(w http.ResponseWriter, r *http.Request) { } func PaperFunc(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + uuidVar := vars["uuid"] + var data []byte switch r.Method { case "GET": - papers, err := getPapers(true) + papers, err := getPapers(true, uuidVar) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -160,7 +163,7 @@ func addPapers(data []Paper) ([]byte, error) { return papersArray, nil } -func getPapers(full bool) ([]byte, error) { +func getPapers(full bool, uuid string) ([]byte, error) { papersDB, openErr := db.OpenDB() if openErr != nil { return nil, openErr @@ -172,7 +175,12 @@ func getPapers(full bool) ([]byte, error) { opts := badger.DefaultIteratorOptions opts.PrefetchSize = 10 it := txn.NewIterator(opts) - prefix := []byte("papers|paper|") + var prefix []byte + if full { + prefix = []byte(fmt.Sprintf("papers|paper|%s", uuid)) + } else { + prefix = []byte("papers|paper|") + } known := make(map[string]bool) @@ -181,7 +189,13 @@ func getPapers(full bool) ([]byte, error) { key := item.Key() stringKey := fmt.Sprintf("%s", key) stringKeySlice := strings.Split(stringKey, "|") - stringKeyEnd := stringKeySlice[len(stringKeySlice)-2] + var stringKeyEnd string + if full { + stringKeyEnd = "" + } else { + stringKeyEnd = stringKeySlice[len(stringKeySlice)-2] + } + paper := Paper{} if known[stringKeyEnd] { continue @@ -217,9 +231,18 @@ func getPapers(full bool) ([]byte, error) { return nil }) - papersArray, err := json.Marshal(papers) - if err != nil { - return nil, err + var papersArray []byte + var err error + if full { + papersArray, err = json.Marshal(papers[0]) + if err != nil { + return nil, err + } + } else { + papersArray, err = json.Marshal(papers) + if err != nil { + return nil, err + } } return papersArray, nil