add exact; add multiple status matching; update deps
This commit is contained in:
17
api.go
17
api.go
@@ -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 != "" {
|
||||
|
Reference in New Issue
Block a user