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

42 lines
1.5 KiB
C#

using System;
using Kreta.Client.ClientBase;
using Kreta.Client.Leltar.Configuration;
using Kreta.Client.Leltar.Request;
using Newtonsoft.Json;
using RestSharp;
using RestSharp.Authenticators;
namespace Kreta.Client.Leltar
{
internal class LeltarClient : RestSharpClientBase, ILeltarClient
{
private readonly ILeltarClientConfiguration leltarClientConfiguration;
public LeltarClient(ILeltarClientConfiguration leltarClientConfiguration)
{
this.leltarClientConfiguration = leltarClientConfiguration ?? throw new ArgumentNullException(nameof(leltarClientConfiguration));
}
public bool KretaUserSync(KretaUserSyncRequest request)
{
var restClient = new RestClient(leltarClientConfiguration.BaseUrl)
{
Authenticator = new HttpBasicAuthenticator(leltarClientConfiguration.Username, leltarClientConfiguration.Password)
};
var relativeUri = "kreta-user-sync/action/KretaUserSyncAction";
var restRequest = new RestRequest(relativeUri, Method.POST);
var parameter = JsonConvert.SerializeObject(request);
restRequest.AddParameter("application/json;charset=utf-8", parameter, ParameterType.RequestBody);
var restResponse = restClient.Execute(restRequest);
if (restResponse.StatusCode == System.Net.HttpStatusCode.OK)
{
return true;
}
return false;
}
}
}