Untitled
unknown
php
a year ago
2.1 kB
13
Indexable
<?php
namespace App\Http\Controllers\Api\Form;
use App\Enums\ErrorCodesEnum;
use App\Enums\HttpStatusCodesEnum;
use App\Http\Controllers\Controller;
use App\Http\Requests\FormBuilder\StoreRequest;
use App\Models\Form\Form;
use App\Services\Form\FormBuilder\FormBuilderService;
use Illuminate\Http\JsonResponse;
class FormBuilderController extends Controller
{
/**
* @param FormBuilderService $formBuilderService
*/
public function __construct(
private readonly FormBuilderService $formBuilderService
) {
$this->middleware('jwt.auth');
}
/**
* @return JsonResponse
*/
public function create(): JsonResponse
{
return $this->apiSuccess((array)$this->formBuilderService->build());
}
/**
* @param StoreRequest $request
* @return JsonResponse
*/
public function store(StoreRequest $request): JsonResponse
{
$result = $this->formBuilderService->store($request->all());
if (!$result->success) {
return $this->apiError(
ErrorCodesEnum::RESOURCE_CREATE_ERROR,
HttpStatusCodesEnum::BAD_REQUEST,
$result->error
);
}
return $this->apiSuccess((array)$result->value);
}
/**
* @param Form $form
* @return JsonResponse
*/
public function edit(Form $form): JsonResponse
{
$this->authorize('view', $form);
$result = $this->formBuilderService->build($form);
return $this->apiSuccess((array)$result);
}
/**
* @param Form $form
* @return JsonResponse
*/
public function update(StoreRequest $request, Form $form): JsonResponse
{
$this->authorize('update', $form);
$result = $this->formBuilderService->update($form, $request->all());
if (!$result->success) {
return $this->apiError(
ErrorCodesEnum::RESOURCE_UPDATE_ERROR,
HttpStatusCodesEnum::BAD_REQUEST,
$result->error
);
}
return $this->apiSuccess((array)$result->value);
}
}
Editor is loading...
Leave a Comment