summaryrefslogtreecommitdiffstats
path: root/models/webhook.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-08-29 11:49:59 +0800
committerUnknwon <u@gogs.io>2015-08-29 11:49:59 +0800
commit55ddf225bb8aba269a407b1d13ab00a497df4f9b (patch)
treef8609999ba624a7a9cbb4b9fd00ca2bddde38959 /models/webhook.go
parent2f08e9f04880aedd82be24e191198eff700ddc08 (diff)
downloadgitea-55ddf225bb8aba269a407b1d13ab00a497df4f9b.tar.gz
gitea-55ddf225bb8aba269a407b1d13ab00a497df4f9b.zip
webhook APIs
Diffstat (limited to 'models/webhook.go')
-rw-r--r--models/webhook.go28
1 files changed, 21 insertions, 7 deletions
diff --git a/models/webhook.go b/models/webhook.go
index b2fecb8d3c..75380d17c1 100644
--- a/models/webhook.go
+++ b/models/webhook.go
@@ -97,11 +97,16 @@ type Webhook struct {
Updated time.Time `xorm:"UPDATED"`
}
-// GetEvent handles conversion from Events to HookEvent.
-func (w *Webhook) GetEvent() {
- w.HookEvent = &HookEvent{}
- if err := json.Unmarshal([]byte(w.Events), w.HookEvent); err != nil {
- log.Error(4, "webhook.GetEvent(%d): %v", w.ID, err)
+func (w *Webhook) AfterSet(colName string, _ xorm.Cell) {
+ var err error
+ switch colName {
+ case "events":
+ w.HookEvent = &HookEvent{}
+ if err = json.Unmarshal([]byte(w.Events), w.HookEvent); err != nil {
+ log.Error(3, "Unmarshal[%d]: %v", w.ID, err)
+ }
+ case "created":
+ w.Created = regulateTimeZone(w.Created)
}
}
@@ -137,6 +142,17 @@ func (w *Webhook) HasPushEvent() bool {
(w.ChooseEvents && w.HookEvents.Push)
}
+func (w *Webhook) EventsArray() []string {
+ events := make([]string, 0, 2)
+ if w.HasCreateEvent() {
+ events = append(events, "create")
+ }
+ if w.HasPushEvent() {
+ events = append(events, "push")
+ }
+ return events
+}
+
// CreateWebhook creates a new web hook.
func CreateWebhook(w *Webhook) error {
_, err := x.Insert(w)
@@ -382,8 +398,6 @@ func PrepareWebhooks(repo *Repository, event HookEventType, p api.Payloader) err
}
for _, w := range ws {
- w.GetEvent()
-
switch event {
case HOOK_EVENT_CREATE:
if !w.HasCreateEvent() {