Passed
Push — develop ( eb8832...f8f730 )
by Nikolay
05:34
created

StorageManagementProcessor   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
eloc 32
c 1
b 0
f 0
dl 0
loc 46
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B callBack() 0 37 7
1
<?php
2
/**
3
 * Copyright (C) MIKO LLC - All Rights Reserved
4
 * Unauthorized copying of this file, via any medium is strictly prohibited
5
 * Proprietary and confidential
6
 * Written by Nikolay Beketov, 7 2020
7
 *
8
 */
9
10
namespace MikoPBX\PBXCoreREST\Lib;
11
12
13
14
use MikoPBX\Core\System\Storage;
15
use Phalcon\Di\Injectable;
16
17
class StorageManagementProcessor extends Injectable
18
{
19
    /**
20
     * Processes Storage requests
21
     *
22
     * @param array $request
23
     *
24
     * @return \MikoPBX\PBXCoreREST\Lib\PBXApiResult
25
     */
26
    public static function callBack(array $request): PBXApiResult
27
    {
28
        $action = $request['action'];
29
        $data   = $request['data'];
30
        $res    = new PBXApiResult();
31
        $res->processor = __METHOD__;
32
        switch ($action) {
33
            case 'list':
34
                $st           = new Storage();
35
                $res->success = true;
36
                $res->data    = $st->getAllHdd();
37
                break;
38
            case 'mount':
39
                $res->success = Storage::mountDisk($data['dev'], $data['format'], $data['dir']);
40
                break;
41
            case 'umount':
42
                $res->success = Storage::umountDisk($data['dir']);
43
                break;
44
            case 'mkfs':
45
                $res->success = Storage::mkfs_disk($data['dev']);
46
                if ($res->success) {
47
                    $res->data['status'] = 'inprogress';
48
                }
49
                break;
50
            case 'statusMkfs':
51
                $res->success        = true;
52
                $res->data['status'] = Storage::statusMkfs($data['dev']);
53
                break;
54
            default:
55
                $res             = new PBXApiResult();
56
                $res->processor = __METHOD__;
57
                $res->messages[] = "Unknown action - {$action} in storageCallBack";
58
        }
59
60
        $res->function = $action;
61
62
        return $res;
63
    }
64
}