/** * Update a host * * * @method post * @route /hosttemplate/update */ public function updateAction() { $givenParameters = $this->getParams('post'); $macroList = array(); $aTagList = array(); $aTags = array(); $aTagsTemplate = array(); $aTagsInTpl = array(); $aTagsIdTpl = array(); if (isset($givenParameters['macro_name']) && isset($givenParameters['macro_value'])) { $macroName = $givenParameters['macro_name']; $macroValue = $givenParameters['macro_value']; $macroHidden = $givenParameters['macro_hidden']; foreach ($macroName as $key => $name) { if (!empty($name)) { if (isset($macroHidden[$key])) { $isPassword = '******'; } else { $isPassword = '******'; } $macroList[$name] = array('value' => $macroValue[$key], 'ispassword' => $isPassword); } } } if ($givenParameters['host_create_services_from_template']) { \CentreonConfiguration\Models\Host::deployServices($givenParameters['object_id']); } if (count($macroList) > 0) { try { CustomMacroRepository::saveHostCustomMacro(self::$objectName, $givenParameters['object_id'], $macroList); } catch (\Exception $ex) { $errorMessage = $ex->getMessage(); $this->router->response()->json(array('success' => false, 'error' => $errorMessage)); } } //Delete tags directilly rattached to the object TagsRepository::deleteTagsForResource(self::$objectName, $givenParameters['object_id'], 0); //Insert tags affected to the HOST if (isset($givenParameters['host_tags'])) { $aTagList = explode(",", $givenParameters['host_tags']); foreach ($aTagList as $var) { $var = trim($var); if (!empty($var)) { array_push($aTags, $var); } } if (count($aTags) > 0) { TagsRepository::saveTagsForResource(self::$objectName, $givenParameters['object_id'], $aTags, '', false, 1); } } parent::updateAction(); }
/** * Add a service * * @method post * @route /service/add */ public function createAction() { $macroList = array(); $aTagList = array(); $aTags = array(); $givenParameters = $this->getParams('post'); if (isset($givenParameters['macro_name']) && isset($givenParameters['macro_value'])) { $macroName = $givenParameters['macro_name']; $macroValue = $givenParameters['macro_value']; $macroHidden = $givenParameters['macro_hidden']; foreach ($macroName as $key => $name) { if (!empty($name)) { if (isset($macroHidden[$key])) { $isPassword = '******'; } else { $isPassword = '******'; } $macroList[$name] = array('value' => $macroValue[$key], 'ispassword' => $isPassword); } } } $id = parent::createAction(false); if (count($macroList) > 0) { try { CustomMacroRepository::saveServiceCustomMacro(self::$objectName, $id, $macroList); } catch (\Exception $ex) { $errorMessage = $ex->getMessage(); $this->router->response()->json(array('success' => false, 'error' => $errorMessage)); } } if (isset($givenParameters['service_tags'])) { $aTagList = explode(",", $givenParameters['service_tags']); foreach ($aTagList as $var) { $var = trim($var); if (!empty($var)) { array_push($aTags, $var); } } if (count($aTags) > 0) { TagsRepository::saveTagsForResource(self::$objectName, $id, $aTags, '', false, 1); } } $this->router->response()->json(array('success' => true)); }
/** * Update a business activity * * * @method post * @route /businessactivity/update */ public function updateAction() { $givenParameters = $this->getParams('post'); $aTagList = array(); $aTags = array(); parent::updateAction(); if (isset($givenParameters['ba_tags'])) { $aTagList = explode(",", $givenParameters['ba_tags']); foreach ($aTagList as $var) { if (strlen($var) > 1) { array_push($aTags, $var); } } if (count($aTags) > 0) { TagsRepository::saveTagsForResource('ba', $givenParameters['object_id'], $aTags, '', false, 1); } } }
/** * Update contact * @param array $givenParameters */ public static function update($givenParameters, $origin = "", $route = "", $validate = true, $validateMandatory = true) { if ($validate) { self::validateForm($givenParameters, $origin, $route, $validateMandatory); } $aTagList = array(); $aTags = array(); if (isset($givenParameters['contact_tags'])) { $aTagList = explode(",", $givenParameters['contact_tags']); foreach ($aTagList as $var) { $var = trim($var); if (!empty($var)) { array_push($aTags, $var); } } } if (count($aTags) > 0) { TagsRepository::saveTagsForResource(self::$objectName, $givenParameters['object_id'], $aTags, '', false, 1); } $infoToUpdate['contact_id'] = $givenParameters['object_id']; if (isset($givenParameters['timezone_id']) && is_numeric($givenParameters['timezone_id'])) { $infoToUpdate['timezone_id'] = $givenParameters['timezone_id']; } else { $infoToUpdate['timezone_id'] = ""; } if (isset($givenParameters['description'])) { $infoToUpdate['description'] = $givenParameters['description']; } $class = static::$objectClass; $sField = $class::getUniqueLabelField(); if (isset($givenParameters[$sField])) { $oSlugify = new CentreonSlugify($class, get_called_class()); $sSlug = $oSlugify->slug($givenParameters[$sField]); $infoToUpdate[$class::getSlugField()] = $sSlug; } return Contact::update($givenParameters['object_id'], $infoToUpdate); }
/** * Add a tag * * @method post * @route /tag/addMassive */ public function addMassiveAction() { $di = Di::getDefault(); $router = $di->get('router'); $post = $router->request()->paramsPost(); $sGlobal = 0; $bStatus = false; $addErrorMessage = ''; $bNotDelete = true; $sTagName = trim($post['tagName']); if (empty($sTagName)) { return; } if (!is_array($post['resourceId'])) { $listResources = array($post['resourceId']); } else { $listResources = $post['resourceId']; } if (!is_array($sTagName)) { $listTag = explode(",", $sTagName); } else { $listTag = $sTagName; } if (isset($post['typeTag']) && $post['typeTag'] == 1) { $sGlobal = 1; } $listTag = array_diff($listTag, array('')); if (count($listTag) > 0) { try { foreach ($listResources as $resourceId) { TagsRepository::saveTagsForResource($post['resourceName'], $resourceId, $listTag, 0, $bNotDelete, $sGlobal); } $bStatus = true; } catch (Exception $e) { $addErrorMessage = $e->getMessage(); $bStatus = false; } } return $this->router->response()->json(array('success' => $bStatus, 'error' => $addErrorMessage)); }
/** * Create a new host * * @method post * @route /contact/add */ public function createAction() { $aTags = array(); $givenParameters = $this->getParams('post'); $id = parent::createAction(false); $listWays = array(); if (isset($givenParameters['way_name']) && isset($givenParameters['way_value'])) { $wayName = $givenParameters['way_name']; $wayValue = $givenParameters['way_value']; foreach ($wayName as $key => $name) { if (!empty($name) && !empty($wayValue[$key])) { $listWays[$name] = array('value' => $wayValue[$key]); } } } try { NotificationWayRepository::saveNotificationWays($id, 'create', $listWays); } catch (\Exception $ex) { $errorMessage = $ex->getMessage(); $this->router->response()->json(array('success' => false, 'error' => $errorMessage)); } if (isset($givenParameters['contact_tags'])) { $aTagList = explode(",", $givenParameters['contact_tags']); foreach ($aTagList as $var) { $var = trim($var); if (!empty($var)) { array_push($aTags, $var); } } if (count($aTags) > 0) { TagsRepository::saveTagsForResource(self::$objectName, $id, $aTags, '', false, 1); } } $this->router->response()->json(array('success' => true)); }