@@ -21,19 +21,24 @@ type (
21
21
DingtalkPayload dingtalk.Payload
22
22
)
23
23
24
+ var (
25
+ _ PayloadConvertor = & DingtalkPayload {}
26
+ )
27
+
24
28
// SetSecret sets the dingtalk secret
25
- func (p * DingtalkPayload ) SetSecret (_ string ) {}
29
+ func (d * DingtalkPayload ) SetSecret (_ string ) {}
26
30
27
31
// JSONPayload Marshals the DingtalkPayload to json
28
- func (p * DingtalkPayload ) JSONPayload () ([]byte , error ) {
29
- data , err := json .MarshalIndent (p , "" , " " )
32
+ func (d * DingtalkPayload ) JSONPayload () ([]byte , error ) {
33
+ data , err := json .MarshalIndent (d , "" , " " )
30
34
if err != nil {
31
35
return []byte {}, err
32
36
}
33
37
return data , nil
34
38
}
35
39
36
- func getDingtalkCreatePayload (p * api.CreatePayload ) (* DingtalkPayload , error ) {
40
+ // Create implements PayloadConvertor Create method
41
+ func (d * DingtalkPayload ) Create (p * api.CreatePayload ) (api.Payloader , error ) {
37
42
// created tag/branch
38
43
refName := git .RefEndName (p .Ref )
39
44
title := fmt .Sprintf ("[%s] %s %s created" , p .Repo .FullName , p .RefType , refName )
@@ -50,7 +55,8 @@ func getDingtalkCreatePayload(p *api.CreatePayload) (*DingtalkPayload, error) {
50
55
}, nil
51
56
}
52
57
53
- func getDingtalkDeletePayload (p * api.DeletePayload ) (* DingtalkPayload , error ) {
58
+ // Delete implements PayloadConvertor Delete method
59
+ func (d * DingtalkPayload ) Delete (p * api.DeletePayload ) (api.Payloader , error ) {
54
60
// created tag/branch
55
61
refName := git .RefEndName (p .Ref )
56
62
title := fmt .Sprintf ("[%s] %s %s deleted" , p .Repo .FullName , p .RefType , refName )
@@ -67,7 +73,8 @@ func getDingtalkDeletePayload(p *api.DeletePayload) (*DingtalkPayload, error) {
67
73
}, nil
68
74
}
69
75
70
- func getDingtalkForkPayload (p * api.ForkPayload ) (* DingtalkPayload , error ) {
76
+ // Fork implements PayloadConvertor Fork method
77
+ func (d * DingtalkPayload ) Fork (p * api.ForkPayload ) (api.Payloader , error ) {
71
78
title := fmt .Sprintf ("%s is forked to %s" , p .Forkee .FullName , p .Repo .FullName )
72
79
73
80
return & DingtalkPayload {
@@ -82,7 +89,8 @@ func getDingtalkForkPayload(p *api.ForkPayload) (*DingtalkPayload, error) {
82
89
}, nil
83
90
}
84
91
85
- func getDingtalkPushPayload (p * api.PushPayload ) (* DingtalkPayload , error ) {
92
+ // Push implements PayloadConvertor Push method
93
+ func (d * DingtalkPayload ) Push (p * api.PushPayload ) (api.Payloader , error ) {
86
94
var (
87
95
branchName = git .RefEndName (p .Ref )
88
96
commitDesc string
@@ -131,7 +139,8 @@ func getDingtalkPushPayload(p *api.PushPayload) (*DingtalkPayload, error) {
131
139
}, nil
132
140
}
133
141
134
- func getDingtalkIssuesPayload (p * api.IssuePayload ) (* DingtalkPayload , error ) {
142
+ // Issue implements PayloadConvertor Issue method
143
+ func (d * DingtalkPayload ) Issue (p * api.IssuePayload ) (api.Payloader , error ) {
135
144
text , issueTitle , attachmentText , _ := getIssuesPayloadInfo (p , noneLinkFormatter , true )
136
145
137
146
return & DingtalkPayload {
@@ -147,7 +156,8 @@ func getDingtalkIssuesPayload(p *api.IssuePayload) (*DingtalkPayload, error) {
147
156
}, nil
148
157
}
149
158
150
- func getDingtalkIssueCommentPayload (p * api.IssueCommentPayload ) (* DingtalkPayload , error ) {
159
+ // IssueComment implements PayloadConvertor IssueComment method
160
+ func (d * DingtalkPayload ) IssueComment (p * api.IssueCommentPayload ) (api.Payloader , error ) {
151
161
text , issueTitle , _ := getIssueCommentPayloadInfo (p , noneLinkFormatter , true )
152
162
153
163
return & DingtalkPayload {
@@ -162,7 +172,8 @@ func getDingtalkIssueCommentPayload(p *api.IssueCommentPayload) (*DingtalkPayloa
162
172
}, nil
163
173
}
164
174
165
- func getDingtalkPullRequestPayload (p * api.PullRequestPayload ) (* DingtalkPayload , error ) {
175
+ // PullRequest implements PayloadConvertor PullRequest method
176
+ func (d * DingtalkPayload ) PullRequest (p * api.PullRequestPayload ) (api.Payloader , error ) {
166
177
text , issueTitle , attachmentText , _ := getPullRequestPayloadInfo (p , noneLinkFormatter , true )
167
178
168
179
return & DingtalkPayload {
@@ -178,7 +189,8 @@ func getDingtalkPullRequestPayload(p *api.PullRequestPayload) (*DingtalkPayload,
178
189
}, nil
179
190
}
180
191
181
- func getDingtalkPullRequestApprovalPayload (p * api.PullRequestPayload , event models.HookEventType ) (* DingtalkPayload , error ) {
192
+ // Review implements PayloadConvertor Review method
193
+ func (d * DingtalkPayload ) Review (p * api.PullRequestPayload , event models.HookEventType ) (api.Payloader , error ) {
182
194
var text , title string
183
195
switch p .Action {
184
196
case api .HookIssueReviewed :
@@ -204,7 +216,8 @@ func getDingtalkPullRequestApprovalPayload(p *api.PullRequestPayload, event mode
204
216
}, nil
205
217
}
206
218
207
- func getDingtalkRepositoryPayload (p * api.RepositoryPayload ) (* DingtalkPayload , error ) {
219
+ // Repository implements PayloadConvertor Repository method
220
+ func (d * DingtalkPayload ) Repository (p * api.RepositoryPayload ) (api.Payloader , error ) {
208
221
var title , url string
209
222
switch p .Action {
210
223
case api .HookRepoCreated :
@@ -235,7 +248,8 @@ func getDingtalkRepositoryPayload(p *api.RepositoryPayload) (*DingtalkPayload, e
235
248
return nil , nil
236
249
}
237
250
238
- func getDingtalkReleasePayload (p * api.ReleasePayload ) (* DingtalkPayload , error ) {
251
+ // Release implements PayloadConvertor Release method
252
+ func (d * DingtalkPayload ) Release (p * api.ReleasePayload ) (api.Payloader , error ) {
239
253
text , _ := getReleasePayloadInfo (p , noneLinkFormatter , true )
240
254
241
255
return & DingtalkPayload {
@@ -251,36 +265,6 @@ func getDingtalkReleasePayload(p *api.ReleasePayload) (*DingtalkPayload, error)
251
265
}
252
266
253
267
// GetDingtalkPayload converts a ding talk webhook into a DingtalkPayload
254
- func GetDingtalkPayload (p api.Payloader , event models.HookEventType , meta string ) (* DingtalkPayload , error ) {
255
- s := new (DingtalkPayload )
256
-
257
- switch event {
258
- case models .HookEventCreate :
259
- return getDingtalkCreatePayload (p .(* api.CreatePayload ))
260
- case models .HookEventDelete :
261
- return getDingtalkDeletePayload (p .(* api.DeletePayload ))
262
- case models .HookEventFork :
263
- return getDingtalkForkPayload (p .(* api.ForkPayload ))
264
- case models .HookEventIssues , models .HookEventIssueAssign , models .HookEventIssueLabel , models .HookEventIssueMilestone :
265
- return getDingtalkIssuesPayload (p .(* api.IssuePayload ))
266
- case models .HookEventIssueComment , models .HookEventPullRequestComment :
267
- pl , ok := p .(* api.IssueCommentPayload )
268
- if ok {
269
- return getDingtalkIssueCommentPayload (pl )
270
- }
271
- return getDingtalkPullRequestPayload (p .(* api.PullRequestPayload ))
272
- case models .HookEventPush :
273
- return getDingtalkPushPayload (p .(* api.PushPayload ))
274
- case models .HookEventPullRequest , models .HookEventPullRequestAssign , models .HookEventPullRequestLabel ,
275
- models .HookEventPullRequestMilestone , models .HookEventPullRequestSync :
276
- return getDingtalkPullRequestPayload (p .(* api.PullRequestPayload ))
277
- case models .HookEventPullRequestReviewApproved , models .HookEventPullRequestReviewRejected , models .HookEventPullRequestReviewComment :
278
- return getDingtalkPullRequestApprovalPayload (p .(* api.PullRequestPayload ), event )
279
- case models .HookEventRepository :
280
- return getDingtalkRepositoryPayload (p .(* api.RepositoryPayload ))
281
- case models .HookEventRelease :
282
- return getDingtalkReleasePayload (p .(* api.ReleasePayload ))
283
- }
284
-
285
- return s , nil
268
+ func GetDingtalkPayload (p api.Payloader , event models.HookEventType , meta string ) (api.Payloader , error ) {
269
+ return convertPayloader (new (DingtalkPayload ), p , event )
286
270
}
0 commit comments