MarkdownAdviserMiddleware   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 35
rs 10
wmc 5
lcom 1
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
B handle() 0 28 5
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