Example #1
0
/**
 * TransferSync function that is used every time the WHMCS cronjob runs.
 * It's used to update statuses on domain name information
 * @param $params
 * @return array
 */
function hostcontrol_TransferSync($params)
{
    $api_client = new HostControlAPIClient(HostControlHelper::getApiUrl($params), $params['ApiKey']);
    $domainname = strtolower($params["sld"] . "." . $params["tld"]);
    $domain_id = $params['domainid'];
    $transfer_id = HostControlHelper::get_transfer_id_from_domain($domain_id);
    if (!$transfer_id) {
        return array('failed' => true, 'reason', 'No transfer found for this domainname (at the registrar).');
    }
    try {
        $transfer = $api_client->domain->getTransferStatus($transfer_id);
    } catch (HostControlAPIClientError $e) {
        HostControlHelper::debugLog($params, 'get-transfer-status', array($domainname, $transfer_id), $e);
        return array('error' => $e->getMessage());
    }
    $status = array();
    if ($transfer->status == 'completed') {
        $status['completed'] = true;
        try {
            $domain = $api_client->domain->get($domainname);
            $status['expirydate'] = date('Y-m-d', strtotime($domain->expires));
        } catch (HostControlAPIClientError $e) {
            HostControlHelper::debugLog($params, 'domain-get-single', array($domainname), $e);
        }
        return $status;
    } else {
        if (in_array($transfer->status, array('failed', 'canceled'))) {
            $status['failed'] = true;
            $status['reason'] = HostControlHelper::translate_transfer_status($transfer->status);
            return $status;
        }
    }
    return null;
}