Simplify webmention routing

This commit is contained in:
Jan-Lukas Else 2020-12-19 11:06:55 +01:00
parent 4b3c61022b
commit 39e999acca
3 changed files with 12 additions and 12 deletions

View File

@ -134,9 +134,9 @@ func buildHandler() (http.Handler, error) {
r.Route("/webmention", func(webmentionRouter chi.Router) { r.Route("/webmention", func(webmentionRouter chi.Router) {
webmentionRouter.Use(middleware.NoCache) webmentionRouter.Use(middleware.NoCache)
webmentionRouter.Post("/", handleWebmention) webmentionRouter.Post("/", handleWebmention)
webmentionRouter.With(authMiddleware, minifier.Middleware).Get("/admin", webmentionAdmin) webmentionRouter.With(authMiddleware, minifier.Middleware).Get("/", webmentionAdmin)
webmentionRouter.With(authMiddleware).Post("/admin/delete/{id:\\d+}", webmentionAdminDelete) webmentionRouter.With(authMiddleware).Post("/delete", webmentionAdminDelete)
webmentionRouter.With(authMiddleware).Post("/admin/approve/{id:\\d+}", webmentionAdminApprove) webmentionRouter.With(authMiddleware).Post("/approve", webmentionAdminApprove)
}) })
// Posts // Posts

View File

@ -15,8 +15,9 @@
Created: {{ unixtodate $mention.Created }} Created: {{ unixtodate $mention.Created }}
</p> </p>
<form method="post"> <form method="post">
<input type="submit" formaction="/webmention/admin/approve/{{ $mention.ID }}" value="{{ string $blog.Lang "approve" }}"> <input type="hidden" name="mentionid" value="{{ $mention.ID }}">
<input type="submit" formaction="/webmention/admin/delete/{{ $mention.ID }}" value="{{ string $blog.Lang "delete" }}"> <input type="submit" formaction="/webmention/approve" value="{{ string $blog.Lang "approve" }}">
<input type="submit" formaction="/webmention/delete" value="{{ string $blog.Lang "delete" }}">
</form> </form>
</div> </div>
{{ end }} {{ end }}
@ -29,7 +30,8 @@
Created: {{ unixtodate $mention.Created }} Created: {{ unixtodate $mention.Created }}
</p> </p>
<form method="post"> <form method="post">
<input type="submit" formaction="/webmention/admin/delete/{{ $mention.ID }}" value="{{ string $blog.Lang "delete" }}"> <input type="hidden" name="mentionid" value="{{ $mention.ID }}">
<input type="submit" formaction="/webmention/delete" value="{{ string $blog.Lang "delete" }}">
</form> </form>
</div> </div>
{{ end }} {{ end }}

View File

@ -9,8 +9,6 @@ import (
"strconv" "strconv"
"strings" "strings"
"time" "time"
"github.com/go-chi/chi"
) )
type webmentionStatus string type webmentionStatus string
@ -106,7 +104,7 @@ func webmentionAdmin(w http.ResponseWriter, r *http.Request) {
} }
func webmentionAdminDelete(w http.ResponseWriter, r *http.Request) { func webmentionAdminDelete(w http.ResponseWriter, r *http.Request) {
id, err := strconv.Atoi(chi.URLParam(r, "id")) id, err := strconv.Atoi(r.FormValue("mentionid"))
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest) http.Error(w, err.Error(), http.StatusBadRequest)
return return
@ -117,12 +115,12 @@ func webmentionAdminDelete(w http.ResponseWriter, r *http.Request) {
return return
} }
purgeCache() purgeCache()
http.Redirect(w, r, "/webmention/admin", http.StatusFound) http.Redirect(w, r, "/webmention", http.StatusFound)
return return
} }
func webmentionAdminApprove(w http.ResponseWriter, r *http.Request) { func webmentionAdminApprove(w http.ResponseWriter, r *http.Request) {
id, err := strconv.Atoi(chi.URLParam(r, "id")) id, err := strconv.Atoi(r.FormValue("mentionid"))
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest) http.Error(w, err.Error(), http.StatusBadRequest)
return return
@ -133,7 +131,7 @@ func webmentionAdminApprove(w http.ResponseWriter, r *http.Request) {
return return
} }
purgeCache() purgeCache()
http.Redirect(w, r, "/webmention/admin", http.StatusFound) http.Redirect(w, r, "/webmention", http.StatusFound)
return return
} }