aboutsummaryrefslogtreecommitdiff
path: root/service/transport.go
diff options
context:
space:
mode:
authorr <r@freesoftwareextremist.com>2019-12-26 19:18:09 +0000
committerr <r@freesoftwareextremist.com>2019-12-26 19:18:09 +0000
commit14bb18fbc7e6cdea57f27a44093d645d97bacb64 (patch)
tree79cde4763d978b30bc5aa404e7f761d9cada7a1d /service/transport.go
parent591360f2a8727e3b1f9e5f28ed3f6d983d6464b8 (diff)
downloadbloat-14bb18fbc7e6cdea57f27a44093d645d97bacb64.tar.gz
bloat-14bb18fbc7e6cdea57f27a44093d645d97bacb64.zip
Add search page
Diffstat (limited to 'service/transport.go')
-rw-r--r--service/transport.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/service/transport.go b/service/transport.go
index 6541772..c42462f 100644
--- a/service/transport.go
+++ b/service/transport.go
@@ -6,6 +6,7 @@ import (
"mime/multipart"
"net/http"
"path"
+ "strconv"
"github.com/gorilla/mux"
)
@@ -280,6 +281,30 @@ func NewHandler(s Service, staticDir string) http.Handler {
}
}).Methods(http.MethodGet)
+ r.HandleFunc("/search", func(w http.ResponseWriter, req *http.Request) {
+ ctx := getContextWithSession(context.Background(), req)
+
+ q := req.URL.Query().Get("q")
+ qType := req.URL.Query().Get("type")
+ offsetStr := req.URL.Query().Get("offset")
+
+ var offset int
+ var err error
+ if len(offsetStr) > 1 {
+ offset, err = strconv.Atoi(offsetStr)
+ if err != nil {
+ s.ServeErrorPage(ctx, w, err)
+ return
+ }
+ }
+
+ err = s.ServeSearchPage(ctx, w, nil, q, qType, offset)
+ if err != nil {
+ s.ServeErrorPage(ctx, w, err)
+ return
+ }
+ }).Methods(http.MethodGet)
+
r.HandleFunc("/signout", func(w http.ResponseWriter, req *http.Request) {
// TODO remove session from database
w.Header().Add("Set-Cookie", fmt.Sprintf("session_id=;max-age=0"))