Refactor for remote responses
This commit is contained in:
parent
5657fe5e4f
commit
f72d52bada
|
|
@ -34,28 +34,9 @@ class EInvoicePeppolController extends BaseController
|
|||
{
|
||||
$company = auth()->user()->company();
|
||||
|
||||
$headers = [
|
||||
'Content-Type' => 'application/json',
|
||||
'Accept' => 'application/json',
|
||||
];
|
||||
$response_array = $storecove->proxy->setCompany($company)->getLegalEntity($company->legal_entity_id);
|
||||
|
||||
$response $storecove->proxy->setCompany($company)->getLegalEntity($company->legal_entity_id);
|
||||
|
||||
// if (Ninja::isSelfHost()) {
|
||||
// $headers['X-EInvoice-Token'] = $company->account->e_invoicing_token;
|
||||
// }
|
||||
|
||||
// if (Ninja::isHosted()) {
|
||||
// $headers['X-EInvoice-Secret'] = config('ninja.hosted_einvoice_secret');
|
||||
// }
|
||||
|
||||
// $response = Http::baseUrl(config('ninja.hosted_ninja_url'))
|
||||
// ->withHeaders($headers)
|
||||
// ->post('/api/einvoice/peppol/legal_entity', data: [
|
||||
// 'legal_entity_id' => $company->legal_entity_id,
|
||||
// ]);
|
||||
|
||||
return response()->json($response, 200);
|
||||
return response()->json($response_array, isset($response_array['code'] ?? 200);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ namespace App\Services\EDocument\Gateway\Storecove;
|
|||
|
||||
use App\Utils\Ninja;
|
||||
use App\Models\Company;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
|
||||
class StorecoveProxy
|
||||
{
|
||||
|
|
@ -39,13 +40,75 @@ class StorecoveProxy
|
|||
return $this->handleResponseError($response);
|
||||
}
|
||||
|
||||
|
||||
$headers['X-EInvoice-Token'] = $company->account->e_invoicing_token;
|
||||
$uri = '/api/einvoice/peppol/legal_entity';
|
||||
$payload = ['legal_entity_id' => $legal_entity_id];
|
||||
|
||||
return $this->remoteRequest($uri, $payload);
|
||||
}
|
||||
|
||||
private function handleResponseError($response): array
|
||||
{
|
||||
|
||||
$error = [
|
||||
'status' => 'error',
|
||||
'message' => 'Unknown error occurred',
|
||||
'code' => $response->status() ?? 500,
|
||||
];
|
||||
|
||||
if ($response->json()) {
|
||||
$body = $response->json();
|
||||
|
||||
$error['message'] = $body['error'] ?? $body['message'] ?? $response->body();
|
||||
|
||||
if (isset($body['errors']) && is_array($body['errors'])) {
|
||||
$error['errors'] = $body['errors'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($response->status() === 401) {
|
||||
$error['message'] = 'Authentication failed';
|
||||
}
|
||||
|
||||
if ($response->status() === 403) {
|
||||
$error['message'] = 'Access forbidden';
|
||||
}
|
||||
|
||||
if ($response->status() === 404) {
|
||||
$error['message'] = 'Resource not found';
|
||||
}
|
||||
|
||||
nlog(['Storecove API Error' => [
|
||||
'status' => $response->status(),
|
||||
'body' => $response->body(),
|
||||
'error' => $error
|
||||
]]);
|
||||
|
||||
return $error;
|
||||
|
||||
}
|
||||
|
||||
private function remoteRequest(string $uri, array $payload =[]): array
|
||||
{
|
||||
|
||||
$response = Http::baseUrl(config('ninja.hosted_ninja_url'))
|
||||
->withHeaders($this->getHeaders())
|
||||
->post($uri, $payload);
|
||||
|
||||
if($response->successful())
|
||||
return $response->json();
|
||||
|
||||
return $this->handleResponseError($response);
|
||||
}
|
||||
|
||||
private function getHeaders(): array
|
||||
{
|
||||
|
||||
return [
|
||||
'Content-Type' => 'application/json',
|
||||
'Accept' => 'application/json',
|
||||
'X-EInvoice-Token' => $this->company->account->e_invoicing_token,
|
||||
"X-Requested-With" => "XMLHttpRequest",
|
||||
];
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue