diff options
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")) |