json($controlUnitService->datatable($request)); } /** * @throws Throwable */ public function start(StartRequest $request, Mission $mission): JsonResponse { DB::transaction(function () use ($mission, $request) { // $mission->histories()->create([ // 'user_id' => auth()->user()->id, // 'previous_state_id' => $mission->state_id, // 'previous_state_name' => $mission->state_name, // ]); $mission->update([ 'state_id' => MissionStates::START_MISSION->value, 'state_name' => MissionStates::START_MISSION->label(), 'start_time' => $request->time, 'km' => $request->km, ]); }); return $this->successResponse(); } /** * @throws Throwable */ public function finish(FinishRequest $request, Mission $mission, GetErrorRateService $getErrorRateService): JsonResponse { DB::transaction(function () use ($mission, $getErrorRateService, $request) { // $mission->histories()->create([ // 'user_id' => auth()->user()->id, // 'previous_state_id' => $mission->state_id, // 'previous_state_name' => $mission->state_name, // ]); $mission->update([ 'state_id' => MissionStates::END_MISSION->value, 'state_name' => MissionStates::END_MISSION->label(), 'finish_time' => $request->time, 'mission_duration' => strtotime($request->time) - strtotime($mission->start_time), 'end_km' => $request->end_km, ]); // $getErrorRateService->setInputParameters($mission); // $responseData = $getErrorRateService->run(); // // $mission->update([ // 'in_area_duration' => $responseData['timeInAreaSeconds'], // 'first_enter' => $responseData['firstEnter'], // 'last_exit' => $responseData['lastExit'], // 'point_number_sent' => $responseData['noOfPointsInMission'], // 'fms_result_code' => $responseData['resultCode'], // 'fms_result_message' => FMSResultCode::name($responseData['resultCode']), // ]); }); // if ($mission->category_id == 2) { // $rpc = new OperatorController; // $rpc->store($mission); // } // SendDataToFMSEvent::dispatch($mission); return $this->successResponse(); } }