diff options
author | Unknwon <u@gogs.io> | 2017-03-19 17:44:46 -0400 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-03-19 17:44:46 -0400 |
commit | 2807274e2dca1780443bcbbab946b1551c4c88f5 (patch) | |
tree | 30c58a2e76e6e1338e8fd8e615d08bcd5b22d5bf /models/webhook.go | |
parent | 55a5ad5cdcbe6906f863d0b7f27d1ee500720416 (diff) |
repo/webhook: able to retrigger delivery history (#2187)
Diffstat (limited to 'models/webhook.go')
-rw-r--r-- | models/webhook.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/models/webhook.go b/models/webhook.go index ad7a5a3d..19f2ae18 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -21,6 +21,7 @@ import ( api "github.com/gogits/go-gogs-client" + "github.com/gogits/gogs/models/errors" "github.com/gogits/gogs/modules/httplib" "github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/sync" @@ -241,7 +242,7 @@ func getWebhook(bean *Webhook) (*Webhook, error) { if err != nil { return nil, err } else if !has { - return nil, ErrWebhookNotExist{bean.ID} + return nil, errors.WebhookNotExist{bean.ID} } return bean, nil } @@ -494,6 +495,21 @@ func createHookTask(e Engine, t *HookTask) error { return err } +// GetHookTaskOfWebhookByUUID returns hook task of given webhook by UUID. +func GetHookTaskOfWebhookByUUID(webhookID int64, uuid string) (*HookTask, error) { + hookTask := &HookTask{ + HookID: webhookID, + UUID: uuid, + } + has, err := x.Get(hookTask) + if err != nil { + return nil, err + } else if !has { + return nil, errors.HookTaskNotExist{webhookID, uuid} + } + return hookTask, nil +} + // UpdateHookTask updates information of hook task. func UpdateHookTask(t *HookTask) error { _, err := x.Id(t.ID).AllCols().Update(t) @@ -704,7 +720,7 @@ func (t *HookTask) deliver() { // TODO: shoot more hooks at same time. func DeliverHooks() { tasks := make([]*HookTask, 0, 10) - x.Where("is_delivered=?", false).Iterate(new(HookTask), + x.Where("is_delivered = ?", false).Iterate(new(HookTask), func(idx int, bean interface{}) error { t := bean.(*HookTask) t.deliver() @@ -725,7 +741,7 @@ func DeliverHooks() { HookQueue.Remove(repoID) tasks = make([]*HookTask, 0, 5) - if err := x.Where("repo_id=? AND is_delivered=?", repoID, false).Find(&tasks); err != nil { + if err := x.Where("repo_id = ?", repoID).And("is_delivered = ?", false).Find(&tasks); err != nil { log.Error(4, "Get repository [%s] hook tasks: %v", repoID, err) continue } |