private function buildAddModuleItemArgs(ModulesRequest $request) { $urlArgs = array(); if (!$request->getModuleItem()->title) { throw new InvalidParameterInRequestObjectException(get_class($this), "Title", "Parameter is required"); } if (!$request->getModuleItem()->type) { throw new InvalidParameterInRequestObjectException(get_class($this), "Type", "Type is required"); } $modItem = $request->getModuleItem(); foreach ($modItem as $key => $value) { if ($key === "content_id" && $value) { //Content Id is NOT required for ‘ExternalUrl’, ‘Page’, and ‘SubHeader’ types. $type = $request->getModuleItem()->type; if ($type === "ExternalUrl" || $type === "Page" || $type === "SubHeader") { continue; } } if ($key === "tags" || $key === "published") { //a module item continue; } if ($key === "completion_requirement_type" && $value) { $urlArgs[] = "module_item[completion_requirement][type]={$value}"; } else { if ($key === "completion_requirement_min_score" && $value) { $urlArgs[] = "module_item[completion_requirement][min_score]={$value}"; } else { if ($value) { $urlArgs[] = "module_item[{$key}]={$value}"; } } } } return $urlArgs; }