Passed
Push — master ( 1145e4...3a5c01 )
by Alexey
03:43
created

WebHookController::receiveUpdateAction()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 34
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 34
rs 8.5806
c 0
b 0
f 0
cc 4
eloc 21
nc 4
nop 2
1
<?php
2
3
namespace Skobkin\Bundle\PointToolsBundle\Controller\Telegram;
4
5
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
6
use Symfony\Component\HttpFoundation\JsonResponse;
7
use Symfony\Component\HttpFoundation\Request;
8
use unreal4u\TelegramAPI\Telegram\Types\Update;
9
10
/**
11
 * {@inheritdoc}
12
 */
13
class WebHookController extends Controller
14
{
15
    public function receiveUpdateAction(Request $request, $token)
16
    {
17
        if ($token !== $savedToken = $this->getParameter('telegram_token')) {
18
            throw $this->createNotFoundException();
19
        }
20
21
        $logger = $this->get('logger');
22
23
        $content = json_decode($request->getContent(), true);
24
25
        $update = new Update(
26
            $content,
27
            $logger
28
        );
29
30
        try {
31
            $this->get('point_tools.telegram.update_dispatcher')->process($update);
32
        } catch (\Exception $e) {
33
            if ($this->getParameter('kernel.debug')) {
34
                throw $e;
35
            }
36
37
            $logger->addError('Telegram bot error', [
38
                'exception' => get_class($e),
39
                'file' => $e->getFile(),
40
                'line' => $e->getLine(),
41
                'code' => $e->getCode(),
42
                'message' => $e->getMessage(),
43
                'trace' => $e->getTraceAsString(),
44
            ]);
45
        }
46
47
        return new JsonResponse('received');
48
    }
49
}
50