Completed
Push — master ( 9b9020...8f5910 )
by Razon
02:07
created

ControllerTrait::verbs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
namespace App\Http\Api\Frontend\Controller;
3
4
use App\Http\Filter\Auth\Authenticator;
5
use App\Http\Filter\RateLimit\RateLimiter;
6
use App\Http\Filter\RateLimit\Redis\RedisRateLimitFallbackUser;
7
use yii\filters\VerbFilter;
8
use yii\filters\{Cors};
9
use yii\filters\auth\{HttpBearerAuth, QueryParamAuth};
10
use Yii;
11
12
trait ControllerTrait
13
{
14
    public function behaviors()
15
    {
16
        return [
17
            'cors' => [
18
                'class' => Cors::class,
19
                'cors' => [
20
                    'Origin' => Yii::$app->params['api.cors.origin'],
21
                    'Access-Control-Request-Method' => Yii::$app->params['api.cors.methods'],
22
                    'Access-Control-Request-Headers' => Yii::$app->params['api.cors.headers'],
23
                    'Access-Control-Allow-Credentials' => Yii::$app->params['api.cors.allowCredentials'],
24
                    'Access-Control-Max-Age' => Yii::$app->params['api.cors.maxAge'],
25
                    'Access-Control-Expose-Headers' => Yii::$app->params['api.cors.exposeHeaders'],
26
                ],
27
            ],
28
            'authenticator' => [
29
                'class' => Authenticator::class,
30
                'optional' => [
31
                    'options',
32
                ],
33
                'authMethods' => [
34
                    'query' => [
35
                        'class' => QueryParamAuth::class,
36
                        'tokenParam' => 'access_token',
37
                    ],
38
                    'bearer' => [
39
                        'class' => HttpBearerAuth::class,
40
                    ],
41
                ],
42
            ],
43
            'verb' => [
44
                'class' => VerbFilter::class,
45
                'actions' => $this->verbs(),
46
            ],
47
            'rateLimiter' => [
48
                'class' => RateLimiter::class,
49
                'fallbackUser' => RedisRateLimitFallbackUser::class,
50
            ],
51
        ];
52
    }
53
54
    /**
55
     * @return array
56
     */
57
    protected function verbs()
58
    {
59
        return [];
60
    }
61
}