forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview: pulls: fix resubmitCheck for stacked PRs

Changed files
+34 -20
appview
+12 -2
appview/db/db.go
···
type filter struct {
key string
arg any
+
cmp string
}
-
func Filter(key string, arg any) filter {
+
func FilterEq(key string, arg any) filter {
return filter{
key: key,
arg: arg,
+
cmp: "=",
+
}
+
}
+
+
func FilterNotEq(key string, arg any) filter {
+
return filter{
+
key: key,
+
arg: arg,
+
cmp: "<>",
}
}
func (f filter) Condition() string {
-
return fmt.Sprintf("%s = ?", f.key)
+
return fmt.Sprintf("%s %s ?", f.key, f.cmp)
}
+5 -1
appview/db/pulls.go
···
//
// `w` is parent of none, so it is the top of the stack
func GetStack(e Execer, stackId string) (Stack, error) {
-
unorderedPulls, err := GetPulls(e, Filter("stack_id", stackId))
+
unorderedPulls, err := GetPulls(
+
e,
+
FilterEq("stack_id", stackId),
+
FilterNotEq("state", PullDeleted),
+
)
if err != nil {
return nil, err
}
+2 -2
appview/ingester.go
···
err = db.AddArtifact(d, artifact)
case models.CommitOperationDelete:
-
err = db.DeleteArtifact(d, db.Filter("did", did), db.Filter("rkey", e.Commit.RKey))
+
err = db.DeleteArtifact(d, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))
}
if err != nil {
···
err = db.UpsertProfile(tx, &profile)
case models.CommitOperationDelete:
-
err = db.DeleteArtifact(d, db.Filter("did", did), db.Filter("rkey", e.Commit.RKey))
+
err = db.DeleteArtifact(d, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))
}
if err != nil {
+9 -9
appview/state/artifact.go
···
artifacts, err := db.GetArtifact(
s.db,
-
db.Filter("repo_at", f.RepoAt),
-
db.Filter("tag", tag.Tag.Hash[:]),
-
db.Filter("name", filename),
+
db.FilterEq("repo_at", f.RepoAt),
+
db.FilterEq("tag", tag.Tag.Hash[:]),
+
db.FilterEq("name", filename),
)
if err != nil {
log.Println("failed to get artifacts", err)
···
artifacts, err := db.GetArtifact(
s.db,
-
db.Filter("repo_at", f.RepoAt),
-
db.Filter("tag", tag[:]),
-
db.Filter("name", filename),
+
db.FilterEq("repo_at", f.RepoAt),
+
db.FilterEq("tag", tag[:]),
+
db.FilterEq("name", filename),
)
if err != nil {
log.Println("failed to get artifacts", err)
···
defer tx.Rollback()
err = db.DeleteArtifact(tx,
-
db.Filter("repo_at", f.RepoAt),
-
db.Filter("tag", artifact.Tag[:]),
-
db.Filter("name", filename),
+
db.FilterEq("repo_at", f.RepoAt),
+
db.FilterEq("tag", artifact.Tag[:]),
+
db.FilterEq("name", filename),
)
if err != nil {
log.Println("failed to remove artifact record from db", err)
+5 -5
appview/state/pull.go
···
pulls, err := db.GetPulls(
s.db,
-
db.Filter("repo_at", f.RepoAt),
-
db.Filter("state", state),
+
db.FilterEq("repo_at", f.RepoAt),
+
db.FilterEq("state", state),
)
if err != nil {
log.Println("failed to get pulls", err)
···
tx,
p.ParentChangeId,
// these should be enough filters to be unique per-stack
-
db.Filter("repo_at", p.RepoAt.String()),
-
db.Filter("owner_did", p.OwnerDid),
-
db.Filter("change_id", p.ChangeId),
+
db.FilterEq("repo_at", p.RepoAt.String()),
+
db.FilterEq("owner_did", p.OwnerDid),
+
db.FilterEq("change_id", p.ChangeId),
if err != nil {
+1 -1
appview/state/repo.go
···
return
}
-
artifacts, err := db.GetArtifact(s.db, db.Filter("repo_at", f.RepoAt))
+
artifacts, err := db.GetArtifact(s.db, db.FilterEq("repo_at", f.RepoAt))
if err != nil {
log.Println("failed grab artifacts", err)
return