WebUI: add a JSON helper function

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2024-02-04 18:16:10 +01:00
parent c23d779280
commit e5836c8118
7 changed files with 239 additions and 120 deletions

View File

@@ -1521,19 +1521,17 @@ func getAllShares(w http.ResponseWriter, r *http.Request) {
sendAPIResponse(w, r, nil, util.I18nErrorInvalidToken, http.StatusForbidden)
return
}
shares := make([]dataprovider.Share, 0, 10)
for {
sh, err := dataprovider.GetShares(defaultQueryLimit, len(shares), dataprovider.OrderASC, claims.Username)
dataGetter := func(limit, offset int) ([]byte, int, error) {
shares, err := dataprovider.GetShares(limit, offset, dataprovider.OrderASC, claims.Username)
if err != nil {
sendAPIResponse(w, r, err, getI18NErrorString(err, util.I18nError500Message), http.StatusInternalServerError)
return
}
shares = append(shares, sh...)
if len(sh) < defaultQueryLimit {
break
return nil, 0, err
}
data, err := json.Marshal(shares)
return data, len(shares), err
}
render.JSON(w, r, shares)
streamJSONArray(w, defaultQueryLimit, dataGetter)
}
func (s *httpdServer) handleClientGetShares(w http.ResponseWriter, r *http.Request) {