ldc-crm/app/Http/Controllers/ServiceController.php

64 lines
1.9 KiB
PHP
Raw Normal View History

2020-12-01 17:02:10 +01:00
<?php
namespace App\Http\Controllers;
use App\Models\Brand;
use App\Models\Service;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class ServiceController extends Controller
{
public function index() {
$services = Service::all();
return view('services.index', compact('services'));
}
public function manage(Request $request, $id = null) {
$service = null;
$brands = Brand::all();
$edit = false;
if ($id !== null) {
$service = Service::find($id);
$edit = true;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$request->validate([
'name' => 'required|max:255',
]);
if (!$service) {
$service = new Service();
$apiToken = Str::random(80);
$service->api_token = hash('sha256', $apiToken);
$service->api_token_date = now();
}
$service->name = filter_var($request->name, FILTER_SANITIZE_STRING);
$service->brand_id = filter_var($request->brand_id, FILTER_SANITIZE_NUMBER_INT);
$service->save();
return redirect()->route('services')->with('success', $edit ? 'Modifications enregistrées !' : 'Token du service : ' . $apiToken);
}
return view('services.manage', compact('service', 'brands', 'edit'));
}
public function generateApiToken($serviceId) {
$service = Service::find($serviceId);
if (!$service)
return back()->with('error', "Génération impossible : Service introuvable.");
$apiToken = Str::random(80);
$service->api_token = hash('sha256', $apiToken);
$service->api_token_date = now();
$service->save();
return back()->with('success', "Nouveau token d'API de " . $service->name . " : " . $apiToken);
2020-12-01 17:02:10 +01:00
}
}