Files
exchange-2.0/app/Classes/Modules/Companies/Processors/LinkShippingCompanyProcessor.php
2023-11-22 16:18:02 +08:00

53 lines
2.1 KiB
PHP

<?php
namespace App\Classes\Modules\Companies\Processors;
use App\Classes\Exceptions\MalformedRequestException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Log;
class LinkShippingCompanyProcessor
{
/**
* @param Request $request
* @return array
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function execute(Request $request, $companyId) {
if (App::environment(['production'])) {
dd("Delete this line before push to production");
$url = "https://izyim.cief-malaysia.com/api/v1/exchange/company/{$companyId}/connect";
} else if (App::environment(['local'])) {
$url = "http://127.0.0.1:8001/api/v1/exchange/company/{$companyId}/connect";
} else {
$url = "https://dev.portal.cief-malaysia.com/api/v1/exchange/company/{$companyId}/connect";
}
try {
$client = new \GuzzleHttp\Client(['verify' => false]);
$token = $request->bearerToken();
$headers = [
'Authorization' => 'Bearer ' . $token,
'Accept' => 'application/json',
];
$response = $client->request('POST', $url, [
'headers' => $headers,
'form_params' => [
'email' => $request->input('email'),
'password' => $request->input('password')
]
]);
$body = $response->getBody();
$contents = json_decode($body, true);
$payload = $contents['payload'];
return $payload['shipping_company_module_id'];
} catch(\GuzzleHttp\Exception\RequestException $exception){
throw new MalformedRequestException(json_decode($exception->getResponse()->getBody()->getContents(), true)['message']);
// Log::error($exception->getResponse()->getBody()->getContents());
}
}
}