all repos — weimar @ fb3daf470ec0942e6de2372f28aeb79c53d22ed4

Unnamed repository; edit this file 'description' to name the repository.

internal/api/tags.go (view raw)

 1package api
 2
 3import (
 4	"net/http"
 5
 6	"codeberg.org/maxwelljensen/weimar/internal/db"
 7)
 8
 9func (a *API) HandleTagSuggest(w http.ResponseWriter, r *http.Request) {
10	q := r.URL.Query().Get("q")
11	if q == "" {
12		writeJSON(w, http.StatusOK, []any{})
13		return
14	}
15
16	tags, err := a.DB.SuggestTags(r.Context(), q, 10)
17	if err != nil {
18		writeError(w, http.StatusInternalServerError, "failed to suggest tags")
19		return
20	}
21
22	if tags == nil {
23		tags = []db.Tag{}
24	}
25
26	writeJSON(w, http.StatusOK, tags)
27}
28
29func (a *API) HandleUserSuggest(w http.ResponseWriter, r *http.Request) {
30	q := r.URL.Query().Get("q")
31	if q == "" {
32		writeJSON(w, http.StatusOK, []any{})
33		return
34	}
35
36	users, err := a.DB.SuggestUploaders(r.Context(), q, 10)
37	if err != nil {
38		writeError(w, http.StatusInternalServerError, "failed to suggest users")
39		return
40	}
41
42	if users == nil {
43		users = []db.Tag{}
44	}
45
46	writeJSON(w, http.StatusOK, users)
47}