diff options
author | r <r@freesoftwareextremist.com> | 2019-12-26 19:18:09 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2019-12-26 19:18:09 +0000 |
commit | 14bb18fbc7e6cdea57f27a44093d645d97bacb64 (patch) | |
tree | 79cde4763d978b30bc5aa404e7f761d9cada7a1d /service/transport.go | |
parent | 591360f2a8727e3b1f9e5f28ed3f6d983d6464b8 (diff) | |
download | bloat-14bb18fbc7e6cdea57f27a44093d645d97bacb64.tar.gz bloat-14bb18fbc7e6cdea57f27a44093d645d97bacb64.zip |
Add search page
Diffstat (limited to 'service/transport.go')
-rw-r--r-- | service/transport.go | 25 |
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")) |