summaryrefslogtreecommitdiffstats
path: root/models/repo
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo')
-rw-r--r--models/repo/attachment.go20
-rw-r--r--models/repo/attachment_test.go8
-rw-r--r--models/repo/star.go8
-rw-r--r--models/repo/star_test.go16
-rw-r--r--models/repo/upload.go23
-rw-r--r--models/repo/watch.go8
-rw-r--r--models/repo/watch_test.go32
7 files changed, 58 insertions, 57 deletions
diff --git a/models/repo/attachment.go b/models/repo/attachment.go
index df3b9cd213..1a588398c1 100644
--- a/models/repo/attachment.go
+++ b/models/repo/attachment.go
@@ -37,9 +37,9 @@ func init() {
}
// IncreaseDownloadCount is update download count + 1
-func (a *Attachment) IncreaseDownloadCount() error {
+func (a *Attachment) IncreaseDownloadCount(ctx context.Context) error {
// Update download count.
- if _, err := db.GetEngine(db.DefaultContext).Exec("UPDATE `attachment` SET download_count=download_count+1 WHERE id=?", a.ID); err != nil {
+ if _, err := db.GetEngine(ctx).Exec("UPDATE `attachment` SET download_count=download_count+1 WHERE id=?", a.ID); err != nil {
return fmt.Errorf("increase attachment count: %w", err)
}
@@ -164,8 +164,8 @@ func GetAttachmentByReleaseIDFileName(ctx context.Context, releaseID int64, file
}
// DeleteAttachment deletes the given attachment and optionally the associated file.
-func DeleteAttachment(a *Attachment, remove bool) error {
- _, err := DeleteAttachments(db.DefaultContext, []*Attachment{a}, remove)
+func DeleteAttachment(ctx context.Context, a *Attachment, remove bool) error {
+ _, err := DeleteAttachments(ctx, []*Attachment{a}, remove)
return err
}
@@ -196,23 +196,23 @@ func DeleteAttachments(ctx context.Context, attachments []*Attachment, remove bo
}
// DeleteAttachmentsByIssue deletes all attachments associated with the given issue.
-func DeleteAttachmentsByIssue(issueID int64, remove bool) (int, error) {
- attachments, err := GetAttachmentsByIssueID(db.DefaultContext, issueID)
+func DeleteAttachmentsByIssue(ctx context.Context, issueID int64, remove bool) (int, error) {
+ attachments, err := GetAttachmentsByIssueID(ctx, issueID)
if err != nil {
return 0, err
}
- return DeleteAttachments(db.DefaultContext, attachments, remove)
+ return DeleteAttachments(ctx, attachments, remove)
}
// DeleteAttachmentsByComment deletes all attachments associated with the given comment.
-func DeleteAttachmentsByComment(commentID int64, remove bool) (int, error) {
- attachments, err := GetAttachmentsByCommentID(db.DefaultContext, commentID)
+func DeleteAttachmentsByComment(ctx context.Context, commentID int64, remove bool) (int, error) {
+ attachments, err := GetAttachmentsByCommentID(ctx, commentID)
if err != nil {
return 0, err
}
- return DeleteAttachments(db.DefaultContext, attachments, remove)
+ return DeleteAttachments(ctx, attachments, remove)
}
// UpdateAttachmentByUUID Updates attachment via uuid
diff --git a/models/repo/attachment_test.go b/models/repo/attachment_test.go
index 21fba227a5..c059ffd39a 100644
--- a/models/repo/attachment_test.go
+++ b/models/repo/attachment_test.go
@@ -21,7 +21,7 @@ func TestIncreaseDownloadCount(t *testing.T) {
assert.Equal(t, int64(0), attachment.DownloadCount)
// increase download count
- err = attachment.IncreaseDownloadCount()
+ err = attachment.IncreaseDownloadCount(db.DefaultContext)
assert.NoError(t, err)
attachment, err = repo_model.GetAttachmentByUUID(db.DefaultContext, "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")
@@ -45,15 +45,15 @@ func TestGetByCommentOrIssueID(t *testing.T) {
func TestDeleteAttachments(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
- count, err := repo_model.DeleteAttachmentsByIssue(4, false)
+ count, err := repo_model.DeleteAttachmentsByIssue(db.DefaultContext, 4, false)
assert.NoError(t, err)
assert.Equal(t, 2, count)
- count, err = repo_model.DeleteAttachmentsByComment(2, false)
+ count, err = repo_model.DeleteAttachmentsByComment(db.DefaultContext, 2, false)
assert.NoError(t, err)
assert.Equal(t, 2, count)
- err = repo_model.DeleteAttachment(&repo_model.Attachment{ID: 8}, false)
+ err = repo_model.DeleteAttachment(db.DefaultContext, &repo_model.Attachment{ID: 8}, false)
assert.NoError(t, err)
attachment, err := repo_model.GetAttachmentByUUID(db.DefaultContext, "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a18")
diff --git a/models/repo/star.go b/models/repo/star.go
index 89bdb7ac05..60737149da 100644
--- a/models/repo/star.go
+++ b/models/repo/star.go
@@ -24,8 +24,8 @@ func init() {
}
// StarRepo or unstar repository.
-func StarRepo(userID, repoID int64, star bool) error {
- ctx, committer, err := db.TxContext(db.DefaultContext)
+func StarRepo(ctx context.Context, userID, repoID int64, star bool) error {
+ ctx, committer, err := db.TxContext(ctx)
if err != nil {
return err
}
@@ -72,8 +72,8 @@ func IsStaring(ctx context.Context, userID, repoID int64) bool {
}
// GetStargazers returns the users that starred the repo.
-func GetStargazers(repo *Repository, opts db.ListOptions) ([]*user_model.User, error) {
- sess := db.GetEngine(db.DefaultContext).Where("star.repo_id = ?", repo.ID).
+func GetStargazers(ctx context.Context, repo *Repository, opts db.ListOptions) ([]*user_model.User, error) {
+ sess := db.GetEngine(ctx).Where("star.repo_id = ?", repo.ID).
Join("LEFT", "star", "`user`.id = star.uid")
if opts.Page > 0 {
sess = db.SetSessionPagination(sess, &opts)
diff --git a/models/repo/star_test.go b/models/repo/star_test.go
index f15ac12ebe..62eac4e29a 100644
--- a/models/repo/star_test.go
+++ b/models/repo/star_test.go
@@ -18,11 +18,11 @@ func TestStarRepo(t *testing.T) {
const userID = 2
const repoID = 1
unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
- assert.NoError(t, repo_model.StarRepo(userID, repoID, true))
+ assert.NoError(t, repo_model.StarRepo(db.DefaultContext, userID, repoID, true))
unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
- assert.NoError(t, repo_model.StarRepo(userID, repoID, true))
+ assert.NoError(t, repo_model.StarRepo(db.DefaultContext, userID, repoID, true))
unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
- assert.NoError(t, repo_model.StarRepo(userID, repoID, false))
+ assert.NoError(t, repo_model.StarRepo(db.DefaultContext, userID, repoID, false))
unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
}
@@ -36,7 +36,7 @@ func TestRepository_GetStargazers(t *testing.T) {
// repo with stargazers
assert.NoError(t, unittest.PrepareTestDatabase())
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4})
- gazers, err := repo_model.GetStargazers(repo, db.ListOptions{Page: 0})
+ gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
assert.NoError(t, err)
if assert.Len(t, gazers, 1) {
assert.Equal(t, int64(2), gazers[0].ID)
@@ -47,7 +47,7 @@ func TestRepository_GetStargazers2(t *testing.T) {
// repo with stargazers
assert.NoError(t, unittest.PrepareTestDatabase())
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
- gazers, err := repo_model.GetStargazers(repo, db.ListOptions{Page: 0})
+ gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
assert.NoError(t, err)
assert.Len(t, gazers, 0)
}
@@ -57,15 +57,15 @@ func TestClearRepoStars(t *testing.T) {
const userID = 2
const repoID = 1
unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
- assert.NoError(t, repo_model.StarRepo(userID, repoID, true))
+ assert.NoError(t, repo_model.StarRepo(db.DefaultContext, userID, repoID, true))
unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
- assert.NoError(t, repo_model.StarRepo(userID, repoID, false))
+ assert.NoError(t, repo_model.StarRepo(db.DefaultContext, userID, repoID, false))
unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
assert.NoError(t, repo_model.ClearRepoStars(db.DefaultContext, repoID))
unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID, RepoID: repoID})
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
- gazers, err := repo_model.GetStargazers(repo, db.ListOptions{Page: 0})
+ gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0})
assert.NoError(t, err)
assert.Len(t, gazers, 0)
}
diff --git a/models/repo/upload.go b/models/repo/upload.go
index 3b1b97c6d6..d96ab21bcd 100644
--- a/models/repo/upload.go
+++ b/models/repo/upload.go
@@ -5,6 +5,7 @@
package repo
import (
+ "context"
"fmt"
"io"
"mime/multipart"
@@ -61,7 +62,7 @@ func (upload *Upload) LocalPath() string {
}
// NewUpload creates a new upload object.
-func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err error) {
+func NewUpload(ctx context.Context, name string, buf []byte, file multipart.File) (_ *Upload, err error) {
upload := &Upload{
UUID: gouuid.New().String(),
Name: name,
@@ -84,7 +85,7 @@ func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err err
return nil, fmt.Errorf("Copy: %w", err)
}
- if _, err := db.GetEngine(db.DefaultContext).Insert(upload); err != nil {
+ if _, err := db.GetEngine(ctx).Insert(upload); err != nil {
return nil, err
}
@@ -92,9 +93,9 @@ func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err err
}
// GetUploadByUUID returns the Upload by UUID
-func GetUploadByUUID(uuid string) (*Upload, error) {
+func GetUploadByUUID(ctx context.Context, uuid string) (*Upload, error) {
upload := &Upload{}
- has, err := db.GetEngine(db.DefaultContext).Where("uuid=?", uuid).Get(upload)
+ has, err := db.GetEngine(ctx).Where("uuid=?", uuid).Get(upload)
if err != nil {
return nil, err
} else if !has {
@@ -104,23 +105,23 @@ func GetUploadByUUID(uuid string) (*Upload, error) {
}
// GetUploadsByUUIDs returns multiple uploads by UUIDS
-func GetUploadsByUUIDs(uuids []string) ([]*Upload, error) {
+func GetUploadsByUUIDs(ctx context.Context, uuids []string) ([]*Upload, error) {
if len(uuids) == 0 {
return []*Upload{}, nil
}
// Silently drop invalid uuids.
uploads := make([]*Upload, 0, len(uuids))
- return uploads, db.GetEngine(db.DefaultContext).In("uuid", uuids).Find(&uploads)
+ return uploads, db.GetEngine(ctx).In("uuid", uuids).Find(&uploads)
}
// DeleteUploads deletes multiple uploads
-func DeleteUploads(uploads ...*Upload) (err error) {
+func DeleteUploads(ctx context.Context, uploads ...*Upload) (err error) {
if len(uploads) == 0 {
return nil
}
- ctx, committer, err := db.TxContext(db.DefaultContext)
+ ctx, committer, err := db.TxContext(ctx)
if err != nil {
return err
}
@@ -159,8 +160,8 @@ func DeleteUploads(uploads ...*Upload) (err error) {
}
// DeleteUploadByUUID deletes a upload by UUID
-func DeleteUploadByUUID(uuid string) error {
- upload, err := GetUploadByUUID(uuid)
+func DeleteUploadByUUID(ctx context.Context, uuid string) error {
+ upload, err := GetUploadByUUID(ctx, uuid)
if err != nil {
if IsErrUploadNotExist(err) {
return nil
@@ -168,7 +169,7 @@ func DeleteUploadByUUID(uuid string) error {
return fmt.Errorf("GetUploadByUUID: %w", err)
}
- if err := DeleteUploads(upload); err != nil {
+ if err := DeleteUploads(ctx, upload); err != nil {
return fmt.Errorf("DeleteUpload: %w", err)
}
diff --git a/models/repo/watch.go b/models/repo/watch.go
index 00f313ca7c..02a94ecac0 100644
--- a/models/repo/watch.go
+++ b/models/repo/watch.go
@@ -59,8 +59,8 @@ func IsWatchMode(mode WatchMode) bool {
}
// IsWatching checks if user has watched given repository.
-func IsWatching(userID, repoID int64) bool {
- watch, err := GetWatch(db.DefaultContext, userID, repoID)
+func IsWatching(ctx context.Context, userID, repoID int64) bool {
+ watch, err := GetWatch(ctx, userID, repoID)
return err == nil && IsWatchMode(watch.Mode)
}
@@ -155,8 +155,8 @@ func GetRepoWatchersIDs(ctx context.Context, repoID int64) ([]int64, error) {
}
// GetRepoWatchers returns range of users watching given repository.
-func GetRepoWatchers(repoID int64, opts db.ListOptions) ([]*user_model.User, error) {
- sess := db.GetEngine(db.DefaultContext).Where("watch.repo_id=?", repoID).
+func GetRepoWatchers(ctx context.Context, repoID int64, opts db.ListOptions) ([]*user_model.User, error) {
+ sess := db.GetEngine(ctx).Where("watch.repo_id=?", repoID).
Join("LEFT", "watch", "`user`.id=`watch`.user_id").
And("`watch`.mode<>?", WatchModeDont)
if opts.Page > 0 {
diff --git a/models/repo/watch_test.go b/models/repo/watch_test.go
index 8b8c6d6250..1384d1e157 100644
--- a/models/repo/watch_test.go
+++ b/models/repo/watch_test.go
@@ -17,13 +17,13 @@ import (
func TestIsWatching(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
- assert.True(t, repo_model.IsWatching(1, 1))
- assert.True(t, repo_model.IsWatching(4, 1))
- assert.True(t, repo_model.IsWatching(11, 1))
+ assert.True(t, repo_model.IsWatching(db.DefaultContext, 1, 1))
+ assert.True(t, repo_model.IsWatching(db.DefaultContext, 4, 1))
+ assert.True(t, repo_model.IsWatching(db.DefaultContext, 11, 1))
- assert.False(t, repo_model.IsWatching(1, 5))
- assert.False(t, repo_model.IsWatching(8, 1))
- assert.False(t, repo_model.IsWatching(unittest.NonexistentID, unittest.NonexistentID))
+ assert.False(t, repo_model.IsWatching(db.DefaultContext, 1, 5))
+ assert.False(t, repo_model.IsWatching(db.DefaultContext, 8, 1))
+ assert.False(t, repo_model.IsWatching(db.DefaultContext, unittest.NonexistentID, unittest.NonexistentID))
}
func TestGetWatchers(t *testing.T) {
@@ -47,7 +47,7 @@ func TestRepository_GetWatchers(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
- watchers, err := repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err := repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, repo.NumWatches)
for _, watcher := range watchers {
@@ -55,7 +55,7 @@ func TestRepository_GetWatchers(t *testing.T) {
}
repo = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 9})
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, 0)
}
@@ -64,7 +64,7 @@ func TestWatchIfAuto(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
- watchers, err := repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err := repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, repo.NumWatches)
@@ -74,13 +74,13 @@ func TestWatchIfAuto(t *testing.T) {
// Must not add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 8, 1, true))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
// Should not add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 10, 1, true))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
@@ -88,31 +88,31 @@ func TestWatchIfAuto(t *testing.T) {
// Must not add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 8, 1, true))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
// Should not add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 12, 1, false))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
// Should add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 12, 1, true))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount+1)
// Should remove watch, inhibit from adding auto
assert.NoError(t, repo_model.WatchRepo(db.DefaultContext, 12, 1, false))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
// Must not add watch
assert.NoError(t, repo_model.WatchIfAuto(db.DefaultContext, 12, 1, true))
- watchers, err = repo_model.GetRepoWatchers(repo.ID, db.ListOptions{Page: 1})
+ watchers, err = repo_model.GetRepoWatchers(db.DefaultContext, repo.ID, db.ListOptions{Page: 1})
assert.NoError(t, err)
assert.Len(t, watchers, prevCount)
}