public function assignments(AssignmentsRequest $request) { switch ($request->getActionType()) { case ActionType::GET: if (!$request->getFresh_data()) { $data = $this->dbHelper->getAssignmentData($request); return count($data) > 1 ? $data : $this->getAssignmentDataFromLms($request); } else { return $this->getAssignmentDataFromLms($request); } break; case ActionType::POST: switch ($request->getLms()) { case Lms::CANVAS: $canvas = new CanvasHelper(DataType::ASSIGNMENTS); return $canvas->addAssignment($request); default: $canvas = new CanvasHelper(DataType::ASSIGNMENTS); return $canvas->addAssignment($request); } case ActionType::PUT: switch ($request->getLms()) { case Lms::CANVAS: $canvas = new CanvasHelper(DataType::ASSIGNMENTS); return $canvas->updateAssignment($request); default: $canvas = new CanvasHelper(DataType::ASSIGNMENTS); return $canvas->updateAssignment($request); } //If another action was given throw exception //If another action was given throw exception default: throw new InvalidActionException($request->getActionType(), get_class($request)); } }