GET /admin/api/v1/users/search Query params (mutually exclusive; name takes priority): name= - search by username or numeric user ID (existing behaviour) role= - return all users with the given role (admin, mod, user, guest)
(w http.ResponseWriter, r *http.Request)
| 181 | // name=<string> - search by username or numeric user ID (existing behaviour) |
| 182 | // role=<string> - return all users with the given role (admin, mod, user, guest) |
| 183 | func apiV1SearchUsers(w http.ResponseWriter, r *http.Request) { |
| 184 | name := r.URL.Query().Get("name") |
| 185 | role := r.URL.Query().Get("role") |
| 186 | |
| 187 | if name == "" && role == "" { |
| 188 | writeAPIError(w, http.StatusBadRequest, "name or role query parameter is required") |
| 189 | return |
| 190 | } |
| 191 | |
| 192 | var results []users.UserSearchResult |
| 193 | if name != "" { |
| 194 | results = users.SearchUsers(name) |
| 195 | } else { |
| 196 | results = users.SearchUsersByRole(role) |
| 197 | } |
| 198 | if results == nil { |
| 199 | results = []users.UserSearchResult{} |
| 200 | } |
| 201 | |
| 202 | writeJSON(w, http.StatusOK, APIResponse[[]users.UserSearchResult]{ |
| 203 | Success: true, |
| 204 | Data: results, |
| 205 | }) |
| 206 | } |
nothing calls this directly
no test coverage detected