Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 7 |
CRAP | |
0.00% |
0 / 25 |
ConfigController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 7 |
90 | |
0.00% |
0 / 25 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
index | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
store | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
show | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
update | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
validateData | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 13 |
1 | <?php |
2 | |
3 | namespace Qmp\Laravel\DockerScale\Controllers; |
4 | |
5 | use App\Http\Controllers\Controller; |
6 | use Illuminate\Http\Response; |
7 | use Illuminate\Http\Request; |
8 | use Illuminate\Support\Facades\Log; |
9 | use Qmp\Laravel\MicroService\Controllers\AbstractMicroServiceController; |
10 | use Qmp\Laravel\DockerScale\Models\DockerScalerConfig; |
11 | use Illuminate\Validation\Rule; |
12 | |
13 | class ConfigController extends AbstractMicroServiceController |
14 | { |
15 | public function __construct(Request $request) |
16 | { |
17 | parent::__construct($request); |
18 | } |
19 | |
20 | /** |
21 | * Display a listing of the resource. |
22 | * |
23 | * @return \Illuminate\Http\Response |
24 | */ |
25 | public function index() |
26 | { |
27 | return DockerScalerConfig::orderBy('service_id')->get(); |
28 | } |
29 | |
30 | /** |
31 | * Store a newly created resource in storage. |
32 | * |
33 | * @param \Illuminate\Http\Request $request |
34 | * @return \Illuminate\Http\Response |
35 | */ |
36 | public function store(Request $request) |
37 | { |
38 | $validatedData = $this->validateData($request); |
39 | |
40 | return DockerScalerConfig::create($validatedData); |
41 | } |
42 | |
43 | /** |
44 | * Display the specified resource. |
45 | * |
46 | * @return \Illuminate\Http\Response |
47 | */ |
48 | public function show($configId) |
49 | { |
50 | return DockerScalerConfig::findOrFail($configId); |
51 | } |
52 | |
53 | /** |
54 | * Update the specified resource in storage. |
55 | * |
56 | * @param \Illuminate\Http\Request $request |
57 | * @param \Qmp\Laravel\DockerScale\Models\DockerScalerConfig $config |
58 | * @return \Illuminate\Http\Response |
59 | */ |
60 | public function update(Request $request, $configId) |
61 | { |
62 | $validatedData = $this->validateData($request, $configId); |
63 | $config = DockerScalerConfig::findOrFail($configId); |
64 | |
65 | $result = $config->update($validatedData); |
66 | |
67 | return response()->json(['status' => $result ? 'ok' : 'ko']); |
68 | } |
69 | |
70 | /** |
71 | * Remove the specified resource from storage. |
72 | * |
73 | * @param \Qmp\Laravel\DockerScale\Models\DockerScalerConfig $config |
74 | * @return \Illuminate\Http\Response |
75 | */ |
76 | public function destroy($configId) |
77 | { |
78 | DockerScalerConfig::find($configId)->delete(); |
79 | } |
80 | |
81 | protected function validateData(Request $request, $id = null) |
82 | { |
83 | $rules =[ |
84 | 'service_id' => 'required|exists:dockerScale.docker_services,id', |
85 | 'type' => [ |
86 | 'required', |
87 | Rule::in([DockerScalerConfig::TYPE_MEMORY, DockerScalerConfig::TYPE_CPU, DockerScalerConfig::TYPE_LOAD_AVERAGE, DockerScalerConfig::TYPE_REQUEST_TIME, DockerScalerConfig::TYPE_REQUEST_COUNT, ]), |
88 | ], |
89 | 'min_replicas' => 'required|integer', |
90 | 'max_replicas' => 'nullable|integer', |
91 | 'alert_down' => 'required|numeric', |
92 | 'alert_up' => 'required|numeric', |
93 | 'active' => 'sometimes|nullable|boolean', |
94 | ]; |
95 | |
96 | if ($id != null) { |
97 | $rules['id'] = [ |
98 | 'required', |
99 | Rule::in([$id]) |
100 | ]; |
101 | } |
102 | |
103 | return $request->validate($rules); |
104 | } |
105 | } |