Sindbad~EG File Manager

Current Path : /var/www/html/apiprodescolacandidatos.eagledigital.com.br/app/Services/
Upload File :
Current File : /var/www/html/apiprodescolacandidatos.eagledigital.com.br/app/Services/ApiIntegrationService.php

<?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