Esempio n. 1
0
 private function getServiceActionElement(KalturaActionReflector $actionReflector)
 {
     $outputTypeReflector = $actionReflector->getActionOutputType();
     $actionInfo = $actionReflector->getActionInfo();
     $actionParams = $actionReflector->getActionParams();
     $outputType = null;
     if ($outputTypeReflector) {
         $outputType = $outputTypeReflector->getType();
     }
     $actionElement = $this->_doc->createElement("action");
     $actionElement->setAttribute("name", $actionReflector->getActionName());
     foreach ($actionParams as $actionParam) {
         /* @var $actionParam KalturaParamInfo */
         $actionParamElement = $this->_doc->createElement("param");
         $actionParamElement->setAttribute("name", $actionParam->getName());
         if ($actionParam->isAssociativeArray()) {
             $actionParamElement->setAttribute("type", "map");
             $actionParamElement->setAttribute("arrayType", $actionParam->getArrayType());
         } elseif ($actionParam->isArray()) {
             $actionParamElement->setAttribute("type", "array");
             $actionParamElement->setAttribute("arrayType", $actionParam->getArrayType());
         } elseif ($actionParam->isEnum()) {
             $actionParamElement->setAttribute("type", "int");
             $actionParamElement->setAttribute("enumType", $actionParam->getType());
         } else {
             if ($actionParam->isStringEnum()) {
                 $actionParamElement->setAttribute("type", "string");
                 $actionParamElement->setAttribute("enumType", $actionParam->getType());
             } else {
                 $actionParamElement->setAttribute("type", $actionParam->getType());
             }
         }
         $actionParamElement->setAttribute("optional", $actionParam->isOptional() ? "1" : "0");
         if ($actionParam->isOptional()) {
             $defaultValue = $actionParam->getDefaultValue();
             if ($defaultValue === null) {
                 $defaultValue = "null";
             }
             switch ($actionParam->getType()) {
                 case "bool":
                     if ($defaultValue === true) {
                         $actionParamElement->setAttribute("default", "true");
                     } else {
                         if ($defaultValue === false) {
                             $actionParamElement->setAttribute("default", "false");
                         }
                     }
                     break;
                 case "bigint":
                 case "int":
                 case "float":
                 case "string":
                     $actionParamElement->setAttribute("default", $defaultValue);
                     break;
                 default:
                     if ($actionParam->isEnum()) {
                         $actionParamElement->setAttribute("default", $defaultValue);
                     } else {
                         $actionParamElement->setAttribute("default", "null");
                     }
             }
         }
         $description = $actionParam->getDescription();
         $description = $this->fixDescription($description);
         $actionParamElement->setAttribute("description", $description);
         $actionElement->appendChild($actionParamElement);
     }
     $resultElement = $this->_doc->createElement("result");
     $arrayType = null;
     if ($outputTypeReflector) {
         if ($outputTypeReflector->isAssociativeArray()) {
             $resultElement->setAttribute("type", "map");
             $arrayType = $outputTypeReflector->getArrayType();
             $resultElement->setAttribute("arrayType", $arrayType);
         } else {
             if ($outputTypeReflector->isArray()) {
                 $resultElement->setAttribute("type", "array");
                 $arrayType = $outputTypeReflector->getArrayType();
                 $resultElement->setAttribute("arrayType", $arrayType);
             } else {
                 $resultElement->setAttribute("type", $outputType);
             }
         }
     }
     $description = $actionInfo->description;
     $description = $this->fixDescription($description);
     $actionElement->setAttribute("description", kString::stripUtf8InvalidChars($description));
     $actionElement->setAttribute("enableInMultiRequest", $outputType === 'file' ? "0" : "1");
     $actionElement->appendChild($resultElement);
     return $actionElement;
 }
    echo $actionParam->isOptional() ? '' : 'V';
    ?>
</td>
		<td><?php 
    echo $actionParam->isEnum() || $actionParam->isStringEnum() ? $actionParam->getType() . '::' . $actionParam->getConstantName($actionParam->getDefaultValue()) : $actionParam->getDefaultValue();
    ?>
</td>
	</tr>
<?php 
}
?>
	<tr>
		<td colspan="5" class="title">Output Type</td>
	</tr>
<?php 
$returnValue = $actionReflector->getActionOutputType();
if ($returnValue) {
    ?>
	<tr>
		<td colspan="5" ><a href="?object=<?php 
    echo $returnValue->getType();
    ?>
"><?php 
    echo $returnValue->getType();
    ?>
</a></td>
	</tr>
<?php 
} else {
    ?>
	<tr>