mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Move attachment into models/repo/ (#17650)
* Move attachment into models/repo/ * Fix test * Fix bug
This commit is contained in:
@@ -663,7 +663,8 @@ func HasIssueLabel(issueID, labelID int64) bool {
|
||||
|
||||
// newIssueLabel this function creates a new label it does not check if the label is valid for the issue
|
||||
// YOU MUST CHECK THIS BEFORE THIS FUNCTION
|
||||
func newIssueLabel(e db.Engine, issue *Issue, label *Label, doer *User) (err error) {
|
||||
func newIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *User) (err error) {
|
||||
e := db.GetEngine(ctx)
|
||||
if _, err = e.Insert(&IssueLabel{
|
||||
IssueID: issue.ID,
|
||||
LabelID: label.ID,
|
||||
@@ -683,7 +684,7 @@ func newIssueLabel(e db.Engine, issue *Issue, label *Label, doer *User) (err err
|
||||
Label: label,
|
||||
Content: "1",
|
||||
}
|
||||
if _, err = createComment(e, opts); err != nil {
|
||||
if _, err = createComment(ctx, opts); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -696,11 +697,12 @@ func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
if err = sess.Begin(); err != nil {
|
||||
ctx, committer, err := db.TxContext()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer committer.Close()
|
||||
sess := db.GetEngine(ctx)
|
||||
|
||||
if err = issue.loadRepo(sess); err != nil {
|
||||
return err
|
||||
@@ -711,7 +713,7 @@ func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err = newIssueLabel(sess, issue, label, doer); err != nil {
|
||||
if err = newIssueLabel(ctx, issue, label, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -720,11 +722,12 @@ func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
return sess.Commit()
|
||||
return committer.Commit()
|
||||
}
|
||||
|
||||
// newIssueLabels add labels to an issue. It will check if the labels are valid for the issue
|
||||
func newIssueLabels(e db.Engine, issue *Issue, labels []*Label, doer *User) (err error) {
|
||||
func newIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer *User) (err error) {
|
||||
e := db.GetEngine(ctx)
|
||||
if err = issue.loadRepo(e); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -735,7 +738,7 @@ func newIssueLabels(e db.Engine, issue *Issue, labels []*Label, doer *User) (err
|
||||
continue
|
||||
}
|
||||
|
||||
if err = newIssueLabel(e, issue, label, doer); err != nil {
|
||||
if err = newIssueLabel(ctx, issue, label, doer); err != nil {
|
||||
return fmt.Errorf("newIssueLabel: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -751,7 +754,7 @@ func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error) {
|
||||
}
|
||||
defer committer.Close()
|
||||
|
||||
if err = newIssueLabels(db.GetEngine(ctx), issue, labels, doer); err != nil {
|
||||
if err = newIssueLabels(ctx, issue, labels, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -763,7 +766,8 @@ func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error) {
|
||||
return committer.Commit()
|
||||
}
|
||||
|
||||
func deleteIssueLabel(e db.Engine, issue *Issue, label *Label, doer *User) (err error) {
|
||||
func deleteIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *User) (err error) {
|
||||
e := db.GetEngine(ctx)
|
||||
if count, err := e.Delete(&IssueLabel{
|
||||
IssueID: issue.ID,
|
||||
LabelID: label.ID,
|
||||
@@ -784,7 +788,7 @@ func deleteIssueLabel(e db.Engine, issue *Issue, label *Label, doer *User) (err
|
||||
Issue: issue,
|
||||
Label: label,
|
||||
}
|
||||
if _, err = createComment(e, opts); err != nil {
|
||||
if _, err = createComment(ctx, opts); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -793,22 +797,22 @@ func deleteIssueLabel(e db.Engine, issue *Issue, label *Label, doer *User) (err
|
||||
|
||||
// DeleteIssueLabel deletes issue-label relation.
|
||||
func DeleteIssueLabel(issue *Issue, label *Label, doer *User) (err error) {
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
if err = sess.Begin(); err != nil {
|
||||
ctx, committer, err := db.TxContext()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer committer.Close()
|
||||
|
||||
if err = deleteIssueLabel(sess, issue, label, doer); err != nil {
|
||||
if err = deleteIssueLabel(ctx, issue, label, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
issue.Labels = nil
|
||||
if err = issue.loadLabels(sess); err != nil {
|
||||
if err = issue.loadLabels(db.GetEngine(ctx)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return sess.Commit()
|
||||
return committer.Commit()
|
||||
}
|
||||
|
||||
func deleteLabelsByRepoID(sess db.Engine, repoID int64) error {
|
||||
|
Reference in New Issue
Block a user