23 lines
969 B
PHP
23 lines
969 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers\Api\V2\Communication;
|
|
|
|
use App\Domain\SchoolCore\Communication\Contracts\RecipientPreviewServiceContract;
|
|
use App\Domain\SchoolCore\Context\SchoolContextStore;
|
|
use App\Http\Requests\Communication\RecipientPreviewRequest;
|
|
use App\Http\Resources\V2\Communication\RecipientPreviewResource;
|
|
use App\Support\Api\ApiResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Routing\Controller;
|
|
|
|
final class RecipientPreviewController extends Controller
|
|
{
|
|
public function __construct(private readonly SchoolContextStore $context, private readonly RecipientPreviewServiceContract $previews) {}
|
|
|
|
public function store(RecipientPreviewRequest $request): JsonResponse
|
|
{
|
|
$result = $this->previews->preview($this->context->current(), $request->toDTO());
|
|
return ApiResponse::success((new RecipientPreviewResource($result))->resolve($request), 'Recipient preview created.', [], 201);
|
|
}
|
|
}
|