SqlBuilderMiddleware::handle()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 18
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 18
rs 9.4285
cc 3
eloc 10
nc 4
nop 1
1
<?php
2
namespace Domains\Bot\Middlewares;
3
4
use Domains\Message;
5
use BigShark\SQLToBuilder\BuilderClass;
6
use Domains\Middleware\MiddlewareGroupableInterface;
7
use Domains\Middleware\MiddlewareInterface;
8
9
/**
10
 * Class SqlBuilderMiddleware
11
 */
12
class SqlBuilderMiddleware implements MiddlewareInterface, MiddlewareGroupableInterface
13
{
14
    /**
15
     * @param Message $message
16
     * @return mixed
17
     */
18
    public function handle(Message $message)
19
    {
20
        $text = $message->escaped_text;
21
22
        if (preg_match('/^(?:select|update|delete|drop|insert)/iu', $text)) {
23
            try {
24
                $builder = new BuilderClass($text);
25
                $message->code($builder->convert(), 'php');
26
27
                return null;
28
29
            } catch (\Exception $e) {
30
                $message->pre('SQL Builder error: ' . $e->getMessage());
31
            }
32
        }
33
34
        return $message;
35
    }
36
37
    /**
38
     * @return string|array
39
     */
40
    public function getGroup()
41
    {
42
        return ['testing'];
43
    }
44
}
45