aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJP Appel <jeanpierre.appel01@gmail.com>2025-08-05 15:00:27 -0400
committerJP Appel <jeanpierre.appel01@gmail.com>2025-08-05 15:00:27 -0400
commit7b798789897bd07b03510e073f41e8deadbc460c (patch)
tree32de67674a01001328e0b1ed96a6c47959b26ea8
parenta80b95636309b5eac2f6d0c44e49c714467cda71 (diff)
Add form for querying server from http
-rw-r--r--pkg/server/server.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go
index 2352f21..65034be 100644
--- a/pkg/server/server.go
+++ b/pkg/server/server.go
@@ -31,11 +31,20 @@ Try POSTing a query to <pre>/search</pre></p>
<li>path</li>
<li>title</li>
<li>date</li>
+<li>headings</li>
<li>filetime</li>
<li>meta</li>
</ul>
-You can change the order using <pre>sortOrder</pre> with asc or desc
-</p>`))
+You can change the order using <pre>sortOrder</pre> with <pre>asc</pre> or <pre>desc</pre>
+</p>
+<form action="/search" method="post">
+<fieldset><legend>Submit a Query</legend>
+<label for="query">Query:</label>
+<input type="text" name="query" required />
+<input type="submit" />
+</fieldset>
+</form>
+`))
}
func NewMux(db *data.Query) *http.ServeMux {
@@ -49,7 +58,12 @@ func NewMux(db *data.Query) *http.ServeMux {
mux.HandleFunc("/", info)
mux.HandleFunc("POST /search", func(w http.ResponseWriter, r *http.Request) {
b := &strings.Builder{}
- if _, err := io.Copy(b, r.Body); err != nil {
+ r.ParseForm()
+
+ if v := r.Form.Get("query"); v != "" {
+ slog.Debug("parsing form, got value", slog.String("value", v))
+ b.WriteString(v)
+ } else if _, err := io.Copy(b, r.Body); err != nil {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("Error processing request"))
slog.Error("Error reading request body", slog.String("err", err.Error()))