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

UploadController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 16
dl 0
loc 29
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getConfig() 0 11 2
A actionVideos() 0 6 1
A actionImages() 0 6 1
1
<?php
2
namespace App\Http\Api\Backend\Controller;
3
4
use App\Http\Form\UploadForm;
5
use yii\web\UploadedFile;
6
use Yii;
7
8
class UploadController extends Controller
9
{
10
    public function actionImages()
11
    {
12
        $form = new UploadForm($this->getConfig('image'));
13
        $form->load(Yii::$app->getRequest()->post(), '');
14
        $form->file = UploadedFile::getInstanceByName('file');
15
        return $form->handle();
16
    }
17
18
    public function actionVideos()
19
    {
20
        $form = new UploadForm($this->getConfig('video'));
21
        $form->load(Yii::$app->getRequest()->post(), '');
22
        $form->file = UploadedFile::getInstanceByName('file');
23
        return $form->handle();
24
    }
25
26
    private function getConfig(string $type): array
27
    {
28
        /** @var \RazonYang\Yii2\Setting\ManagerInterface $setting */
29
        $setting = Yii::$app->get('settingManager');
30
        $prefix = 'upload.' . $type . '.';
31
        $parameters = ['maxSize', 'extensions'];
32
        $config = [];
33
        foreach ($parameters as $parameter) {
34
            $config[$parameter] = $setting->get($prefix.$parameter);
35
        }
36
        return $config;
37
    }
38
}
39