28 lines
852 B
C#
28 lines
852 B
C#
using System.Net;
|
|
using Dlhis.Jip.Api.Responses;
|
|
using Kurisu.RemoteCall.Abstractions;
|
|
using Mapster;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Dlhis.Jip.Api.ResultHandlers;
|
|
|
|
public class DHRResultHandler : IRemoteCallResultHandler
|
|
{
|
|
public TResult Handle<TResult>(HttpStatusCode statusCode, string responseBody)
|
|
{
|
|
var apiResult = JsonConvert.DeserializeObject<DHRResponse<object>>(responseBody);
|
|
|
|
var isSuccessStatusCode = ((int)statusCode >= 200) && ((int)statusCode <= 299);
|
|
if (!isSuccessStatusCode || apiResult?.Code != 200)
|
|
{
|
|
if (!string.IsNullOrEmpty(apiResult?.Message))
|
|
{
|
|
throw new Exception(apiResult.Message);
|
|
}
|
|
|
|
throw new HttpRequestException(statusCode + " " + (int)statusCode);
|
|
}
|
|
|
|
return responseBody.Adapt<TResult>();
|
|
}
|
|
} |