ldc-crm/app/Http/Controllers/ServiceController.php
2021-08-02 11:46:08 +02:00

49 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\ManageServiceRequest;
use App\Models\Brand;
use App\Models\Service;
class ServiceController extends Controller
{
public function index()
{
$services = Service::all();
return view('services.index', compact('services'));
}
public function manage(ManageServiceRequest $request, Service $service = null)
{
$brands = Brand::all();
$edit = $service ? true : false;
if ($request->isMethod('post')) {
if (!$service) {
$service = new Service($request->validated());
} else {
$service->fill($request->validated());
}
$brand = Brand::findOrFail($request->brand_id);
$service->brand()->associate($brand);
$service->save();
return redirect()->route('services')->with('success', $edit ? 'Modifications enregistrées !' : sprintf(
'Token du service : \'%s\'',
$service->bearer_token
));
}
return view('services.manage', compact('service', 'brands', 'edit'));
}
public function generateApiToken(Service $service)
{
$service->generateBearerToken();
$bearerPwd = $service->bearer_pwd;
$service->saveOrFail();
return back()
->with('success', "Nouveau token d'API de $service->name : '$service->bearer_token' et mot de passe '$bearerPwd'");
}
}