<?php
class ElhkpnClient
{
    public function getAnnouncementUrl($base_url, $id_lhkpn)
    {
        return $this->doCurl("$base_url/portal/user/generate_announcement_url", "id_lhkpn=$id_lhkpn");
    }

    public function getReportUrl($base_url, $id_lhkpn, $nama, $jabatan, $instansi)
    {
        return $this->doCurl(
            "$base_url/portal/user/generate_report_url",
            "id_lhkpn=$id_lhkpn&nama=$nama&jabatan=$jabatan&instansi=$instansi"
        );
    }

    private function doCurl($url, $query)
    {
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_PROXY => '',
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => $query,
            CURLOPT_SSL_VERIFYPEER => false
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
            throw new CustomErrorException(BaseResponse::GUZZLE_ERROR, 'Error API: ' . $err);
        } else {
            return $response;
        }
    }
}
