create panel for azmayesh type crud

This commit is contained in:
2024-11-09 10:52:57 +03:30
parent 6eb7d6c55e
commit fbb4db5e60
5 changed files with 134 additions and 3 deletions

View File

@@ -59,7 +59,7 @@ class AzmayeshSampleController extends Controller
/**
* Display the specified resource.
*/
public function show(AzmayeshSample $azmayeshSample)
public function show(AzmayeshSample $azmayeshSample): JsonResponse
{
return $this->successResponse($azmayeshSample);
}
@@ -67,7 +67,7 @@ class AzmayeshSampleController extends Controller
/**
* Update the specified resource in storage.
*/
public function update(UpdateRequest $request, AzmayeshSample $azmayeshSample)
public function update(UpdateRequest $request, AzmayeshSample $azmayeshSample): JsonResponse
{
$azmayesh = Azmayesh::query()->findOrFail($request->azmayesh_id);
@@ -83,7 +83,7 @@ class AzmayeshSampleController extends Controller
/**
* Remove the specified resource from storage.
*/
public function destroy(AzmayeshSample $azmayeshSample)
public function destroy(AzmayeshSample $azmayeshSample): JsonResponse
{
$azmayeshSample->delete();

View File

@@ -3,10 +3,14 @@
namespace App\Http\Controllers\V3\Azmayesh;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\AzmayeshType\StoreRequest;
use App\Http\Requests\V3\AzmayeshType\UpdateRequest;
use App\Http\Traits\ApiResponse;
use App\Models\AzmayeshField;
use App\Models\AzmayeshType;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class AzmayeshTypeController extends Controller
{
@@ -25,4 +29,69 @@ class AzmayeshTypeController extends Controller
return $this->successResponse($fields);
}
public function store(StoreRequest $request): JsonResponse
{
DB::transaction(function () use ($request)
{
$azmayeshType = AzmayeshType::query()->create([
'name' => $request->name
]);
$fieldsID = [];
foreach ($request->fields as $field)
{
$azmayeshField = AzmayeshField::query()->firstOrCreate($field, $field);
$fieldsID[] = $azmayeshField->id;
}
$azmayeshType->azmayeshFields()->attach($fieldsID);
});
return $this->successResponse();
}
/**
* Display the specified resource.
*/
public function show(AzmayeshType $azmayeshType): JsonResponse
{
return $this->successResponse($azmayeshType->load(['azmayeshFields']));
}
/**
* Update the specified resource in storage.
*/
public function update(UpdateRequest $request, AzmayeshType $azmayeshType): JsonResponse
{
DB::transaction(function () use ($request, $azmayeshType)
{
$azmayeshType->update([
'name' => $request->name
]);
$fieldsID = [];
foreach ($request->fields as $field)
{
$azmayeshField = AzmayeshField::query()->updateOrCreate($field, $field);
$fieldsID[] = $azmayeshField->id;
}
$azmayeshType->azmayeshFields()->sync($fieldsID);
});
return $this->successResponse();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(AzmayeshType $azmayeshType): JsonResponse
{
$azmayeshType->delete();
return $this->successResponse();
}
}