/** * Loads a previous deployment and then creates a new deployment based on it. * * @param Request $request * @param int $deployment_id * * @return \Illuminate\Http\RedirectResponse */ public function rollback(Request $request, $deployment_id) { $optional = []; // Get the optional commands and typecast to integers if ($request->has('optional') && is_array($request->get('optional'))) { $optional = array_filter(array_map(function ($value) { return filter_var($value, FILTER_VALIDATE_INT); }, $request->get('optional'))); } $deployment = $this->deploymentRepository->rollback($deployment_id, $request->get('reason'), $optional); return redirect()->route('deployments', ['id' => $deployment->id]); }