61 lines
2.1 KiB
C#
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" },
|
|
};
|
|
}
|
|
}
|
|
}
|