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}