private function processCanvasModuleData($data, $courseId) { $items = array(); $moduleIdsArray = array(); $moduleItemIdsArray = array(); $i = 0; $firstItemId = null; foreach ($data as $moduleRow) { //assign the first item as the parent IF it's published if (is_null($firstItemId) && $moduleRow->published) { $firstItemId = $moduleRow->id; } //we'll create an array with all the moduleIds that belong to this courseId $moduleIdsArray[] = $moduleRow->id; $module = $this->processSingleModule($moduleRow, $courseId, $i, $firstItemId, $moduleItemIdsArray); $items[] = $module; $i++; } //since we are updating our DB with fresh Canvas data we MUST check against our DB and make sure we don't have "old" modules stored $dbHelper = new DbHelper(); $dbHelper->qualityAssuranceModules($courseId, $moduleIdsArray); $dbHelper->qualityAssuranceModuleItems($courseId, $moduleItemIdsArray); return $items; }