Passed
Push — master ( 3b518a...cd2a02 )
by Adam
11:23
created

RoleController   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A update() 0 16 1
1
<?php
2
3
namespace Coyote\Http\Controllers\Guide;
4
5
use Coyote\Guide;
6
use Coyote\Http\Controllers\Controller;
7
use Coyote\Services\Guide\RoleCalculator;
8
use Illuminate\Http\Request;
9
use Illuminate\Validation\Rule;
10
11
class RoleController extends Controller
12
{
13
    public function update(Guide $guide, Request $request): string
14
    {
15
        $this->validate(
16
            $request,
17
            ['role' => ['required', Rule::in([Guide\Role::JUNIOR, Guide\Role::MID, Guide\Role::SENIOR])]]
18
        );
19
20
        $reflectionClass = new \ReflectionClass(Guide\Role::class);
21
        $role = strtolower(
22
            array_flip($reflectionClass->getConstants(\ReflectionClassConstant::IS_PUBLIC))[$request->input('role')]
23
        );
24
25
        (new RoleCalculator($guide))->setRole($this->userId, $role);
26
        $guide->save();
27
28
        return $role;
29
    }
30
}
31