Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
ServiceController
n/a
0 / 0
n/a
0 / 0
4
n/a
0 / 0
 index
n/a
0 / 0
2
n/a
0 / 0
 generateServicePassword
n/a
0 / 0
2
n/a
0 / 0
1<?php
2
3namespace App\Http\Controllers;
4
5use App\Http\Requests\GenerateServiceToken;
6use App\Mail\ServiceCredentialRenewed;
7use App\Models\Service;
8use Illuminate\Support\Facades\Hash;
9use Illuminate\Support\Facades\Mail;
10use Kwaadpepper\CrudPolicies\Http\Requests\CrudIndexRequest;
11use Kwaadpepper\CrudPolicies\Traits\CrudController;
12
13/**
14 * @codeCoverageIgnore
15 */
16class ServiceController extends Controller
17{
18    use CrudController {
19        index as crudIndex;
20    }
21
22    /** @var Service */
23    public static $modelClass = Service::class;
24
25    /**
26     * The Bo app layout
27     *
28     * @var string
29     */
30    public static $layout = 'layouts.app';
31
32    /**
33     * Overload crud-policies index
34     *
35     * @param CrudIndexRequest $request
36     * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
37     */
38    public function index(CrudIndexRequest $request)
39    {
40        /** @var \Illuminate\View\View */
41        $view = $this->crudIndex($request);
42        if ($request->ajax()) {
43            return $view;
44        }
45        return view('service.index', $view->getData());
46    }
47
48    /**
49     * Regen service credentials
50     *
51     * @param GenerateServiceToken $request
52     * @param Service              $service
53     * @return \Illuminate\Http\RedirectResponse
54     */
55    // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed, Squiz.Commenting.FunctionComment.Missing
56    public function generateServicePassword(GenerateServiceToken $request, Service $service)
57    {
58        /** @var \App\Models\User $user */
59        $user = auth()->user();
60
61        // * Special Condition for migration from v2 to v3.
62        $service->bearer_token = !Hash::needsRehash($service->bearer_token) ?
63            $service->generateBearerToken() : $service->bearer_token;
64
65        $bearerPwd = $service->generateBearerPassword();
66        $service->saveOrFail();
67        Mail::send(new ServiceCredentialRenewed($service, $user));
68        return back()
69            // phpcs:ignore Generic.Files.LineLength.TooLong
70            ->with('error', "ATTENTION : METTEZ À JOUR LE SITE ! \nNouveau token d'API de $service->name : '$service->bearer_token' et mot de passe '$bearerPwd'");
71    }
72}