diff --git a/Core.Cerberos.BFF.Api/Controllers/BaseController.cs b/Core.Cerberos.BFF.Api/Controllers/BaseController.cs index b7b0912..1f3970e 100644 --- a/Core.Cerberos.BFF.Api/Controllers/BaseController.cs +++ b/Core.Cerberos.BFF.Api/Controllers/BaseController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc; +using Lib.Architecture.BuildingBlocks; +using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Refit; @@ -23,8 +24,25 @@ namespace Core.Cerberos.BFF.Api.Controllers private IActionResult FromAPIResponse(ApiResponse response) where T : class { - var errorContent = JsonConvert.DeserializeObject(response.Error?.Content ?? string.Empty) ?? string.Empty; - return StatusCode((int)response.StatusCode, (response.Content is not null) ? response.Content : errorContent); + if (response.IsSuccessful) + return StatusCode((int)response.StatusCode, response.Content); + else + { + dynamic errorContent = string.Empty; + + try + { + errorContent = JsonConvert.DeserializeObject(response.Error?.Content ?? string.Empty) ?? string.Empty; + } + catch (Exception) + { + errorContent = JsonConvert.DeserializeObject(response.Error?.Content); + if (errorContent?.Error?.ErrorCode is null && errorContent?.Error?.Message is null && errorContent?.Error?.Target is null) + errorContent = JsonConvert.DeserializeObject(response.Error?.Content); + + } + return StatusCode((int)response.StatusCode, errorContent); + } } } } \ No newline at end of file diff --git a/Core.Cerberos.External/Core.Cerberos.External.csproj b/Core.Cerberos.External/Core.Cerberos.External.csproj index 7a830a5..0b7ad53 100644 --- a/Core.Cerberos.External/Core.Cerberos.External.csproj +++ b/Core.Cerberos.External/Core.Cerberos.External.csproj @@ -7,8 +7,8 @@ + -