private function getRequestDataForUpdate(Host $host) { $data = array('add' => array(), 'rem' => array()); $json = STRegistry::Hosts()->query($host->getName()); $currentHost = Host::fromJSON($json); foreach (array_merge($host->getIPv4(), $host->getIPv6()) as $id => $ip) { if (!in_array($ip, array_merge($currentHost->getIPv4(), $currentHost->getIPv6()))) { if (!isset($data['add']['addr'])) { $data['add']['addr'] = array(); } $data['add']['addr'][] = array($id => array('version' => CommonFunctions::detectIPType($ip), 'address' => $ip)); } } foreach (array_merge($currentHost->getIPv4(), $currentHost->getIPv6()) as $id => $ip) { if (!in_array($ip, array_merge($host->getIPv4(), $host->getIPv6()))) { if (!isset($data['rem']['addr'])) { $data['rem']['addr'] = array(); } $data['rem']['addr'][] = array($id => array('version' => CommonFunctions::detectIPType($ip), 'address' => $ip)); } } foreach ($host->getStatuses() as $status) { if (!in_array($status, $currentHost->getStatuses())) { if (!isset($data['add']['status'])) { $data['add']['status'] = array(); } $data['add']['status'][] = $status; } } foreach ($currentHost->getStatuses() as $status) { if (!in_array($status, $host->getStatuses())) { if (!isset($data['rem']['status'])) { $data['rem']['status'] = array(); } $data['rem']['status'][] = $status; } } return $data; }
/** * make request to update host ip addresses * * @param array $params whmcs data * * @return mixed array containig error message will return if error was ocurred, 'success' string in other case */ function stregistry_ModifyNameserver($params) { // init connection if (($status = __initConnectionAndAuthorize($params)) !== true) { return __errorArray($status); } $json = STRegistry::Hosts()->query($params['nameserver']); if (!ResponseHelper::isSuccess($json)) { return __errorArray(ResponseHelper::fromJSON($json)->message); } $host = Host::fromJSON($json); if (!empty($params['currentipaddress'])) { $host->removeIP($params['currentipaddress'], CommonFunctions::detectIPType($params['currentipaddress'])); } if (!empty($params['newipaddress'])) { $host->addIP($params['newipaddress'], CommonFunctions::detectIPType($params['newipaddress'])); } $json = STRegistry::Hosts()->update($host); if (!ResponseHelper::isSuccess($json)) { return __errorArray(ResponseHelper::fromJSON($json)->message); } return 'success'; }
/** * */ public function getRequestDataForUpdate(Domain $domain) { $data = array(); $json = STRegistry::Domains()->query($domain->getName()); $currentDomain = Domain::fromJSON($json); if ($currentDomain->getAuthCode() != $domain->getAuthCode()) { if (!isset($data['chg'])) { $data['chg'] = array(); } $data['chg']['authInfo'] = array('pw' => $domain->getAuthCode()); } foreach ($currentDomain->getContacts() as $type => $contact) { $newContacts = $domain->getContacts(); if ($newContacts[$type] !== false && $newContacts[$type] != $contact) { if (!isset($data['rem']['contact'])) { $data['rem']['contact'] = array(); } if (!isset($data['add']['contact'])) { $data['add']['contact'] = array(); } $data['rem']['contact'][] = array($type => $contact); if (!empty($newContacts[$type])) { $data['add']['contact'][] = array($type => $newContacts[$type]); } } } foreach ($domain->getNameServers() as $nameserver => $ips) { if (!in_array($nameserver, array_keys($currentDomain->getNameServers()))) { if (!isset($data['add']['ns'])) { $data['add']['ns'] = array(); } $upd = array('name' => $nameserver); if (count($ips)) { $upd['addr'] = array(); foreach ($ips as $ip) { $upd['addr'][] = array(CommonFunctions::detectIPType($ip) => $ip); } } $data['add']['ns'][] = $upd; } } foreach ($currentDomain->getNameServers() as $nameserver => $ips) { if (!in_array($nameserver, array_keys($domain->getNameServers()))) { if (!isset($data['rem']['ns'])) { $data['rem']['ns'] = array(); } $data['rem']['ns'][] = $nameserver; } } foreach ($domain->getStatuses() as $status) { if (!in_array($status, array(Domain::STATUS_HOLD, Domain::STATUS_DELETE_PROHIBITED, Domain::STATUS_RENEW_PROHIBITED, Domain::STATUS_TRANSFER_PROHIBITED, Domain::STATUS_UPDATE_PROHIBITED))) { continue; } if (!in_array($status, $currentDomain->getStatuses())) { if (!isset($data['add']['status'])) { $data['add']['status'] = array(); } $data['add']['status'][] = $status; } } foreach ($currentDomain->getStatuses() as $status) { if (!in_array($status, array(Domain::STATUS_HOLD, Domain::STATUS_DELETE_PROHIBITED, Domain::STATUS_RENEW_PROHIBITED, Domain::STATUS_TRANSFER_PROHIBITED, Domain::STATUS_UPDATE_PROHIBITED))) { continue; } if (!in_array($status, $domain->getStatuses())) { if (!isset($data['rem']['status'])) { $data['rem']['status'] = array(); } $data['rem']['status'][] = $status; } } return $data; }