aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/actions/artifact.go13
-rw-r--r--models/actions/runner.go2
-rw-r--r--models/asymkey/ssh_key.go14
-rw-r--r--models/db/context.go34
-rw-r--r--models/db/error.go18
-rw-r--r--models/issues/issue_test.go4
-rw-r--r--models/issues/label.go2
-rw-r--r--models/issues/milestone.go6
-rw-r--r--models/issues/review.go11
-rw-r--r--models/org.go2
-rw-r--r--models/repo.go6
-rw-r--r--models/repo/archiver.go15
-rw-r--r--models/repo/pushmirror.go22
-rw-r--r--models/repo/pushmirror_test.go6
-rw-r--r--models/repo/release.go8
-rw-r--r--models/repo/upload.go4
-rw-r--r--models/repo/watch.go10
-rw-r--r--models/system/notice.go17
-rw-r--r--models/system/notice_test.go11
-rw-r--r--models/webhook/webhook.go2
20 files changed, 59 insertions, 148 deletions
diff --git a/models/actions/artifact.go b/models/actions/artifact.go
index 42bd9c23cb..5390f6288f 100644
--- a/models/actions/artifact.go
+++ b/models/actions/artifact.go
@@ -90,19 +90,6 @@ func getArtifactByNameAndPath(ctx context.Context, runID int64, name, fpath stri
return &art, nil
}
-// GetArtifactByID returns an artifact by id
-func GetArtifactByID(ctx context.Context, id int64) (*ActionArtifact, error) {
- var art ActionArtifact
- has, err := db.GetEngine(ctx).ID(id).Get(&art)
- if err != nil {
- return nil, err
- } else if !has {
- return nil, util.ErrNotExist
- }
-
- return &art, nil
-}
-
// UpdateArtifactByID updates an artifact by id
func UpdateArtifactByID(ctx context.Context, id int64, art *ActionArtifact) error {
art.ID = id
diff --git a/models/actions/runner.go b/models/actions/runner.go
index 5630741550..4103ba4477 100644
--- a/models/actions/runner.go
+++ b/models/actions/runner.go
@@ -254,7 +254,7 @@ func DeleteRunner(ctx context.Context, id int64) error {
return err
}
- _, err := db.GetEngine(ctx).Delete(&ActionRunner{ID: id})
+ _, err := db.DeleteByID[ActionRunner](ctx, id)
return err
}
diff --git a/models/asymkey/ssh_key.go b/models/asymkey/ssh_key.go
index 552f2ffd69..116d6351b0 100644
--- a/models/asymkey/ssh_key.go
+++ b/models/asymkey/ssh_key.go
@@ -227,16 +227,6 @@ func UpdatePublicKeyUpdated(ctx context.Context, id int64) error {
return nil
}
-// DeletePublicKeys does the actual key deletion but does not update authorized_keys file.
-func DeletePublicKeys(ctx context.Context, keyIDs ...int64) error {
- if len(keyIDs) == 0 {
- return nil
- }
-
- _, err := db.GetEngine(ctx).In("id", keyIDs).Delete(new(PublicKey))
- return err
-}
-
// PublicKeysAreExternallyManaged returns whether the provided KeyID represents an externally managed Key
func PublicKeysAreExternallyManaged(ctx context.Context, keys []*PublicKey) ([]bool, error) {
sources := make([]*auth.Source, 0, 5)
@@ -322,8 +312,8 @@ func deleteKeysMarkedForDeletion(ctx context.Context, keys []string) (bool, erro
log.Error("SearchPublicKeyByContent: %v", err)
continue
}
- if err = DeletePublicKeys(ctx, key.ID); err != nil {
- log.Error("deletePublicKeys: %v", err)
+ if _, err = db.DeleteByID[PublicKey](ctx, key.ID); err != nil {
+ log.Error("DeleteByID[PublicKey]: %v", err)
continue
}
sshKeysNeedUpdate = true
diff --git a/models/db/context.go b/models/db/context.go
index 7b739f7e9f..cda608af19 100644
--- a/models/db/context.go
+++ b/models/db/context.go
@@ -175,7 +175,7 @@ func Exec(ctx context.Context, sqlAndArgs ...any) (sql.Result, error) {
func Get[T any](ctx context.Context, cond builder.Cond) (object *T, exist bool, err error) {
if !cond.IsValid() {
- return nil, false, ErrConditionRequired{}
+ panic("cond is invalid in db.Get(ctx, cond). This should not be possible.")
}
var bean T
@@ -201,7 +201,7 @@ func GetByID[T any](ctx context.Context, id int64) (object *T, exist bool, err e
func Exist[T any](ctx context.Context, cond builder.Cond) (bool, error) {
if !cond.IsValid() {
- return false, ErrConditionRequired{}
+ panic("cond is invalid in db.Exist(ctx, cond). This should not be possible.")
}
var bean T
@@ -213,16 +213,36 @@ func ExistByID[T any](ctx context.Context, id int64) (bool, error) {
return GetEngine(ctx).ID(id).NoAutoCondition().Exist(&bean)
}
+// DeleteByID deletes the given bean with the given ID
+func DeleteByID[T any](ctx context.Context, id int64) (int64, error) {
+ var bean T
+ return GetEngine(ctx).ID(id).NoAutoCondition().NoAutoTime().Delete(&bean)
+}
+
+func DeleteByIDs[T any](ctx context.Context, ids ...int64) error {
+ if len(ids) == 0 {
+ return nil
+ }
+
+ var bean T
+ _, err := GetEngine(ctx).In("id", ids).NoAutoCondition().NoAutoTime().Delete(&bean)
+ return err
+}
+
+func Delete[T any](ctx context.Context, opts FindOptions) (int64, error) {
+ if opts == nil || !opts.ToConds().IsValid() {
+ panic("opts are empty or invalid in db.Delete(ctx, opts). This should not be possible.")
+ }
+
+ var bean T
+ return GetEngine(ctx).Where(opts.ToConds()).NoAutoCondition().NoAutoTime().Delete(&bean)
+}
+
// DeleteByBean deletes all records according non-empty fields of the bean as conditions.
func DeleteByBean(ctx context.Context, bean any) (int64, error) {
return GetEngine(ctx).Delete(bean)
}
-// DeleteByID deletes the given bean with the given ID
-func DeleteByID(ctx context.Context, id int64, bean any) (int64, error) {
- return GetEngine(ctx).ID(id).NoAutoCondition().NoAutoTime().Delete(bean)
-}
-
// FindIDs finds the IDs for the given table name satisfying the given condition
// By passing a different value than "id" for "idCol", you can query for foreign IDs, i.e. the repo IDs which satisfy the condition
func FindIDs(ctx context.Context, tableName, idCol string, cond builder.Cond) ([]int64, error) {
diff --git a/models/db/error.go b/models/db/error.go
index f601a15c01..665e970e17 100644
--- a/models/db/error.go
+++ b/models/db/error.go
@@ -72,21 +72,3 @@ func (err ErrNotExist) Error() string {
func (err ErrNotExist) Unwrap() error {
return util.ErrNotExist
}
-
-// ErrConditionRequired represents an error which require condition.
-type ErrConditionRequired struct{}
-
-// IsErrConditionRequired checks if an error is an ErrConditionRequired
-func IsErrConditionRequired(err error) bool {
- _, ok := err.(ErrConditionRequired)
- return ok
-}
-
-func (err ErrConditionRequired) Error() string {
- return "condition is required"
-}
-
-// Unwrap unwraps this as a ErrNotExist err
-func (err ErrConditionRequired) Unwrap() error {
- return util.ErrInvalidArgument
-}
diff --git a/models/issues/issue_test.go b/models/issues/issue_test.go
index 723fa27b1b..cc363d2fae 100644
--- a/models/issues/issue_test.go
+++ b/models/issues/issue_test.go
@@ -249,11 +249,11 @@ func TestIssue_InsertIssue(t *testing.T) {
// there are 5 issues and max index is 5 on repository 1, so this one should 6
issue := testInsertIssue(t, "my issue1", "special issue's comments?", 6)
- _, err := db.GetEngine(db.DefaultContext).ID(issue.ID).Delete(new(issues_model.Issue))
+ _, err := db.DeleteByID[issues_model.Issue](db.DefaultContext, issue.ID)
assert.NoError(t, err)
issue = testInsertIssue(t, `my issue2, this is my son's love \n \r \ `, "special issue's '' comments?", 7)
- _, err = db.GetEngine(db.DefaultContext).ID(issue.ID).Delete(new(issues_model.Issue))
+ _, err = db.DeleteByID[issues_model.Issue](db.DefaultContext, issue.ID)
assert.NoError(t, err)
}
diff --git a/models/issues/label.go b/models/issues/label.go
index 3b811c1529..527d8d7853 100644
--- a/models/issues/label.go
+++ b/models/issues/label.go
@@ -256,7 +256,7 @@ func DeleteLabel(ctx context.Context, id, labelID int64) error {
return nil
}
- if _, err = sess.ID(labelID).Delete(new(Label)); err != nil {
+ if _, err = db.DeleteByID[Label](ctx, labelID); err != nil {
return err
} else if _, err = sess.
Where("label_id = ?", labelID).
diff --git a/models/issues/milestone.go b/models/issues/milestone.go
index 9db7cb2b15..eb42df8263 100644
--- a/models/issues/milestone.go
+++ b/models/issues/milestone.go
@@ -289,9 +289,7 @@ func DeleteMilestoneByRepoID(ctx context.Context, repoID, id int64) error {
}
defer committer.Close()
- sess := db.GetEngine(ctx)
-
- if _, err = sess.ID(m.ID).Delete(new(Milestone)); err != nil {
+ if _, err = db.DeleteByID[Milestone](ctx, m.ID); err != nil {
return err
}
@@ -311,7 +309,7 @@ func DeleteMilestoneByRepoID(ctx context.Context, repoID, id int64) error {
repo.NumMilestones = int(numMilestones)
repo.NumClosedMilestones = int(numClosedMilestones)
- if _, err = sess.ID(repo.ID).Cols("num_milestones, num_closed_milestones").Update(repo); err != nil {
+ if _, err = db.GetEngine(ctx).ID(repo.ID).Cols("num_milestones, num_closed_milestones").Update(repo); err != nil {
return err
}
diff --git a/models/issues/review.go b/models/issues/review.go
index e2f65e369f..e06670c9a1 100644
--- a/models/issues/review.go
+++ b/models/issues/review.go
@@ -446,7 +446,7 @@ func SubmitReview(ctx context.Context, doer *user_model.User, issue *Issue, revi
continue
}
- if _, err := sess.ID(teamReviewRequest.ID).NoAutoCondition().Delete(teamReviewRequest); err != nil {
+ if _, err := db.DeleteByID[Review](ctx, teamReviewRequest.ID); err != nil {
return nil, nil, err
}
}
@@ -869,7 +869,6 @@ func DeleteReview(ctx context.Context, r *Review) error {
return err
}
defer committer.Close()
- sess := db.GetEngine(ctx)
if r.ID == 0 {
return fmt.Errorf("review is not allowed to be 0")
@@ -885,7 +884,7 @@ func DeleteReview(ctx context.Context, r *Review) error {
ReviewID: r.ID,
}
- if _, err := sess.Where(opts.ToConds()).Delete(new(Comment)); err != nil {
+ if _, err := db.Delete[Comment](ctx, opts); err != nil {
return err
}
@@ -895,7 +894,7 @@ func DeleteReview(ctx context.Context, r *Review) error {
ReviewID: r.ID,
}
- if _, err := sess.Where(opts.ToConds()).Delete(new(Comment)); err != nil {
+ if _, err := db.Delete[Comment](ctx, opts); err != nil {
return err
}
@@ -905,11 +904,11 @@ func DeleteReview(ctx context.Context, r *Review) error {
ReviewID: r.ID,
}
- if _, err := sess.Where(opts.ToConds()).Delete(new(Comment)); err != nil {
+ if _, err := db.Delete[Comment](ctx, opts); err != nil {
return err
}
- if _, err := sess.ID(r.ID).Delete(new(Review)); err != nil {
+ if _, err := db.DeleteByID[Review](ctx, r.ID); err != nil {
return err
}
diff --git a/models/org.go b/models/org.go
index 5e0deeb8de..5f61f05b16 100644
--- a/models/org.go
+++ b/models/org.go
@@ -57,7 +57,7 @@ func RemoveOrgUser(ctx context.Context, orgID, userID int64) error {
}
defer committer.Close()
- if _, err := db.GetEngine(ctx).ID(ou.ID).Delete(ou); err != nil {
+ if _, err := db.DeleteByID[organization.OrgUser](ctx, ou.ID); err != nil {
return err
} else if _, err = db.Exec(ctx, "UPDATE `user` SET num_members=num_members-1 WHERE id=?", orgID); err != nil {
return err
diff --git a/models/repo.go b/models/repo.go
index d525264b3b..0dc8ee5df3 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -344,9 +344,7 @@ func DeleteDeployKey(ctx context.Context, doer *user_model.User, id int64) error
}
}
- if _, err := db.DeleteByBean(ctx, &asymkey_model.DeployKey{
- ID: key.ID,
- }); err != nil {
+ if _, err := db.DeleteByID[asymkey_model.DeployKey](ctx, key.ID); err != nil {
return fmt.Errorf("delete deploy key [%d]: %w", key.ID, err)
}
@@ -355,7 +353,7 @@ func DeleteDeployKey(ctx context.Context, doer *user_model.User, id int64) error
if err != nil {
return err
} else if !has {
- if err = asymkey_model.DeletePublicKeys(ctx, key.KeyID); err != nil {
+ if _, err = db.DeleteByID[asymkey_model.PublicKey](ctx, key.KeyID); err != nil {
return err
}
}
diff --git a/models/repo/archiver.go b/models/repo/archiver.go
index 6d0ed42877..1fccb29499 100644
--- a/models/repo/archiver.go
+++ b/models/repo/archiver.go
@@ -68,14 +68,6 @@ func repoArchiverForRelativePath(relativePath string) (*RepoArchiver, error) {
}, nil
}
-var delRepoArchiver = new(RepoArchiver)
-
-// DeleteRepoArchiver delete archiver
-func DeleteRepoArchiver(ctx context.Context, archiver *RepoArchiver) error {
- _, err := db.GetEngine(ctx).ID(archiver.ID).Delete(delRepoArchiver)
- return err
-}
-
// GetRepoArchiver get an archiver
func GetRepoArchiver(ctx context.Context, repoID int64, tp git.ArchiveType, commitID string) (*RepoArchiver, error) {
var archiver RepoArchiver
@@ -100,12 +92,6 @@ func ExistsRepoArchiverWithStoragePath(ctx context.Context, storagePath string)
return db.GetEngine(ctx).Exist(archiver)
}
-// AddRepoArchiver adds an archiver
-func AddRepoArchiver(ctx context.Context, archiver *RepoArchiver) error {
- _, err := db.GetEngine(ctx).Insert(archiver)
- return err
-}
-
// UpdateRepoArchiverStatus updates archiver's status
func UpdateRepoArchiverStatus(ctx context.Context, archiver *RepoArchiver) error {
_, err := db.GetEngine(ctx).ID(archiver.ID).Cols("status").Update(archiver)
@@ -114,6 +100,7 @@ func UpdateRepoArchiverStatus(ctx context.Context, archiver *RepoArchiver) error
// DeleteAllRepoArchives deletes all repo archives records
func DeleteAllRepoArchives(ctx context.Context) error {
+ // 1=1 to enforce delete all data, otherwise it will delete nothing
_, err := db.GetEngine(ctx).Where("1=1").Delete(new(RepoArchiver))
return err
}
diff --git a/models/repo/pushmirror.go b/models/repo/pushmirror.go
index 61cf1849b0..24c58faf84 100644
--- a/models/repo/pushmirror.go
+++ b/models/repo/pushmirror.go
@@ -34,12 +34,13 @@ type PushMirror struct {
}
type PushMirrorOptions struct {
+ db.ListOptions
ID int64
RepoID int64
RemoteName string
}
-func (opts *PushMirrorOptions) toConds() builder.Cond {
+func (opts PushMirrorOptions) ToConds() builder.Cond {
cond := builder.NewCond()
if opts.RepoID > 0 {
cond = cond.And(builder.Eq{"repo_id": opts.RepoID})
@@ -75,12 +76,6 @@ func (m *PushMirror) GetRemoteName() string {
return m.RemoteName
}
-// InsertPushMirror inserts a push-mirror to database
-func InsertPushMirror(ctx context.Context, m *PushMirror) error {
- _, err := db.GetEngine(ctx).Insert(m)
- return err
-}
-
// UpdatePushMirror updates the push-mirror
func UpdatePushMirror(ctx context.Context, m *PushMirror) error {
_, err := db.GetEngine(ctx).ID(m.ID).AllCols().Update(m)
@@ -95,23 +90,12 @@ func UpdatePushMirrorInterval(ctx context.Context, m *PushMirror) error {
func DeletePushMirrors(ctx context.Context, opts PushMirrorOptions) error {
if opts.RepoID > 0 {
- _, err := db.GetEngine(ctx).Where(opts.toConds()).Delete(&PushMirror{})
+ _, err := db.Delete[PushMirror](ctx, opts)
return err
}
return util.NewInvalidArgumentErrorf("repoID required and must be set")
}
-func GetPushMirror(ctx context.Context, opts PushMirrorOptions) (*PushMirror, error) {
- mirror := &PushMirror{}
- exist, err := db.GetEngine(ctx).Where(opts.toConds()).Get(mirror)
- if err != nil {
- return nil, err
- } else if !exist {
- return nil, ErrPushMirrorNotExist
- }
- return mirror, nil
-}
-
// GetPushMirrorsByRepoID returns push-mirror information of a repository.
func GetPushMirrorsByRepoID(ctx context.Context, repoID int64, listOptions db.ListOptions) ([]*PushMirror, int64, error) {
sess := db.GetEngine(ctx).Where("repo_id = ?", repoID)
diff --git a/models/repo/pushmirror_test.go b/models/repo/pushmirror_test.go
index 9ab7023591..e19749d93a 100644
--- a/models/repo/pushmirror_test.go
+++ b/models/repo/pushmirror_test.go
@@ -20,20 +20,20 @@ func TestPushMirrorsIterate(t *testing.T) {
now := timeutil.TimeStampNow()
- repo_model.InsertPushMirror(db.DefaultContext, &repo_model.PushMirror{
+ db.Insert(db.DefaultContext, &repo_model.PushMirror{
RemoteName: "test-1",
LastUpdateUnix: now,
Interval: 1,
})
long, _ := time.ParseDuration("24h")
- repo_model.InsertPushMirror(db.DefaultContext, &repo_model.PushMirror{
+ db.Insert(db.DefaultContext, &repo_model.PushMirror{
RemoteName: "test-2",
LastUpdateUnix: now,
Interval: long,
})
- repo_model.InsertPushMirror(db.DefaultContext, &repo_model.PushMirror{
+ db.Insert(db.DefaultContext, &repo_model.PushMirror{
RemoteName: "test-3",
LastUpdateUnix: now,
Interval: 0,
diff --git a/models/repo/release.go b/models/repo/release.go
index 223d3f2501..4514a034ed 100644
--- a/models/repo/release.go
+++ b/models/repo/release.go
@@ -450,12 +450,6 @@ func SortReleases(rels []*Release) {
sort.Sort(sorter)
}
-// DeleteReleaseByID deletes a release from database by given ID.
-func DeleteReleaseByID(ctx context.Context, id int64) error {
- _, err := db.GetEngine(ctx).ID(id).Delete(new(Release))
- return err
-}
-
// UpdateReleasesMigrationsByType updates all migrated repositories' releases from gitServiceType to replace originalAuthorID to posterID
func UpdateReleasesMigrationsByType(ctx context.Context, gitServiceType structs.GitServiceType, originalAuthorID string, posterID int64) error {
_, err := db.GetEngine(ctx).Table("release").
@@ -509,7 +503,7 @@ func PushUpdateDeleteTag(ctx context.Context, repo *Repository, tagName string)
return fmt.Errorf("GetRelease: %w", err)
}
if rel.IsTag {
- if _, err = db.GetEngine(ctx).ID(rel.ID).Delete(new(Release)); err != nil {
+ if _, err = db.DeleteByID[Release](ctx, rel.ID); err != nil {
return fmt.Errorf("Delete: %w", err)
}
} else {
diff --git a/models/repo/upload.go b/models/repo/upload.go
index d96ab21bcd..18834f6b83 100644
--- a/models/repo/upload.go
+++ b/models/repo/upload.go
@@ -131,9 +131,7 @@ func DeleteUploads(ctx context.Context, uploads ...*Upload) (err error) {
for i := 0; i < len(uploads); i++ {
ids[i] = uploads[i].ID
}
- if _, err = db.GetEngine(ctx).
- In("id", ids).
- Delete(new(Upload)); err != nil {
+ if err = db.DeleteByIDs[Upload](ctx, ids...); err != nil {
return fmt.Errorf("delete uploads: %w", err)
}
diff --git a/models/repo/watch.go b/models/repo/watch.go
index fba66d6dcb..80da4030cb 100644
--- a/models/repo/watch.go
+++ b/models/repo/watch.go
@@ -85,23 +85,21 @@ func watchRepoMode(ctx context.Context, watch Watch, mode WatchMode) (err error)
watch.Mode = mode
- e := db.GetEngine(ctx)
-
if !hadrec && needsrec {
watch.Mode = mode
- if _, err = e.Insert(watch); err != nil {
+ if err = db.Insert(ctx, watch); err != nil {
return err
}
} else if needsrec {
watch.Mode = mode
- if _, err := e.ID(watch.ID).AllCols().Update(watch); err != nil {
+ if _, err := db.GetEngine(ctx).ID(watch.ID).AllCols().Update(watch); err != nil {
return err
}
- } else if _, err = e.Delete(Watch{ID: watch.ID}); err != nil {
+ } else if _, err = db.DeleteByID[Watch](ctx, watch.ID); err != nil {
return err
}
if repodiff != 0 {
- _, err = e.Exec("UPDATE `repository` SET num_watches = num_watches + ? WHERE id = ?", repodiff, watch.RepoID)
+ _, err = db.GetEngine(ctx).Exec("UPDATE `repository` SET num_watches = num_watches + ? WHERE id = ?", repodiff, watch.RepoID)
}
return err
}
diff --git a/models/system/notice.go b/models/system/notice.go
index 058b78e677..e7ec6a9693 100644
--- a/models/system/notice.go
+++ b/models/system/notice.go
@@ -102,12 +102,6 @@ func Notices(ctx context.Context, page, pageSize int) ([]*Notice, error) {
Find(&notices)
}
-// DeleteNotice deletes a system notice by given ID.
-func DeleteNotice(ctx context.Context, id int64) error {
- _, err := db.GetEngine(ctx).ID(id).Delete(new(Notice))
- return err
-}
-
// DeleteNotices deletes all notices with ID from start to end (inclusive).
func DeleteNotices(ctx context.Context, start, end int64) error {
if start == 0 && end == 0 {
@@ -123,17 +117,6 @@ func DeleteNotices(ctx context.Context, start, end int64) error {
return err
}
-// DeleteNoticesByIDs deletes notices by given IDs.
-func DeleteNoticesByIDs(ctx context.Context, ids []int64) error {
- if len(ids) == 0 {
- return nil
- }
- _, err := db.GetEngine(ctx).
- In("id", ids).
- Delete(new(Notice))
- return err
-}
-
// DeleteOldSystemNotices deletes all old system notices from database.
func DeleteOldSystemNotices(ctx context.Context, olderThan time.Duration) (err error) {
if olderThan <= 0 {
diff --git a/models/system/notice_test.go b/models/system/notice_test.go
index e8ce05d332..599b2fb65c 100644
--- a/models/system/notice_test.go
+++ b/models/system/notice_test.go
@@ -69,14 +69,6 @@ func TestNotices(t *testing.T) {
}
}
-func TestDeleteNotice(t *testing.T) {
- assert.NoError(t, unittest.PrepareTestDatabase())
-
- unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
- assert.NoError(t, system.DeleteNotice(db.DefaultContext, 3))
- unittest.AssertNotExistsBean(t, &system.Notice{ID: 3})
-}
-
func TestDeleteNotices(t *testing.T) {
// delete a non-empty range
assert.NoError(t, unittest.PrepareTestDatabase())
@@ -109,7 +101,8 @@ func TestDeleteNoticesByIDs(t *testing.T) {
unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 1})
unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
- assert.NoError(t, system.DeleteNoticesByIDs(db.DefaultContext, []int64{1, 3}))
+ err := db.DeleteByIDs[system.Notice](db.DefaultContext, 1, 3)
+ assert.NoError(t, err)
unittest.AssertNotExistsBean(t, &system.Notice{ID: 1})
unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
unittest.AssertNotExistsBean(t, &system.Notice{ID: 3})
diff --git a/models/webhook/webhook.go b/models/webhook/webhook.go
index a72bd938aa..4a84a3d411 100644
--- a/models/webhook/webhook.go
+++ b/models/webhook/webhook.go
@@ -471,7 +471,7 @@ func DeleteWebhookByID(ctx context.Context, id int64) (err error) {
}
defer committer.Close()
- if count, err := db.DeleteByID(ctx, id, new(Webhook)); err != nil {
+ if count, err := db.DeleteByID[Webhook](ctx, id); err != nil {
return err
} else if count == 0 {
return ErrWebhookNotExist{ID: id}