aboutsummaryrefslogtreecommitdiff
path: root/http_server.go
diff options
context:
space:
mode:
Diffstat (limited to 'http_server.go')
-rw-r--r--http_server.go29
1 files changed, 15 insertions, 14 deletions
diff --git a/http_server.go b/http_server.go
index 5d45d00..3f8e36c 100644
--- a/http_server.go
+++ b/http_server.go
@@ -12,6 +12,7 @@ import (
"strings"
"github.com/jackc/pgx/v5"
+ "go.lindenii.runxiyu.org/forge/misc"
)
type forgeHTTPRouter struct{}
@@ -39,7 +40,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
var sepIndex int
params := make(map[string]any)
- if segments, _, err = parseReqURI(request.RequestURI); err != nil {
+ if segments, _, err = misc.ParseReqURI(request.RequestURI); err != nil {
errorPage400(writer, params, "Error parsing request URI: "+err.Error())
return
}
@@ -82,7 +83,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
if len(segments) < 2 {
errorPage404(writer, params)
return
- } else if len(segments) == 2 && redirectDir(writer, request) {
+ } else if len(segments) == 2 && misc.RedirectDir(writer, request) {
return
}
@@ -133,7 +134,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
switch {
case sepIndex == -1:
- if redirectDir(writer, request) {
+ if misc.RedirectDir(writer, request) {
return
}
httpHandleGroupIndex(writer, request, params)
@@ -165,8 +166,8 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
}
}
- if params["ref_type"], params["ref_name"], err = getParamRefTypeName(request); err != nil {
- if errors.Is(err, errNoRefSpec) {
+ if params["ref_type"], params["ref_name"], err = misc.GetParamRefTypeName(request); err != nil {
+ if errors.Is(err, misc.ErrNoRefSpec) {
params["ref_type"] = ""
} else {
errorPage400(writer, params, "Error querying ref type: "+err.Error())
@@ -189,7 +190,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
params["ssh_clone_url"] = genSSHRemoteURL(groupPath, moduleName)
if len(segments) == sepIndex+3 {
- if redirectDir(writer, request) {
+ if misc.RedirectDir(writer, request) {
return
}
httpHandleRepoIndex(writer, request, params)
@@ -199,7 +200,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
repoFeature := segments[sepIndex+3]
switch repoFeature {
case "tree":
- if anyContain(segments[sepIndex+4:], "/") {
+ if misc.AnyContain(segments[sepIndex+4:], "/") {
errorPage400(writer, params, "Repo tree paths may not contain slashes in any segments")
return
}
@@ -208,18 +209,18 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
} else {
params["rest"] = strings.Join(segments[sepIndex+4:], "/")
}
- if len(segments) < sepIndex+5 && redirectDir(writer, request) {
+ if len(segments) < sepIndex+5 && misc.RedirectDir(writer, request) {
return
}
httpHandleRepoTree(writer, request, params)
case "branches":
- if redirectDir(writer, request) {
+ if misc.RedirectDir(writer, request) {
return
}
httpHandleRepoBranches(writer, request, params)
return
case "raw":
- if anyContain(segments[sepIndex+4:], "/") {
+ if misc.AnyContain(segments[sepIndex+4:], "/") {
errorPage400(writer, params, "Repo tree paths may not contain slashes in any segments")
return
}
@@ -228,7 +229,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
} else {
params["rest"] = strings.Join(segments[sepIndex+4:], "/")
}
- if len(segments) < sepIndex+5 && redirectDir(writer, request) {
+ if len(segments) < sepIndex+5 && misc.RedirectDir(writer, request) {
return
}
httpHandleRepoRaw(writer, request, params)
@@ -237,7 +238,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
errorPage400(writer, params, "Too many parameters")
return
}
- if redirectDir(writer, request) {
+ if misc.RedirectDir(writer, request) {
return
}
httpHandleRepoLog(writer, request, params)
@@ -246,13 +247,13 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht
errorPage400(writer, params, "Incorrect number of parameters")
return
}
- if redirectNoDir(writer, request) {
+ if misc.RedirectNoDir(writer, request) {
return
}
params["commit_id"] = segments[sepIndex+4]
httpHandleRepoCommit(writer, request, params)
case "contrib":
- if redirectDir(writer, request) {
+ if misc.RedirectDir(writer, request) {
return
}
switch len(segments) {