diff --git a/app/Lib/LDCCRM/ApiV1.php b/app/Lib/LDCCRM/ApiV1.php deleted file mode 100644 index 2dc28d8..0000000 --- a/app/Lib/LDCCRM/ApiV1.php +++ /dev/null @@ -1,225 +0,0 @@ -endpoint = $endpoint; - $this->api_key = $api_key; - } - - public function getCustomer($id) - { - return $this->callApi('GET', "/customer/id/$id"); - } - - public function getCustomerByEmail($email) - { - return $this->callApi('GET', "/customer/email/$email"); - } - - public function createCustomer( - $email, - $password, - $firstname, - $lastname, - $optin, - $birthdate = null, - $phone = null, - $address = null, - $address2 = null, - $city = null, - $postcode = null, - $country = null - ) { - $user = [ - 'email' => $email, - 'password' => $password, - 'firstname' => $firstname, - 'lastname' => $lastname, - 'opt_in' => $optin, - 'birth_date' => $birthdate, - 'phone' => $phone, - 'address' => $address, - 'address2' => $address2, - 'city' => $city, - 'postcode' => $postcode, - 'country' => $country - ]; - return $this->callApi('POST', '/customer/create', $user); - } - - public function updateCustomer( - $crmId, - $firstname = null, - $lastname = null, - $optin = null, - $birthdate = null, - $phone = null, - $address = null, - $address2 = null, - $city = null, - $postcode = null, - $country = null - ) { - $user = []; - - if ($firstname !== null) { - $user['firstname'] = $firstname; - } - - if ($lastname !== null) { - $user['lastname'] = $lastname; - } - - if ($optin !== null) { - $user['opt_in'] = $optin; - } - - if ($birthdate !== null) { - $user['birth_date'] = $birthdate; - } - - if ($phone !== null) { - $user['phone'] = $phone; - } - - if ($address !== null) { - $user['address'] = $address; - } - - if ($address2 !== null) { - $user['address2'] = $address2; - } - - if ($city !== null) { - $user['city'] = $city; - } - - if ($postcode !== null) { - $user['postcode'] = $postcode; - } - - if ($country !== null) { - $user['country'] = $country; - } - - return $this->callApi('PUT', "/customer/$crmId", $user); - } - - public function deleteCustomer($id) - { - return $this->callApi('DELETE', "/customer/$id"); - } - - public function changePwdCustomer($id, $password) - { - return $this->callApi('POST', "/customer/$id/change-password", ['password' => $password]); - } - - public function activateCustomer($id) - { - return $this->callApi('POST', "/customer/$id/activate"); - } - - public function toggleOptInCustomer($id) - { - return $this->callApi('POST', "/customer/$id/toggle-optin"); - } - - public function loginCustomer($email, $password) - { - return $this->callApi('POST', "/customer/login", ['email' => $email, 'password' => $password]); - } - - public function createSingleOptin($email) - { - return $this->callApi('POST', '/single-optin', ['email' => $email]); - } - - public function arcadiaOutgoingMail($crm_id, $fields, $type) - { - return $this->callApi( - 'POST', - '/arcadia/outgoing-mail', - ['crm_id' => $crm_id, 'fields' => json_encode($fields), 'type' => $type] - ); - } - - private function callApi($method, $url, $data = false) - { - - if (strpos($this->endpoint, "dev")) { - if ($data !== false) { - $data = array_merge($data, ['api_token' => $this->api_key]); - } else { - $data = ['api_token' => $this->api_key]; - } - } - - $url = $this->endpoint . '/api/v1' . $url; - $curl = curl_init(); - switch ($method) { - case "POST": - curl_setopt($curl, CURLOPT_POST, 1); - if ($data) { - curl_setopt($curl, CURLOPT_POSTFIELDS, $data); - } - break; - case "PUT": - curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); - if ($data) { - curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); - } - break; - case "DELETE": - curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); - if ($data) { - curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); - } - break; - default: - if ($data) { - $url = sprintf("%s?%s", $url, http_build_query($data)); - } - } - curl_setopt($curl, CURLOPT_URL, $url); - curl_setopt($curl, CURLOPT_COOKIESESSION, true); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - if (!strpos($this->endpoint, "dev")) { - curl_setopt($curl, CURLOPT_HTTPHEADER, array( - 'Accept: application/json', - 'Authorization: Bearer ' . $this->api_key - )); - } - - $result = curl_exec($curl); - - if (!curl_errno($curl)) { - $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); - if (!in_array($http_code, [200, 201])) { - return (object)[ - 'status' => 'KO', - 'code' => 500, - 'message' => 'Connection to API failed - Code HTTP : ' . $http_code - ]; - } - } else { - return (object)[ - 'status' => 'KO', - 'code' => 500, - 'message' => 'Connection to API failed : ' . curl_error($curl) - ]; - } - - curl_close($curl); - return json_decode($result); - } -} diff --git a/clients/MesBR_V1.php b/clients/MesBR_V1.php index 2605d5c..9ba8119 100644 --- a/clients/MesBR_V1.php +++ b/clients/MesBR_V1.php @@ -7,12 +7,12 @@ class MesBR private $endpoint; - private $api_key; + private $refCamp; - public function __construct($endpoint, $api_key) + public function __construct($endpoint, $refCamp) { $this->endpoint = $endpoint; - $this->api_key = $api_key; + $this->refCamp = $refCamp; } public function createCustomer(string $hashcode, string $email, string $country) @@ -25,14 +25,19 @@ class MesBR return $this->callAPI("POST", '/customer', ['hashcode' => $hashcode, 'email' => $email, 'country' => $country]); } - public function getMur(int $refCamp, string $hashcode) + public function getMurCustomer(string $hashcode) { - return $this->callAPI("POST", '/mur', ['refcamp' => $refCamp, 'hashcode' => $hashcode]); + return $this->callAPI("GET", '/customer/mur', ['refcamp' => $this->refCamp, 'hashcode' => $hashcode]); } - public function printCoupons(int $refCamp, string $hashcode, array $coupons) + public function getMur() { - return $this->callAPI("POST", '/coupons/print', ['refcamp' => $refCamp, 'hashcode' => $hashcode, 'coupons' => implode(",", $coupons)]); + return $this->callAPI("GET", '/mur', ['refcamp' => $this->refCamp]); + } + + public function printCoupons(string $hashcode, array $coupons) + { + return $this->callAPI("GET", '/coupons/print', ['refcamp' => $this->refCamp, 'hashcode' => $hashcode, 'coupons' => implode(",", $coupons)]); } private function callAPI($method, $url, $data = []) diff --git a/routes/api.php b/routes/api.php index 6ec330a..3c188d0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,7 +16,7 @@ use Illuminate\Http\Request; Route::prefix('v1') ->group(function () { Route::resource('customer', 'Api\v1\CustomerController'); - Route::post('/customer/mur', 'Api\v1\CustomerController@mur'); + Route::get('/customer/mur', 'Api\v1\CustomerController@mur'); Route::get('/mur', 'Api\v1\MurController@show'); - Route::post('/coupons/print', 'Api\v1\CouponsController@print'); + Route::get('/coupons/print', 'Api\v1\CouponsController@print'); });