added repo filter
This commit is contained in:
16
api.go
16
api.go
@@ -9,6 +9,7 @@ import (
|
|||||||
"somegit.dev/ALHP/ALHP.GO/ent/dbpackage"
|
"somegit.dev/ALHP/ALHP.GO/ent/dbpackage"
|
||||||
"somegit.dev/ALHP/ALHP.GO/ent/predicate"
|
"somegit.dev/ALHP/ALHP.GO/ent/predicate"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ type StatsResponse struct {
|
|||||||
|
|
||||||
type ThinPackage struct {
|
type ThinPackage struct {
|
||||||
Pkgbase string `json:"pkgbase"`
|
Pkgbase string `json:"pkgbase"`
|
||||||
|
Repo string `json:"repo"`
|
||||||
SplitPackages []string `json:"split_packages"`
|
SplitPackages []string `json:"split_packages"`
|
||||||
Status dbpackage.Status `json:"status"`
|
Status dbpackage.Status `json:"status"`
|
||||||
SkipReason string `json:"skip_reason"`
|
SkipReason string `json:"skip_reason"`
|
||||||
@@ -99,6 +101,7 @@ func GetPackages(w http.ResponseWriter, r *http.Request) {
|
|||||||
ctx := r.Context()
|
ctx := r.Context()
|
||||||
pkgbase := r.URL.Query().Get("pkgbase")
|
pkgbase := r.URL.Query().Get("pkgbase")
|
||||||
status := r.URL.Query().Get("status")
|
status := r.URL.Query().Get("status")
|
||||||
|
repo := r.URL.Query().Get("repo")
|
||||||
|
|
||||||
offset, err := strconv.Atoi(r.URL.Query().Get("offset"))
|
offset, err := strconv.Atoi(r.URL.Query().Get("offset"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -124,6 +127,13 @@ func GetPackages(w http.ResponseWriter, r *http.Request) {
|
|||||||
constraints = append(constraints, dbpackage.StatusEQ(dbpackage.Status(status)))
|
constraints = append(constraints, dbpackage.StatusEQ(dbpackage.Status(status)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if repo != "" {
|
||||||
|
before, after, found := strings.Cut(repo, "-")
|
||||||
|
if found {
|
||||||
|
constraints = append(constraints, dbpackage.And(dbpackage.MarchEQ(after), dbpackage.RepositoryEQ(dbpackage.Repository(before))))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nPkgs, err := db.DBPackage.Query().Where(constraints...).Count(ctx)
|
nPkgs, err := db.DBPackage.Query().Where(constraints...).Count(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warningf("error getting package count from db: %v", err)
|
log.Warningf("error getting package count from db: %v", err)
|
||||||
@@ -131,6 +141,11 @@ func GetPackages(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if nPkgs == 0 {
|
||||||
|
w.WriteHeader(http.StatusNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
rPackages, err := db.DBPackage.Query().Where(constraints...).Limit(limit).Offset(offset).All(ctx)
|
rPackages, err := db.DBPackage.Query().Where(constraints...).Limit(limit).Offset(offset).All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warningf("error getting packages from db: %v", err)
|
log.Warningf("error getting packages from db: %v", err)
|
||||||
@@ -142,6 +157,7 @@ func GetPackages(w http.ResponseWriter, r *http.Request) {
|
|||||||
for _, mPkg := range rPackages {
|
for _, mPkg := range rPackages {
|
||||||
nPkg := &ThinPackage{
|
nPkg := &ThinPackage{
|
||||||
Pkgbase: mPkg.Pkgbase,
|
Pkgbase: mPkg.Pkgbase,
|
||||||
|
Repo: mPkg.Repository.String() + "-" + mPkg.March,
|
||||||
SplitPackages: mPkg.Packages,
|
SplitPackages: mPkg.Packages,
|
||||||
Status: mPkg.Status,
|
Status: mPkg.Status,
|
||||||
SkipReason: mPkg.SkipReason,
|
SkipReason: mPkg.SkipReason,
|
||||||
|
Reference in New Issue
Block a user