add exact; add multiple status matching; update deps

This commit is contained in:
2025-03-23 01:02:04 +01:00
parent ee2d17ad3d
commit 4440a86c05
4 changed files with 167 additions and 114 deletions

17
api.go
View File

@@ -100,7 +100,7 @@ func GetStats(w http.ResponseWriter, r *http.Request) {
func GetPackages(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
pkgbase := r.URL.Query().Get("pkgbase")
status := r.URL.Query().Get("status")
status := r.URL.Query()["status"]
repo := r.URL.Query().Get("repo")
offset, err := strconv.Atoi(r.URL.Query().Get("offset"))
@@ -120,11 +120,20 @@ func GetPackages(w http.ResponseWriter, r *http.Request) {
var constraints []predicate.DBPackage
if pkgbase != "" {
constraints = append(constraints, dbpackage.PkgbaseContains(pkgbase))
if r.URL.Query().Has("exact") {
constraints = append(constraints, dbpackage.PkgbaseEQ(pkgbase))
} else {
constraints = append(constraints, dbpackage.PkgbaseContains(pkgbase))
}
}
if status != "" {
constraints = append(constraints, dbpackage.StatusEQ(dbpackage.Status(status)))
if len(status) > 0 {
constraints = append(constraints, dbpackage.StatusIn(func(status []string) (result []dbpackage.Status) {
for _, s := range status {
result = append(result, dbpackage.Status(s))
}
return result
}(status)...))
}
if repo != "" {