From 01e4fd482ebcc827d3c76c00910529abbf666454 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 14 Sep 2025 22:28:12 +0800 Subject: Add basic mailing lists --- forged/internal/unsorted/http_server.go | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'forged/internal/unsorted/http_server.go') diff --git a/forged/internal/unsorted/http_server.go b/forged/internal/unsorted/http_server.go index f6a1794..aa9c90c 100644 --- a/forged/internal/unsorted/http_server.go +++ b/forged/internal/unsorted/http_server.go @@ -268,6 +268,55 @@ func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) { web.ErrorPage404(s.templates, writer, params) return } + case "lists": + params["list_name"] = moduleName + + if len(segments) == sepIndex+3 { + if misc.RedirectDir(writer, request) { + return + } + s.httpHandleMailingListIndex(writer, request, params) + return + } + + feature := segments[sepIndex+3] + switch feature { + case "raw": + if len(segments) != sepIndex+5 { + web.ErrorPage400(s.templates, writer, params, "Incorrect number of parameters") + return + } + if misc.RedirectNoDir(writer, request) { + return + } + params["email_id"] = segments[sepIndex+4] + s.httpHandleMailingListRaw(writer, request, params) + return + case "message": + if len(segments) != sepIndex+5 { + web.ErrorPage400(s.templates, writer, params, "Incorrect number of parameters") + return + } + if misc.RedirectNoDir(writer, request) { + return + } + params["email_id"] = segments[sepIndex+4] + s.httpHandleMailingListMessage(writer, request, params) + return + case "subscribers": + if len(segments) != sepIndex+4 { + web.ErrorPage400(s.templates, writer, params, "Incorrect number of parameters") + return + } + if misc.RedirectDir(writer, request) { + return + } + s.httpHandleMailingListSubscribers(writer, request, params) + return + default: + web.ErrorPage404(s.templates, writer, params) + return + } default: web.ErrorPage404(s.templates, writer, params) return -- cgit v1.2.3