create panel for azmayesh type crud
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
29
app/Http/Requests/V3/AzmayeshType/StoreRequest.php
Normal file
29
app/Http/Requests/V3/AzmayeshType/StoreRequest.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\AzmayeshType;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'fields' => 'required|array',
|
||||
];
|
||||
}
|
||||
}
|
||||
29
app/Http/Requests/V3/AzmayeshType/UpdateRequest.php
Normal file
29
app/Http/Requests/V3/AzmayeshType/UpdateRequest.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\AzmayeshType;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'fields' => 'required|array',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user