|
|
|
@ -174,28 +174,32 @@ func CreateWebhook(w *Webhook) error {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetWebhookByRepoID returns webhook of repository by given ID.
|
|
|
|
|
func GetWebhookByRepoID(repoID, id int64) (*Webhook, error) {
|
|
|
|
|
w := new(Webhook)
|
|
|
|
|
has, err := x.Id(id).And("repo_id=?", repoID).Get(w)
|
|
|
|
|
// getWebhook uses argument bean as query condition,
|
|
|
|
|
// ID must be specified and do not assign unnecessary fields.
|
|
|
|
|
func getWebhook(bean *Webhook) (*Webhook, error) {
|
|
|
|
|
has, err := x.Get(bean)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
} else if !has {
|
|
|
|
|
return nil, ErrWebhookNotExist{id}
|
|
|
|
|
return nil, ErrWebhookNotExist{bean.ID}
|
|
|
|
|
}
|
|
|
|
|
return w, nil
|
|
|
|
|
return bean, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetWebhookByRepoID returns webhook of repository by given ID.
|
|
|
|
|
func GetWebhookByRepoID(repoID, id int64) (*Webhook, error) {
|
|
|
|
|
return getWebhook(&Webhook{
|
|
|
|
|
ID: id,
|
|
|
|
|
RepoID: repoID,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetWebhookByOrgID returns webhook of organization by given ID.
|
|
|
|
|
func GetWebhookByOrgID(orgID, id int64) (*Webhook, error) {
|
|
|
|
|
w := new(Webhook)
|
|
|
|
|
has, err := x.Id(id).And("org_id=?", orgID).Get(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
} else if !has {
|
|
|
|
|
return nil, ErrWebhookNotExist{id}
|
|
|
|
|
}
|
|
|
|
|
return w, nil
|
|
|
|
|
return getWebhook(&Webhook{
|
|
|
|
|
ID: id,
|
|
|
|
|
OrgID: orgID,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetActiveWebhooksByRepoID returns all active webhooks of repository.
|
|
|
|
@ -216,23 +220,40 @@ func UpdateWebhook(w *Webhook) error {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DeleteWebhook deletes webhook of repository.
|
|
|
|
|
func DeleteWebhook(id int64) (err error) {
|
|
|
|
|
// deleteWebhook uses argument bean as query condition,
|
|
|
|
|
// ID must be specified and do not assign unnecessary fields.
|
|
|
|
|
func deleteWebhook(bean *Webhook) (err error) {
|
|
|
|
|
sess := x.NewSession()
|
|
|
|
|
defer sessionRelease(sess)
|
|
|
|
|
if err = sess.Begin(); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if _, err = sess.Delete(&Webhook{ID: id}); err != nil {
|
|
|
|
|
if _, err = sess.Delete(bean); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
} else if _, err = sess.Delete(&HookTask{HookID: id}); err != nil {
|
|
|
|
|
} else if _, err = sess.Delete(&HookTask{HookID: bean.ID}); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return sess.Commit()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DeleteWebhookByRepoID deletes webhook of repository by given ID.
|
|
|
|
|
func DeleteWebhookByRepoID(repoID, id int64) (error) {
|
|
|
|
|
return deleteWebhook(&Webhook{
|
|
|
|
|
ID: id,
|
|
|
|
|
RepoID: repoID,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DeleteWebhookByOrgID deletes webhook of organization by given ID.
|
|
|
|
|
func DeleteWebhookByOrgID(orgID, id int64) (error) {
|
|
|
|
|
return deleteWebhook(&Webhook{
|
|
|
|
|
ID: id,
|
|
|
|
|
OrgID: orgID,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetWebhooksByOrgID returns all webhooks for an organization.
|
|
|
|
|
func GetWebhooksByOrgID(orgID int64) (ws []*Webhook, err error) {
|
|
|
|
|
err = x.Find(&ws, &Webhook{OrgID: orgID})
|
|
|
|
|