Sindbad~EG File Manager
<?php
namespace App\Services;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class ApiIntegrationService
{
protected $apiUrl;
protected $apiToken;
public function __construct()
{
$this->apiUrl = env('EXTERNAL_API_URL');
$this->apiToken = env('EXTERNAL_API_TOKEN');
}
public function getUserDataByCpf($cpf)
{
try {
$response = Http::get($this->apiUrl, [
'token' => $this->apiToken,
'cpf' => $cpf,
]);
if ($response->failed()) {
Log::error('Erro na requisição para API externa', [
'status' => $response->status(),
'response' => $response->body()
]);
return null;
}
$responseData = $response->json();
if (isset($responseData['flag']) && $responseData['flag'] !== 1) {
return $this->handleApiResponseFlag($responseData);
}
return $responseData;
} catch (\Exception $e) {
Log::error('Exceção ao consultar API externa: ' . $e->getMessage());
return null;
}
}
protected function handleApiResponseFlag($responseData)
{
Log::error($responseData['flag']);
$flag = $responseData['flag'];
$errorMessages = [
1 => null,
2 => 'CPF não encontrado na plataforma',
3 => 'Não foi encontrada turma para este usuário',
4 => 'Token inválido, entre em contato com o desenvolvedor da plataforma',
5 => 'Token vazio, entre em contato com o desenvolvedor da plataforma',
6 => 'CPF vazio',
7 => 'CPF inválido',
];
if($responseData['flag'] === 1) {
return null;
}
if (isset($errorMessages[$flag])) {
return ['error' => $errorMessages[$flag]];
}
return ['error' => 'Erro desconhecido na resposta da API'];
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists