MarkdownAdviserMiddleware::handle()   B
last analyzed

Complexity

Conditions 5
Paths 7

Size

Total Lines 28
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 5
eloc 16
c 2
b 0
f 0
nc 7
nop 1
dl 0
loc 28
rs 8.439
1
<?php
2
namespace Domains\Bot\Middlewares;
3
4
use Domains\Message;
5
use Domains\Middleware\MiddlewareInterface;
6
7
/**
8
 * Class MarkdownAdviserMiddleware
9
 */
10
class MarkdownAdviserMiddleware implements MiddlewareInterface
11
{
12
    /**
13
     * @param Message $message
14
     * @return mixed
15
     */
16
    public function handle(Message $message)
17
    {
18
        $text = $message->escaped_text;
19
20
        if (preg_match('/^(@.*?\s)?(?:оформи\sкод|код\sоформи).*?$/isu', $text)) {
21
22
            $hasMentions = count($message->mentions);
23
            $mention = null;
24
25
            if ($hasMentions) {
26
                $mention = $message->mentions[0]->isBot()
27
                    ? $message->user
28
                    : $message->mentions[0];
29
            }
30
31
            $answer = $mention
32
                ? trans('markdown.personal', [
33
                    'user'  => $mention->login,
34
                ])
35
                : trans('markdown.common');
36
37
            $message->italic($answer);
38
39
            return null;
40
        }
41
42
        return $message;
43
    }
44
}
45