<?php

use Illuminate\Database\Capsule\Manager as Capsule;

add_hook('AdminAreaHeadOutput', 1, function($vars) {
    if ($vars['filename'] == 'clientsdomains') {
        return <<<HTML
    <script type="text/javascript">
    	jQuery(document).ready(function () {
            $('.btn-default').each(function(){
              if($(this).attr('data-target')=="#modalIdProtectToggle")
              {
                $(this).after(' <button type="submit" class="button btn btn-default" name="custom-action" value="restore">Restore</button>');
              }
            });
            //your code
           
    	});
	</script>
HTML;
    }
});

add_hook('AdminClientDomainsTabFieldsSave', 1, function($vars) {
    $registrar = $vars['registrar'];
    if ($registrar == 'realtimeregister') {
        global $whmcs;
        if ($whmcs->get_req_var('custom-action') == 'restore') {
            $domain = $_POST['domain'];
            $action = $vars['custom-action'];
            $data = array(
                // 'quote' => true,
                'reason' => 'Redemption fee paid',
                "billables" => [
                    'action' => 'RESTORE',
                    'product' => 'domains',
                ]
            );
            $customerhandleresult = Capsule::table("tblregistrars")->select('value')->where('registrar', 'realtimeregister')->where('setting', 'customer_handle')->first();
            $usernameresult = Capsule::table("tblregistrars")->select('value')->where('registrar', 'realtimeregister')->where('setting', 'login')->first();
            $passwordresult = Capsule::table("tblregistrars")->select('value')->where('registrar', 'realtimeregister')->where('setting', 'rtr_password')->first();
            $customerhandle = decrypt($customerhandleresult->value);
            $username = decrypt($usernameresult->value);
            $password = decrypt($passwordresult->value);
            // do_custom_request($domain,$action);
            do_custom_request("POST", $domain, $username, $password, $customerhandle, json_encode($data));
        }
    }
});

function do_custom_request($method, $uri, $user, $pwd, $customer, $json = NULL) {
    $URL = "https://api.yoursrs.com/v2/domains/" . urlencode($uri) . "/restore";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $URL);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    //curl_setopt($ch, CURLOPT_USERPWD, "$customer/$user:$password");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Basic ' . base64_encode("$customer/$user:{$pwd}"),
        'Content-Type: application/json',
        'Content-Length: ' . strlen($json)
    ));
    $result = curl_exec($ch);
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    $output = json_decode($result, true);
    $err = curl_error($ch);
    if ($status_code != 200)
        $output = ['Code' => $status_code];
    if ($err != '')
        $output = ['Error' => $err];
    logActivity('Domain restore domainname: ' . $uri . ' Response code: ' . $status_code . ' Date: ' . date('Y:m:d H:i:s'));
    logModuleCall('realtimeregistrar', 'restore', $json, $output);
    //echo '<pre>';
    // print_r($output);
    // die();
    curl_close($ch);
    if ($err) {
        return ['status' => 'error', 'result' => "cURL Error #:" . $err];
    } else {
        return ['status' => 'success', 'result' => $output];
    }
}

?>