@@ -16,64 +16,7 @@ class WebhookController extends Controller
16
16
*/
17
17
public function githubAction (Request $ request )
18
18
{
19
- $ data = json_decode ($ request ->getContent (), true );
20
- if ($ data === null ) {
21
- throw new \Exception ('Invalid JSON body! ' );
22
- }
23
-
24
- $ event = $ request ->headers ->get ('X-Github-Event ' );
25
- $ listener = $ this ->get ('app.issue_listener ' );
26
-
27
- switch ($ event ) {
28
- case 'issue_comment ' :
29
- $ responseData = [
30
- 'issue ' => $ data ['issue ' ]['number ' ],
31
- 'status_change ' => $ listener ->handleCommentAddedEvent (
32
- $ data ['issue ' ]['number ' ],
33
- $ data ['comment ' ]['body ' ]
34
- ),
35
- ];
36
- break ;
37
- case 'pull_request ' :
38
- switch ($ data ['action ' ]) {
39
- case 'opened ' :
40
- $ responseData = [
41
- 'pull_request ' => $ data ['pull_request ' ]['number ' ],
42
- 'status_change ' => $ listener ->handlePullRequestCreatedEvent (
43
- $ data ['pull_request ' ]['number ' ],
44
- $ data ['pull_request ' ]['title ' ],
45
- $ data ['pull_request ' ]['body ' ]
46
- ),
47
- ];
48
- break ;
49
- default :
50
- $ responseData = [
51
- 'unsupported_action ' => $ data ['action ' ],
52
- ];
53
- }
54
- break ;
55
- case 'issues ' :
56
- switch ($ data ['action ' ]) {
57
- case 'labeled ' :
58
- $ responseData = [
59
- 'issue ' => $ data ['issue ' ]['number ' ],
60
- 'status_change ' => $ listener ->handleLabelAddedEvent (
61
- $ data ['issue ' ]['number ' ],
62
- $ data ['label ' ]['name ' ]
63
- ),
64
- ];
65
- break ;
66
- default :
67
- $ responseData = [
68
- 'unsupported_action ' => $ data ['action ' ],
69
- ];
70
- }
71
- break ;
72
- default :
73
- $ responseData = [
74
- 'unsupported_event ' => $ event ,
75
- ];
76
- }
19
+ $ responseData = $ this ->get ('app.github.request_handler ' )->handle ($ request );
77
20
78
21
return new JsonResponse ($ responseData );
79
22
}
0 commit comments