diff options
Diffstat (limited to 'srv/src/api/api.go')
-rw-r--r-- | srv/src/api/api.go | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/srv/src/api/api.go b/srv/src/api/api.go index cf34157..a5ada2d 100644 --- a/srv/src/api/api.go +++ b/srv/src/api/api.go @@ -5,6 +5,7 @@ import ( "context" "errors" "fmt" + "html/template" "net" "net/http" "net/http/httputil" @@ -101,6 +102,8 @@ type API interface { type api struct { params Params srv *http.Server + + redirectTpl *template.Template } // New initializes and returns a new API instance, including setting up all @@ -122,6 +125,8 @@ func New(params Params) (API, error) { params: params, } + a.redirectTpl = a.mustParseTpl("redirect.html") + a.srv = &http.Server{Handler: a.handler()} go func() { @@ -201,11 +206,13 @@ func (a *api) handler() http.Handler { v2Mux := http.NewServeMux() v2Mux.Handle("/follow.html", a.renderDumbHandler("follow.html")) v2Mux.Handle("/posts/", a.renderPostHandler()) - v2Mux.Handle("/assets", apiutil.MethodMux(map[string]http.Handler{ - "GET": a.renderPostAssetsIndexHandler(), - "POST": formMiddleware(a.uploadPostAssetHandler()), - })) - v2Mux.Handle("/assets/", a.servePostAssetHandler()) + v2Mux.Handle("/assets/", http.StripPrefix("/assets", + apiutil.MethodMux(map[string]http.Handler{ + "GET": a.getPostAssetHandler(), + "POST": formMiddleware(a.postPostAssetHandler()), + "DELETE": formMiddleware(a.deletePostAssetHandler()), + }), + )) v2Mux.Handle("/", a.renderIndexHandler()) mux.Handle("/v2/", http.StripPrefix("/v2", v2Mux)) |