From 4ce806945de28e7fc3b2879050b56414b6474687 Mon Sep 17 00:00:00 2001 From: Lukas Schulte Pelkum Date: Thu, 8 Jun 2023 19:24:32 +0200 Subject: [PATCH] implement raw paste handler --- internal/web/server.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/internal/web/server.go b/internal/web/server.go index fb64a84..4ee2e49 100644 --- a/internal/web/server.go +++ b/internal/web/server.go @@ -2,6 +2,7 @@ package web import ( "github.com/go-chi/chi/v5" + "github.com/lus/pasty/internal/pastes" "github.com/lus/pasty/internal/storage" "net/http" ) @@ -39,9 +40,19 @@ type Server struct { func (server *Server) Start() error { router := chi.NewRouter() - // Serve the web frontend + // Register the web frontend handler router.Get("/*", frontendHandler(router.NotFoundHandler())) + // Register the raw paste handler + router.With(server.v2MiddlewareInjectPaste).Get("/{paste_id}/raw", func(writer http.ResponseWriter, request *http.Request) { + paste, ok := request.Context().Value("paste").(*pastes.Paste) + if !ok { + writeString(writer, http.StatusInternalServerError, "missing paste object") + return + } + _, _ = writer.Write([]byte(paste.Content)) + }) + // Register the paste API endpoints router.Get("/api/*", router.NotFoundHandler()) router.With(server.v2MiddlewareInjectPaste).Get("/api/v2/pastes/{paste_id}", server.v2EndpointGetPaste)