|
8 | 8 | class GithubWebHookController extends Controller
|
9 | 9 | {
|
10 | 10 | /**
|
11 |
| - * Handle incoming Telegram webhook requests. |
| 11 | + * Handle incoming GitHub webhook requests. |
12 | 12 | *
|
13 | 13 | * @param \Illuminate\Http\Request $request
|
14 | 14 | * @param TelegramBot $telegramBot
|
15 | 15 | *
|
| 16 | + * @return void |
16 | 17 | * @throws \Throwable
|
17 | 18 | *
|
18 |
| - * @return void |
19 | 19 | */
|
20 |
| - public function release(Request $request, TelegramBot $telegramBot) |
| 20 | + public function release(Request $request, TelegramBot $telegramBot): void |
21 | 21 | {
|
22 |
| - $payload = $request->all(); |
| 22 | + $request->validate([ |
| 23 | + 'action' => 'required|string', |
| 24 | + 'release.tag_name' => 'required|string', |
| 25 | + 'release.name' => 'nullable|string', |
| 26 | + 'release.body' => 'nullable|string', |
| 27 | + 'release.html_url' => 'required|url', |
| 28 | + 'repository.full_name' => 'required|string', |
| 29 | + ]); |
23 | 30 |
|
24 |
| - if ($payload['action'] === 'published') { |
25 |
| - $release = $payload['release']; |
26 |
| - $repo = $payload['repository']; |
| 31 | + abort_if($request->input('action') !== 'published', 400); |
27 | 32 |
|
28 |
| - $message = view('telegram.github-release-notification', [ |
29 |
| - 'repo' => $repo['full_name'], |
30 |
| - 'version' => $release['tag_name'], |
31 |
| - 'title' => $release['name'], |
32 |
| - 'body' => $release['body'], |
33 |
| - 'url' => $release['html_url'], |
34 |
| - ])->render(); |
| 33 | + $message = view('telegram.github-release-notification', [ |
| 34 | + 'repo' => $request->input('repository.full_name'), |
| 35 | + 'version' => $request->input('release.tag_name'), |
| 36 | + 'title' => $request->input('release.name'), |
| 37 | + 'body' => $request->input('release.body'), |
| 38 | + 'url' => $request->input('release.html_url'), |
| 39 | + ])->render(); |
35 | 40 |
|
36 |
| - collect(config('telegram.chats')) |
37 |
| - ->where('orchid_release', true) |
38 |
| - ->each(fn ($subscriber) => $telegramBot->sendMessageToChat($subscriber['id'], $message)); |
39 |
| - } |
| 41 | + collect(config('telegram.chats')) |
| 42 | + ->where('orchid_release', true) |
| 43 | + ->each(fn($subscriber) => $telegramBot->sendMessageToChat($subscriber['id'], $message)); |
40 | 44 | }
|
41 | 45 | }
|
0 commit comments