45
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Signature\SignatureBuilder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SignatureController extends Controller
|
||||
{
|
||||
/**
|
||||
* GET /api/v1/signature?context=new|reply|forward|appointment&mailbox=adresse
|
||||
* Réponse : { html, variant, template, generated_at }
|
||||
*/
|
||||
public function show(Request $request, SignatureBuilder $builder): JsonResponse
|
||||
{
|
||||
$data = $request->validate([
|
||||
'context' => ['sometimes', 'in:new,reply,forward,appointment'],
|
||||
'mailbox' => ['sometimes', 'nullable', 'email:rfc', 'max:254'],
|
||||
]);
|
||||
|
||||
$result = $builder->build(
|
||||
$request->attributes->get('directory_user'),
|
||||
$data['context'] ?? 'new',
|
||||
$data['mailbox'] ?? null,
|
||||
);
|
||||
|
||||
if ($result === null) {
|
||||
return response()->json(['error' => 'no_template'], 404);
|
||||
}
|
||||
|
||||
return response()->json($result + ['generated_at' => now()->toIso8601String()])
|
||||
->header('Cache-Control', 'private, no-store');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user