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(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(response.Result); } throw new ApplicationException(SZIRAdatszolgResource.SikertelenKSH2535SikertelenAdatszolgaltatas); } private Dictionary GetHeaders() { return new Dictionary { { "apiKey", _szirApiClientConfiguration.ApiKey }, { "Content-Type", "application/json" }, }; } } }