wirecardBrasil/moip-sdk-php

Tratamento de erros fora do padrão

Closed this issue · 1 comments

Em alguns casos como o da issue #190 a API retorna um erro fora do padrão citado na documentação e a SDK retorna a excessão em branco:
image

Então queria levantar a discussão, se também não seria interessante tratar esses erros (individuais), que aparentemente vem no seguinte formato JSON { "error": "..." }.

Uma possível solução seria alterar o seguinte trecho do arquivo Exceptions/Error.php:

if (!empty($error_obj->errors)) {
    foreach ($error_obj->errors as $error) {
        $errors[] = new self($error->code, $error->path, $error->description);
    }
}

Para:

if (!empty($error_obj->errors)) {
    foreach ($error_obj->errors as $error) {
        $errors[] = new self($error->code, $error->path, $error->description);
    }
} else if (!empty($error_obj->error)) {
    $errors[] = new self('', '', $error_obj->error);
}

Assim retornando o erro ao executar a SDK:
image

Vocês acreditam que seria uma boa opção para facilitar no tratamento de erros? Ou é melhor apenas tratar os erros que vierem no formato correto (da forma que é hoje)?
A parte "ruim" é que as informações de code e path vão ser retornadas em branco, mas ao menos a description poderia ser visualizada, ajudando na identificação de alguns erros que ainda não são tratados.

Boa tarde, @kleytonbp!
Tudo bem?

Sim, realmente, isto é uma boa opção.
Testei a solução apresentada e está funcionando corretamente. 👍
Já estamos aplicando a correção à nossa SDK.

Agradecemos muito pela sua contribuição! 🚀

Forte abraço.