diff options
author | Tornike Razmadze <torniker@gmail.com> | 2018-03-01 22:01:59 +0400 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2018-03-05 22:24:53 -0700 |
commit | 4ce9a46dccafabe120aa5f798aeab38e1fee9f63 (patch) | |
tree | cb50c6625deb840cbcc34ed229f5f6bfaeb1c898 /system/api/search.go | |
parent | c2d1bb070fdaf30c54f7c0d339e24929e7e1072f (diff) |
added count and offset to search api (#232)
Diffstat (limited to 'system/api/search.go')
-rw-r--r-- | system/api/search.go | 23 |
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 |