Passed
Pull Request — master (#18)
by
02:40
created

Setup::authen()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 19
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 14
nc 1
nop 1
1
<?php
2
3
namespace LineMob\Core\Mocky;
4
5
use LineMob\Core\Middleware\ClearActiveCmdMiddleware;
6
use LineMob\Core\Middleware\CommandSwitcherMiddleware;
7
use LineMob\Core\Middleware\DummyFallbackMiddleware;
8
use LineMob\Core\Middleware\DumpLogMiddleware;
9
use LineMob\Core\Middleware\StoreActiveCmdMiddleware;
10
use LineMob\Core\Mocky\Auth\AuthenticationMiddleware;
11
use LineMob\Core\Mocky\Auth\AuthorizationMiddleware;
12
use LineMob\Core\Mocky\Auth\LoginCommand;
13
use LineMob\Core\Mocky\Auth\SecuredCommand;
14
use LineMob\Core\Mocky\Doctrine\StorageConnectMiddleware;
15
use LineMob\Core\Mocky\Doctrine\StoragePersistMiddleware;
16
use LineMob\Core\Mocky\Switcher\SomeCommand;
17
use LineMob\Core\Mocky\Switcher\SwitchedCommand;
18
use LineMob\Core\Mocky\Switcher\SwitchingMiddleware;
19
use LineMob\Core\QuickStart;
20
21
class Setup
22
{
23
    /**
24
     * @param array $data
25
     *
26
     * @return array
27
     */
28
    public static function switching(array $data)
29
    {
30
        return (new QuickStart(
31
            [
32
                new SwitchingMiddleware(),
33
                new CommandSwitcherMiddleware(),
34
                new DummyFallbackMiddleware(),
35
                new DumpLogMiddleware(true),
36
            ]
37
        ))
38
            ->addCommand(SomeCommand::class, true)
39
            ->addCommand(SwitchedCommand::class)
40
            ->setup(null, null, [], new Sender())
41
            ->handle(json_encode($data));
42
    }
43
44
    /**
45
     * @param array $data
46
     *
47
     * @return array
48
     */
49
    public static function authen(array $data)
50
    {
51
        return (new QuickStart(
52
            [
53
                new ClearActiveCmdMiddleware(),
54
                new StorageConnectMiddleware(),
55
                new AuthorizationMiddleware(),
56
                new CommandSwitcherMiddleware(),
57
                new AuthenticationMiddleware(),
58
                new DummyFallbackMiddleware(),
59
                new StoreActiveCmdMiddleware(),
60
                new StoragePersistMiddleware(),
61
                new DumpLogMiddleware(true),
62
            ]
63
        ))
64
            ->addCommand(SecuredCommand::class, true)
65
            ->addCommand(LoginCommand::class)
66
            ->setup(null, null, [], new Sender())
67
            ->handle(json_encode($data));
68
    }
69
}
70