diff options
author | Bo-Yi Wu <appleboy.tw@gmail.com> | 2017-04-20 10:31:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-20 10:31:31 +0800 |
commit | fa2a513c62910c133316472247121c5c562eaf60 (patch) | |
tree | dbcb79b8bf9f0ac89ac522f871a773b5addac4b8 /models/attachment.go | |
parent | a2d365c81fc4eb35ac598bcef696eb1b775b8a9b (diff) | |
download | gitea-fa2a513c62910c133316472247121c5c562eaf60.tar.gz gitea-fa2a513c62910c133316472247121c5c562eaf60.zip |
feat: add download count field and unit testing for attachment. (#1512)
* feat: add download count field and unit testing.
* fix: unit testing
* refactor: improve testing.
* fix: update comment
* add default value.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Diffstat (limited to 'models/attachment.go')
-rw-r--r-- | models/attachment.go | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/models/attachment.go b/models/attachment.go index 5fd90bef13..d800a47109 100644 --- a/models/attachment.go +++ b/models/attachment.go @@ -20,15 +20,15 @@ import ( // Attachment represent a attachment of issue/comment/release. type Attachment struct { - ID int64 `xorm:"pk autoincr"` - UUID string `xorm:"uuid UNIQUE"` - IssueID int64 `xorm:"INDEX"` - CommentID int64 - ReleaseID int64 `xorm:"INDEX"` - Name string - - Created time.Time `xorm:"-"` - CreatedUnix int64 + ID int64 `xorm:"pk autoincr"` + UUID string `xorm:"uuid UNIQUE"` + IssueID int64 `xorm:"INDEX"` + ReleaseID int64 `xorm:"INDEX"` + CommentID int64 + Name string + DownloadCount int64 `xorm:"DEFAULT 0"` + Created time.Time `xorm:"-"` + CreatedUnix int64 } // BeforeInsert is invoked from XORM before inserting an object of this type. @@ -45,6 +45,19 @@ func (a *Attachment) AfterSet(colName string, _ xorm.Cell) { } } +// IncreaseDownloadCount is update download count + 1 +func (a *Attachment) IncreaseDownloadCount() error { + sess := x.NewSession() + defer sessionRelease(sess) + + // Update download count. + if _, err := sess.Exec("UPDATE `attachment` SET download_count=download_count+1 WHERE id=?", a.ID); err != nil { + return fmt.Errorf("increase attachment count: %v", err) + } + + return nil +} + // AttachmentLocalPath returns where attachment is stored in local file // system based on given UUID. func AttachmentLocalPath(uuid string) string { |