summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorSandro Santilli <strk@kbt.io>2016-11-22 07:42:52 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2016-11-22 14:42:52 +0800
commitc25063d8346c304567dcf6685b7741c7096c7645 (patch)
tree832bcbb4884523e5a0610e8f03cbbbad6b3951b0 /models
parentb2cce12980f6f86cf5f68e70af4588add6cc2452 (diff)
downloadgitea-c25063d8346c304567dcf6685b7741c7096c7645.tar.gz
gitea-c25063d8346c304567dcf6685b7741c7096c7645.zip
Lint webhook.go, unexports simpleMarshalJSON (#198)
Diffstat (limited to 'models')
-rw-r--r--models/webhook.go30
1 files changed, 27 insertions, 3 deletions
diff --git a/models/webhook.go b/models/webhook.go
index a8d8fd51bb..6413d6edb8 100644
--- a/models/webhook.go
+++ b/models/webhook.go
@@ -23,12 +23,16 @@ import (
"code.gitea.io/gitea/modules/sync"
)
+// HookQueue is a global queue of web hooks
var HookQueue = sync.NewUniqueQueue(setting.Webhook.QueueLength)
+// HookContentType is the content type of a web hook
type HookContentType int
const (
+ // ContentTypeJSON is a JSON payload for web hooks
ContentTypeJSON HookContentType = iota + 1
+ // ContentTypeForm is an url-encoded form payload for web hook
ContentTypeForm
)
@@ -42,6 +46,7 @@ func ToHookContentType(name string) HookContentType {
return hookContentTypes[name]
}
+// Name returns the name of a given web hook's content type
func (t HookContentType) Name() string {
switch t {
case ContentTypeJSON:
@@ -58,6 +63,7 @@ func IsValidHookContentType(name string) bool {
return ok
}
+// HookEvents is a set of web hook events
type HookEvents struct {
Create bool `json:"create"`
Push bool `json:"push"`
@@ -73,8 +79,10 @@ type HookEvent struct {
HookEvents `json:"events"`
}
+// HookStatus is the status of a web hook
type HookStatus int
+// Possible statuses of a web hook
const (
HookStatusNone = iota
HookStatusSucceed
@@ -103,15 +111,20 @@ type Webhook struct {
UpdatedUnix int64
}
+// BeforeInsert will be invoked by XORM before inserting a record
+// representing this object
func (w *Webhook) BeforeInsert() {
w.CreatedUnix = time.Now().Unix()
w.UpdatedUnix = w.CreatedUnix
}
+// BeforeUpdate will be invoked by XORM before updating a record
+// representing this object
func (w *Webhook) BeforeUpdate() {
w.UpdatedUnix = time.Now().Unix()
}
+// AfterSet updates the webhook object upon setting a column
func (w *Webhook) AfterSet(colName string, _ xorm.Cell) {
var err error
switch colName {
@@ -127,6 +140,7 @@ func (w *Webhook) AfterSet(colName string, _ xorm.Cell) {
}
}
+// GetSlackHook returns slack metadata
func (w *Webhook) GetSlackHook() *SlackMeta {
s := &SlackMeta{}
if err := json.Unmarshal([]byte(w.Meta), s); err != nil {
@@ -165,6 +179,7 @@ func (w *Webhook) HasPullRequestEvent() bool {
(w.ChooseEvents && w.HookEvents.PullRequest)
}
+// EventsArray returns an array of hook events
func (w *Webhook) EventsArray() []string {
events := make([]string, 0, 3)
if w.HasCreateEvent() {
@@ -290,8 +305,10 @@ func GetActiveWebhooksByOrgID(orgID int64) (ws []*Webhook, err error) {
// \___|_ / \____/ \____/|__|_ \ |____| (____ /____ >__|_ \
// \/ \/ \/ \/ \/
+// HookTaskType is the type of an hook task
type HookTaskType int
+// Types of hook tasks
const (
GOGS HookTaskType = iota + 1
SLACK
@@ -307,6 +324,7 @@ func ToHookTaskType(name string) HookTaskType {
return hookTaskTypes[name]
}
+// Name returns the name of an hook task type
func (t HookTaskType) Name() string {
switch t {
case GOGS:
@@ -323,8 +341,10 @@ func IsValidHookTaskType(name string) bool {
return ok
}
+// HookEventType is the type of an hook event
type HookEventType string
+// Types of hook events
const (
HookEventCreate HookEventType = "create"
HookEventPush HookEventType = "push"
@@ -368,15 +388,18 @@ type HookTask struct {
ResponseInfo *HookResponse `xorm:"-"`
}
+// BeforeUpdate will be invoked by XORM before updating a record
+// representing this object
func (t *HookTask) BeforeUpdate() {
if t.RequestInfo != nil {
- t.RequestContent = t.SimpleMarshalJSON(t.RequestInfo)
+ t.RequestContent = t.simpleMarshalJSON(t.RequestInfo)
}
if t.ResponseInfo != nil {
- t.ResponseContent = t.SimpleMarshalJSON(t.ResponseInfo)
+ t.ResponseContent = t.simpleMarshalJSON(t.ResponseInfo)
}
}
+// AfterSet updates the webhook object upon setting a column
func (t *HookTask) AfterSet(colName string, _ xorm.Cell) {
var err error
switch colName {
@@ -405,7 +428,7 @@ func (t *HookTask) AfterSet(colName string, _ xorm.Cell) {
}
}
-func (t *HookTask) SimpleMarshalJSON(v interface{}) string {
+func (t *HookTask) simpleMarshalJSON(v interface{}) string {
p, err := json.Marshal(v)
if err != nil {
log.Error(3, "Marshal [%d]: %v", t.ID, err)
@@ -624,6 +647,7 @@ func DeliverHooks() {
}
}
+// InitDeliverHooks starts the hooks delivery thread
func InitDeliverHooks() {
go DeliverHooks()
}