ソースを参照

Small improve on deleting attachements (#3145)

* Small improve on deleting attachements

* improve the sequence of deletion
tags/v1.4.0-rc1
Lunny Xiao 6年前
コミット
f5155b9913
1個のファイルの変更17行の追加8行の削除
  1. 17
    8
      models/attachment.go

+ 17
- 8
models/attachment.go ファイルの表示

@@ -135,19 +135,28 @@ func DeleteAttachment(a *Attachment, remove bool) error {

// DeleteAttachments deletes the given attachments and optionally the associated files.
func DeleteAttachments(attachments []*Attachment, remove bool) (int, error) {
for i, a := range attachments {
if remove {
if len(attachments) == 0 {
return 0, nil
}

var ids = make([]int64, 0, len(attachments))
for _, a := range attachments {
ids = append(ids, a.ID)
}

cnt, err := x.In("id", ids).NoAutoCondition().Delete(attachments[0])
if err != nil {
return 0, err
}

if remove {
for i, a := range attachments {
if err := os.Remove(a.LocalPath()); err != nil {
return i, err
}
}

if _, err := x.Delete(a); err != nil {
return i, err
}
}

return len(attachments), nil
return int(cnt), nil
}

// DeleteAttachmentsByIssue deletes all attachments associated with the given issue.

読み込み中…
キャンセル
保存