public function deleteModuleData(ModulesRequest $request)
 {
     $isModuleItem = false;
     if (!$request->getModuleId()) {
         throw new InvalidParameterInRequestObjectException(get_class($request), "moduleId", "Parameter is required");
     }
     if (!isset($_SESSION)) {
         session_start();
     }
     $domain = $_SESSION['domain'];
     $token = \Crypt::decrypt($_SESSION['userToken']);
     $courseId = $_SESSION['courseID'];
     $scope = "module";
     $urlPieces = array();
     $urlArgs = array();
     $urlPieces[] = "https://{$domain}/api/v1/courses/{$courseId}";
     $urlPieces[] = "modules/{$request->getModuleId()}";
     if ($request->getModuleItemId()) {
         $isModuleItem = true;
         $urlPieces[] = "items/{$request->getModuleItemId()}";
         $scope = "module_item";
     }
     //Attach token
     $urlArgs[] = "access_token={$token}";
     $url = GuzzleHelper::constructUrl($urlPieces, $urlArgs);
     try {
         //delete from Canvas
         $response = GuzzleHelper::makeRequest($request, $url, true);
         if ($response->getStatusCode() === "200") {
             $dbHelper = new DbHelper();
             /*
              * NOTE:
              * Cascading delete is not yet supported in OctoberCMS, so we have to do all the cascading deletes manually.
              * See https://github.com/octobercms/october/issues/419
              */
             if ($isModuleItem) {
                 //delete the module item and its contents from DB
                 $dbHelper->deleteModuleItemCascade($request->getModuleId(), $request->getModuleItemId());
                 //delete module item's contents
                 //                $this->deleteModuleItemsContent($courseId, $request->moduleId, $request->moduleItemId);
             } else {
                 //DELETE MODULE
                 //this will delete this module, its module items, and the content from DB
                 $dbHelper->deleteModuleCascade($courseId, $request->getModuleId());
             }
         }
         return $response;
     } catch (\GuzzleHttp\Exception\ClientException $e) {
         if ($e->hasResponse()) {
             if ($e->getResponse()->getStatusCode() === "404") {
                 //This can be caused because the module/moduleItem doesn't exist. Just return
                 return null;
             }
         }
         return "An error occurred. Unable to delete module data";
     }
 }