Browse Source

add callback method for dataset status

tags/v1.21.12.1
yan 5 years ago
parent
commit
3fd45e1080
1 changed files with 14 additions and 0 deletions
  1. +14
    -0
      models/attachment.go

+ 14
- 0
models/attachment.go View File

@@ -35,6 +35,20 @@ type Attachment struct {
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}

func (a *Attachment) AfterUpdate() {
if a.DatasetID > 0 {
datasetIsPublicCount, err := x.Where("dataset_id = ? AND is_private = ?", a.DatasetID, false).Count(new(Attachment))
if err != nil {
return
}
if datasetIsPublicCount > 0 {
x.Table(new(Dataset)).ID(a.DatasetID).Update(map[string]interface{}{"status": DatasetStatusPublic})
} else {
x.Table(new(Dataset)).ID(a.DatasetID).Update(map[string]interface{}{"status": DatasetStatusPrivate})
}
}
}

// IncreaseDownloadCount is update download count + 1
func (a *Attachment) IncreaseDownloadCount() error {
// Update download count.


Loading…
Cancel
Save