about summary refs log tree commit diff stats
path: root/internal/server/mux.go
diff options
context:
space:
mode:
authorAlan Pearce2025-03-10 14:05:17 +0100
committerAlan Pearce2025-03-10 14:05:17 +0100
commit05a32bda78911772cb8b09f37bacbcf851a4ddba (patch)
tree11dcef029c4d47e25d361653717263525707be05 /internal/server/mux.go
parent0de558cbda214106f46d26ace622df5dbb3266fd (diff)
downloadsearchix-05a32bda78911772cb8b09f37bacbcf851a4ddba.tar.lz
searchix-05a32bda78911772cb8b09f37bacbcf851a4ddba.tar.zst
searchix-05a32bda78911772cb8b09f37bacbcf851a4ddba.zip
feat: default to combined search on root path
Diffstat (limited to 'internal/server/mux.go')
-rw-r--r--internal/server/mux.go23
1 files changed, 7 insertions, 16 deletions
diff --git a/internal/server/mux.go b/internal/server/mux.go
index 9dbcc86..9c69a7e 100644
--- a/internal/server/mux.go
+++ b/internal/server/mux.go
@@ -71,18 +71,6 @@ func NewMux(
 
 	top := http.NewServeMux()
 	mux := sentryhttp.NewServeMux()
-	mux.HandleFunc("/{$}", func(w http.ResponseWriter, r *http.Request) {
-		indexData := components.TemplateData{
-			ExtraHeadHTML: cfg.Web.ExtraHeadHTML,
-			Sources:       sources,
-			Assets:        frontend.Assets,
-		}
-		w.Header().Add("Cache-Control", "max-age=86400")
-		err := components.Homepage(indexData).Render(r.Context(), w)
-		if err != nil {
-			errorHandler(w, r, err.Error(), http.StatusInternalServerError)
-		}
-	})
 
 	const searchTimeout = 1 * time.Second
 	createSearchHandler := func(importerType config.ImporterType) func(http.ResponseWriter, *http.Request) {
@@ -213,10 +201,12 @@ func NewMux(
 		}
 	}
 
-	mux.HandleFunc("/all/search", createSearchHandler(config.All))
+	mux.HandleFunc("/{$}", createSearchHandler(config.All))
 	mux.HandleFunc("/options/{source}/search", createSearchHandler(config.Options))
 	mux.HandleFunc("/packages/{source}/search", createSearchHandler(config.Packages))
 
+	mux.Handle("/all/search", http.RedirectHandler("/", http.StatusFound))
+
 	createSourceIDHandler := func(importerType config.ImporterType) http.HandlerFunc {
 		return func(w http.ResponseWriter, r *http.Request) {
 			source := cfg.Importer.Sources[r.PathValue("source")]
@@ -317,18 +307,19 @@ func NewMux(
 
 	mux.HandleFunc("/options/{source}/opensearch.xml", createOpenSearchXMLHandler(config.Options))
 	mux.HandleFunc("/packages/{source}/opensearch.xml", createOpenSearchXMLHandler(config.Packages))
-	mux.HandleFunc("/all/opensearch.xml", func(w http.ResponseWriter, _ *http.Request) {
+	mux.Handle("/all/opensearch.xml", http.RedirectHandler("/opensearch.xml", http.StatusFound))
+	mux.HandleFunc("/opensearch.xml", func(w http.ResponseWriter, _ *http.Request) {
 		w.Header().Add("Cache-Control", "max-age=604800")
 		w.Header().Set("Content-Type", "application/opensearchdescription+xml")
 		osd := &opensearch.Description{
 			ShortName:   "Searchix Combined",
 			LongName:    "Search nix options and packages with Searchix",
 			Description: "Search nix options and packages with Searchix",
-			SearchForm:  cfg.Web.BaseURL.JoinPath("all/search"),
+			SearchForm:  cfg.Web.BaseURL.JoinPath(),
 			URL: opensearch.URL{
 				Method: "get",
 				Type:   "text/html",
-				Template: cfg.Web.BaseURL.JoinPath("all/search").
+				Template: cfg.Web.BaseURL.JoinPath().
 					AddRawQuery("query", "{searchTerms}"),
 			},
 		}