Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 43
DomainController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
110
0.00% covered (danger)
0.00%
0 / 43
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 getZones
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 getRecords
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 6
 getRecord
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 store
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 11
 update
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 12
 destroy
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 6
1<?php
2
3namespace Qmp\Laravel\Ovh\Controllers;
4
5use App\Http\Controllers\Controller;
6use Illuminate\Http\Response;
7use Illuminate\Support\Facades\Log;
8use Qmp\Laravel\Acls\Models\RoleGroup;
9use Qmp\Laravel\Acls\Facades\Role;
10use Illuminate\Http\Request;
11use Qmp\Laravel\MicroService\Controllers\AbstractMicroServiceController;
12use Qmp\Laravel\Ovh\Ovh\Manager as OvhManager;
13
14class DomainController extends AbstractMicroServiceController
15{
16    protected $ovh;
17
18    public function __construct(Request $request)
19    {
20        $this->ovh = OvhManager::create(OvhManager::TYPE_DOMAIN);
21
22        parent::__construct($request);
23    }
24
25    public function getZones()
26    {
27        $zones = $this->ovh->getAll();
28
29        return response()->json($zones);
30    }
31
32    public function getRecords($zone, Request $request)
33    {
34        $body = $request->all();
35        unset($body['auth_user_id']);
36        unset($body['auth_type']);
37
38        $this->ovh->zone($zone);
39        $records = $this->ovh->records($body);
40
41        return response()->json($records);
42    }
43
44    public function getRecord($zone, $id)
45    {
46        $this->ovh->zone($zone);
47        $record = $this->ovh->record($id);
48
49        return response()->json($record);
50    }
51
52    public function store($zone, Request $request)
53    {
54        $request->validate([
55            'fieldType' => 'required|max:255',
56            'subDomain' => 'nullable',
57            'target' => 'required|max:255',
58            'ttl' => 'nullable',
59        ]);
60
61        try {
62            $body = $request->all();
63            unset($body['auth_user_id']);
64            unset($body['auth_type']);
65
66            $this->ovh->zone($zone);
67            $this->ovh->add($body);
68        } catch(\Exception $e) {
69            Log::debug('Unable to store entity:' . var_export(['message' => $e->getMessage(), 'line' => $e->getLine(), 'file' => $e->getFile()], true));
70            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
71        }
72
73        return response(['status' => 'ok'], Response::HTTP_CREATED);
74    }
75
76    public function update($zone, $id, Request $request)
77    {
78        $request->validate([
79            'fieldType' => 'required|max:255',
80            'subDomain' => 'nullable',
81            'target' => 'required|max:255',
82            'ttl' => 'nullable',
83        ]);
84
85        try {
86            $body = $request->all();
87            unset($body['auth_user_id']);
88            unset($body['auth_type']);
89
90            $this->ovh->zone($zone);
91            $this->ovh->delete($id);
92            $this->ovh->add($body);
93        } catch(\Exception $e) {
94            Log::debug('Unable to update entity:' . var_export(['message' => $e->getMessage(), 'line' => $e->getLine(), 'file' => $e->getFile()], true));
95            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
96        }
97
98        return response(['status' => 'ok'], Response::HTTP_OK);
99    }
100
101    public function destroy($zone, $id)
102    {
103        try {
104            $this->ovh->zone($zone);
105            $this->ovh->delete($id);
106        } catch(\Exception $e) {
107            Log::debug('Unable to destroy entity:' . var_export(['message' => $e->getMessage(), 'line' => $e->getLine(), 'file' => $e->getFile()], true));
108            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
109        }
110
111        return response(['status' => 'ok'], Response::HTTP_OK);
112    }
113}