summaryrefslogtreecommitdiff
path: root/system/api/search.go
diff options
context:
space:
mode:
authorTornike Razmadze <torniker@gmail.com>2018-03-01 22:01:59 +0400
committerSteve Manuel <nilslice@gmail.com>2018-03-05 22:24:53 -0700
commit4ce9a46dccafabe120aa5f798aeab38e1fee9f63 (patch)
treecb50c6625deb840cbcc34ed229f5f6bfaeb1c898 /system/api/search.go
parentc2d1bb070fdaf30c54f7c0d339e24929e7e1072f (diff)
added count and offset to search api (#232)
Diffstat (limited to 'system/api/search.go')
-rw-r--r--system/api/search.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/system/api/search.go b/system/api/search.go
index b77de68..039f0bd 100644
--- a/system/api/search.go
+++ b/system/api/search.go
@@ -5,6 +5,7 @@ import (
"log"
"net/http"
"net/url"
+ "strconv"
"github.com/ponzu-cms/ponzu/system/db"
"github.com/ponzu-cms/ponzu/system/item"
@@ -42,8 +43,28 @@ func searchContentHandler(res http.ResponseWriter, req *http.Request) {
return
}
+ count, err := strconv.Atoi(qs.Get("count")) // int: determines number of posts to return (10 default, -1 is all)
+ if err != nil {
+ if qs.Get("count") == "" {
+ count = 10
+ } else {
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+ }
+
+ offset, err := strconv.Atoi(qs.Get("offset")) // int: multiplier of count for pagination (0 default)
+ if err != nil {
+ if qs.Get("offset") == "" {
+ offset = 0
+ } else {
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+ }
+
// execute search for query provided, if no index for type send 404
- matches, err := search.TypeQuery(t, q)
+ matches, err := search.TypeQuery(t, q, count, offset)
if err == search.ErrNoIndex {
res.WriteHeader(http.StatusNotFound)
return