diff options
author | Runxi Yu <me@runxiyu.org> | 2025-08-17 18:14:35 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-08-17 18:14:35 +0800 |
commit | 4479525731ef41bd5e2a91b949142a2097e0e701 (patch) | |
tree | 1c19df11472fdd2202df7158dafd0b15f59c3521 /forged/internal/incoming/web/handlers | |
parent | Move all config typedefs to config.go (diff) | |
download | forge-4479525731ef41bd5e2a91b949142a2097e0e701.tar.gz forge-4479525731ef41bd5e2a91b949142a2097e0e701.tar.zst forge-4479525731ef41bd5e2a91b949142a2097e0e701.zip |
Move more stub handlers to handlers/
Diffstat (limited to 'forged/internal/incoming/web/handlers')
-rw-r--r-- | forged/internal/incoming/web/handlers/group.go | 17 | ||||
-rw-r--r-- | forged/internal/incoming/web/handlers/index.go | 2 | ||||
-rw-r--r-- | forged/internal/incoming/web/handlers/not_implemented.go | 15 | ||||
-rw-r--r-- | forged/internal/incoming/web/handlers/repo/raw.go | 19 | ||||
-rw-r--r-- | forged/internal/incoming/web/handlers/repo/tree.go | 19 |
5 files changed, 71 insertions, 1 deletions
diff --git a/forged/internal/incoming/web/handlers/group.go b/forged/internal/incoming/web/handlers/group.go new file mode 100644 index 0000000..1a1cb1d --- /dev/null +++ b/forged/internal/incoming/web/handlers/group.go @@ -0,0 +1,17 @@ +package handlers + +import ( + "net/http" + "strings" + + wtypes "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types" +) + +type GroupHTTP struct{} + +func NewGroupHTTP() *GroupHTTP { return &GroupHTTP{} } + +func (h *GroupHTTP) Index(w http.ResponseWriter, r *http.Request, _ wtypes.Vars) { + base := wtypes.Base(r) + _, _ = w.Write([]byte("group index for: /" + strings.Join(base.GroupPath, "/") + "/")) +} diff --git a/forged/internal/incoming/web/handlers/index.go b/forged/internal/incoming/web/handlers/index.go index 773a0c6..1fd2954 100644 --- a/forged/internal/incoming/web/handlers/index.go +++ b/forged/internal/incoming/web/handlers/index.go @@ -10,6 +10,6 @@ type IndexHTTP struct{} func NewIndexHTTP() *IndexHTTP { return &IndexHTTP{} } -func (h *IndexHTTP) Index(w http.ResponseWriter, r *http.Request, _ wtypes.Vars) { +func (h *IndexHTTP) Index(w http.ResponseWriter, _ *http.Request, _ wtypes.Vars) { _, _ = w.Write([]byte("index: replace with template render")) } diff --git a/forged/internal/incoming/web/handlers/not_implemented.go b/forged/internal/incoming/web/handlers/not_implemented.go new file mode 100644 index 0000000..472f73b --- /dev/null +++ b/forged/internal/incoming/web/handlers/not_implemented.go @@ -0,0 +1,15 @@ +package handlers + +import ( + "net/http" + + wtypes "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types" +) + +type NotImplementedHTTP struct{} + +func NewNotImplementedHTTP() *NotImplementedHTTP { return &NotImplementedHTTP{} } + +func (h *NotImplementedHTTP) Handle(w http.ResponseWriter, _ *http.Request, _ wtypes.Vars) { + http.Error(w, "not implemented", http.StatusNotImplemented) +} diff --git a/forged/internal/incoming/web/handlers/repo/raw.go b/forged/internal/incoming/web/handlers/repo/raw.go new file mode 100644 index 0000000..e421f45 --- /dev/null +++ b/forged/internal/incoming/web/handlers/repo/raw.go @@ -0,0 +1,19 @@ +package repo + +import ( + "fmt" + "net/http" + "strings" + + wtypes "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types" +) + +func (h *HTTP) Raw(w http.ResponseWriter, r *http.Request, v wtypes.Vars) { + base := wtypes.Base(r) + repo := v["repo"] + rest := v["rest"] + if base.DirMode && rest != "" && !strings.HasSuffix(rest, "/") { + rest += "/" + } + _, _ = w.Write([]byte(fmt.Sprintf("raw: repo=%q path=%q", repo, rest))) +} diff --git a/forged/internal/incoming/web/handlers/repo/tree.go b/forged/internal/incoming/web/handlers/repo/tree.go new file mode 100644 index 0000000..3432244 --- /dev/null +++ b/forged/internal/incoming/web/handlers/repo/tree.go @@ -0,0 +1,19 @@ +package repo + +import ( + "fmt" + "net/http" + "strings" + + wtypes "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types" +) + +func (h *HTTP) Tree(w http.ResponseWriter, r *http.Request, v wtypes.Vars) { + base := wtypes.Base(r) + repo := v["repo"] + rest := v["rest"] // may be "" + if base.DirMode && rest != "" && !strings.HasSuffix(rest, "/") { + rest += "/" + } + _, _ = w.Write([]byte(fmt.Sprintf("tree: repo=%q path=%q", repo, rest))) +} |