summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2017-05-06 04:38:22 +0200
committerChristian Pointner <equinox@spreadspace.org>2017-05-06 04:38:22 +0200
commit1a5b23df5a8dfd5c5cfb88ad2b6d2c7da6476be3 (patch)
tree4c5afa787d95185baf441cc7043cb67a634c8122 /src
parentuse json Encoder/Decoder and not marshal/unmarshal (diff)
parse from and limit from request query
Diffstat (limited to 'src')
-rw-r--r--src/hub/src/spreadspace.org/sfive/s5srvWeb.go30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5srvWeb.go b/src/hub/src/spreadspace.org/sfive/s5srvWeb.go
index 3b74041..fcb07d7 100644
--- a/src/hub/src/spreadspace.org/sfive/s5srvWeb.go
+++ b/src/hub/src/spreadspace.org/sfive/s5srvWeb.go
@@ -103,7 +103,27 @@ func (srv Server) webGetSource(c web.C, w http.ResponseWriter, r *http.Request)
func (srv Server) webGetUpdateList(c web.C, w http.ResponseWriter, r *http.Request) {
const resourceName = "updates"
- values, err := srv.GetUpdatesAfter(-1, 3) // TODO: get start and limit from param
+ from := 0
+ if fromStr := r.FormValue("from"); fromStr != "" {
+ fromInt, err := strconv.Atoi(fromStr)
+ if err != nil {
+ http.Error(w, fmt.Sprintf("failed to parse from field: %v", err), http.StatusBadRequest)
+ return
+ }
+ from = fromInt
+ }
+
+ limit := -1
+ if limitStr := r.FormValue("limit"); limitStr != "" {
+ limitInt, err := strconv.Atoi(limitStr)
+ if err != nil {
+ http.Error(w, fmt.Sprintf("failed to parse limit field: %v", err), http.StatusBadRequest)
+ return
+ }
+ limit = limitInt
+ }
+
+ values, err := srv.GetUpdatesAfter(from, limit)
if err != nil {
http.Error(w, fmt.Sprintf("failed to retrieve %s: %v", resourceName, err), http.StatusInternalServerError)
return
@@ -117,7 +137,7 @@ func (srv Server) webGetUpdateList(c web.C, w http.ResponseWriter, r *http.Reque
}
func (srv Server) webGetUpdate(c web.C, w http.ResponseWriter, r *http.Request) {
- const resourceName = "update"
+ const resourceName = "updates"
id, err := strconv.ParseInt(c.URLParams["id"], 10, 64)
if err != nil {
http.Error(w, fmt.Sprintf("invalid id: %s: %v", resourceName, err), http.StatusBadRequest)
@@ -153,7 +173,7 @@ func (srv Server) webGetUpdate(c web.C, w http.ResponseWriter, r *http.Request)
// }
func (srv Server) webPostUpdate(c web.C, w http.ResponseWriter, r *http.Request) {
- const resourceName = "update"
+ const resourceName = "updates"
decoder := NewStatelessDecoder(r.Body)
data, err := decoder.Decode()
@@ -171,7 +191,7 @@ func (srv Server) webPostUpdate(c web.C, w http.ResponseWriter, r *http.Request)
}
func (srv Server) webGetLastUpdateId(c web.C, w http.ResponseWriter, r *http.Request) {
- const resourceName = "lastupdateid"
+ const resourceName = "lastupdate"
value, err := srv.store.GetLastUpdateId()
if err != nil {
http.Error(w, fmt.Sprintf("failed to retrieve %s: %v", resourceName, err), http.StatusInternalServerError)
@@ -181,7 +201,7 @@ func (srv Server) webGetLastUpdateId(c web.C, w http.ResponseWriter, r *http.Req
}
func (srv Server) webGetLastUpdateIdForUuid(c web.C, w http.ResponseWriter, r *http.Request) {
- const resourceName = "lastupdateid"
+ const resourceName = "lastupdate"
id := c.URLParams["id"]
value, err := srv.store.GetLastUpdateForUuid(id)
if err != nil {