/** * * @param string $object * @param array $params */ public function addMacroAction($object, $params) { $paramList = $this->parseObjectParams($params); //try { $repository = $this->repository; $sName = $this->objectName; $repository::transco($object); $aId = $repository::getListBySlugName($object[$sName]); if (count($aId) > 0) { $objectId = $aId[0]['id']; } else { throw new \Exception(static::OBJ_NOT_EXIST, 1); } switch ($this->objectName) { case 'hosttemplate': case 'host': CustomMacroRepository::setAttributesMap(self::$attributesMapHost); CustomMacroRepository::transco($paramList); if (isset($paramList['host_macro_name']) && isset($paramList['host_macro_value'])) { $formatedParams = array($paramList['host_macro_name'] => array('value' => $paramList['host_macro_value'], 'is_password' => $paramList['is_password'])); } CustomMacroRepository::saveHostCustomMacro($this->objectName, $objectId, $formatedParams, false); InputOutput::display("The macro '" . $paramList['host_macro_name'] . "' has been successfully added to the object", true, 'green'); break; case 'servicetemplate': CustomMacroRepository::setAttributesMap(self::$attributesMapService); CustomMacroRepository::transco($paramList); if (isset($paramList['svc_macro_name']) && isset($paramList['svc_macro_value'])) { $formatedParams = array($paramList['svc_macro_name'] => array('value' => $paramList['svc_macro_value'], 'is_password' => $paramList['is_password'])); } CustomMacroRepository::saveServiceCustomMacro($this->objectName, $objectId, $formatedParams, false); InputOutput::display("The macro '" . $paramList['svc_macro_name'] . "' has been successfully added to the object", true, 'green'); break; case 'service': CustomMacroRepository::setAttributesMap(self::$attributesMapService); CustomMacroRepository::transco($paramList); $aData = \CentreonConfiguration\Repository\ServiceRepository::getServiceBySlugs($object['service']); if (count($aData) == 0) { throw new \Exception(static::OBJ_NOT_EXIST, 1); } else { $objectId = $aData['service_id']; $hostId = $aData['host_id']; } if (isset($paramList['svc_macro_name']) && isset($paramList['svc_macro_value'])) { $formatedParams = array($paramList['svc_macro_name'] => array('value' => $paramList['svc_macro_value'], 'is_password' => $paramList['is_password'])); } CustomMacroRepository::saveServiceCustomMacro($this->objectName, $objectId, $formatedParams, false, $hostId); InputOutput::display("The macro '" . $paramList['svc_macro_name'] . "' has been successfully added to the object", true, 'green'); break; default: break; } /*} catch(\Exception $ex) { InputOutput::display($ex->getMessage(), true, 'red'); }*/ }