kreta/Kreta.Client/SzirApi/SzirApiClient.cs
2024-03-13 00:33:46 +01:00

61 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Net;
using Kreta.Client.ClientBase;
using Kreta.Client.SzirApi.Configuration;
using Kreta.Client.SzirApi.Request;
using Kreta.Client.SzirApi.Response;
using Kreta.Resources;
using Newtonsoft.Json;
namespace Kreta.Client.SzirApi
{
internal class SzirApiClient : RestSharpClientBase, ISzirApiClient
{
private readonly ISzirApiClientConfiguration _szirApiClientConfiguration;
public SzirApiClient(ISzirApiClientConfiguration szirApiClientConfiguration)
{
_szirApiClientConfiguration = szirApiClientConfiguration ?? throw new ArgumentNullException(nameof(szirApiClientConfiguration));
}
public StatuszResponse GetStatusz(StatuszRequest request)
{
BaseUrl = _szirApiClientConfiguration.ApiUrl;
var relativeUri = $"szirstat/external/ksh2535/statusz";
var response = Post(relativeUri, GetHeaders(), body: request);
if (response.StatusCode == HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<StatuszResponse>(response.Result);
}
throw new ApplicationException(SZIRAdatszolgResource.SikertelenKSH2535SikertelenStatuszLekeres);
}
public AdatszolgResponse SendAdatszolg(AdatszolgRequest request)
{
BaseUrl = _szirApiClientConfiguration.ApiUrl;
var relativeUri = $"szirstat/external/ksh2535/adatszolg";
var response = Post(relativeUri, GetHeaders(), body: request);
if (response.StatusCode == HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<AdatszolgResponse>(response.Result);
}
throw new ApplicationException(SZIRAdatszolgResource.SikertelenKSH2535SikertelenAdatszolgaltatas);
}
private Dictionary<string, string> GetHeaders()
{
return new Dictionary<string, string>
{
{ "apiKey", _szirApiClientConfiguration.ApiKey },
{ "Content-Type", "application/json" },
};
}
}
}