Files
backend/app/Http/Controllers/V3/Dashboard/Mission/CartableController.php

83 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\V3\Dashboard\Mission;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest;
use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest;
use App\Http\Traits\ApiResponse;
use App\Models\Mission;
use App\Services\Missions\CartableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CartableController extends Controller
{
use ApiResponse;
public function index(Request $request,CartableService $cartableService): JsonResponse
{
return response()->json($cartableService->datatable($request));
}
public function store(StoreRequest $request): JsonResponse
{
$mission = Mission::query()->create([
'user_id'=> auth()->user()->id(),
'state_id' => $request->state_id,
'state_name' => $request->state_name,
'requested_machine_type' =>$request->requested_machine_type,
'requested_machine_numbers' =>$request->requested_machine_numbers,
'type' =>$request->type,
'start_date' =>$request->start_date,
'end_date' =>$request->end_date,
'request_date' =>$request->request_date,
'description' =>$request->description,
'start_point' =>$request->start_point,
'end_point' =>$request->end_point,
]);
$mission->rahdaran()->attach($request->rahdaran);
return $this->successResponse();
}
public function show(Mission $mission): JsonResponse
{
return $this->successResponse($mission);
}
public function update(UpdateRequest $request,Mission $mission): JsonResponse
{
$mission->update([
'state_id' => $request->state_id,
'state_name' => $request->state_name,
'requested_machine_type' =>$request->requested_machine_type,
'requested_machine_numbers' =>$request->requested_machine_numbers,
'type' =>$request->type,
'start_date' =>$request->start_date,
'end_date' =>$request->end_date,
'request_date' =>$request->request_date,
'description' =>$request->description,
'start_point' =>$request->start_point,
'end_point' =>$request->end_point,
]);
$mission->rahdaran()->sync($request->rahdaran);
return $this->successResponse();
}
public function destroy(Mission $mission): JsonResponse
{
$mission->rahdaran()->detach();
$mission->delete();
return $this->successResponse();
}
}