diff options
author | Runxi Yu <me@runxiyu.org> | 2025-09-14 22:28:12 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-09-14 22:28:12 +0800 |
commit | 01e4fd482ebcc827d3c76c00910529abbf666454 (patch) | |
tree | 300156b866864a07a0ed7680e6572ae97c20e325 /forged/internal/unsorted/http_server.go | |
parent | Update dependencies (diff) | |
download | forge-01e4fd482ebcc827d3c76c00910529abbf666454.tar.gz forge-01e4fd482ebcc827d3c76c00910529abbf666454.tar.zst forge-01e4fd482ebcc827d3c76c00910529abbf666454.zip |
Add basic mailing listspre-refactor
Diffstat (limited to 'forged/internal/unsorted/http_server.go')
-rw-r--r-- | forged/internal/unsorted/http_server.go | 49 |
1 files changed, 49 insertions, 0 deletions
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 |