Add login API client

This commit is contained in:
Sipke Schoorstra 2023-05-19 14:36:16 +02:00
parent c248bb5b62
commit 5f02e744e2
5 changed files with 35 additions and 4 deletions

View file

@ -17,8 +17,4 @@
<PackageReference Include="Refit.HttpClientFactory" Version="6.3.2" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources" />
</ItemGroup>
</Project>

View file

@ -1,5 +1,6 @@
using Elsa.Api.Client.Contracts;
using Elsa.Api.Client.Options;
using Elsa.Api.Client.Resources.Identity.Contracts;
using Elsa.Api.Client.Resources.WorkflowDefinitions.Contracts;
using Elsa.Api.Client.Services;
using JetBrains.Annotations;
@ -25,6 +26,7 @@ public static class DependencyInjectionExtensions
var settings = new RefitSettings();
services.AddElsaApiClient<IWorkflowDefinitionsApi>(settings);
services.AddElsaApiClient<ILoginApi>(settings);
return services;
}

View file

@ -0,0 +1,19 @@
using Elsa.Api.Client.Resources.Identity.Models;
using Refit;
namespace Elsa.Api.Client.Resources.Identity.Contracts;
/// <summary>
/// Represents a client for the login API.
/// </summary>
public interface ILoginApi
{
/// <summary>
/// Sends the specified request to the login API.
/// </summary>
/// <param name="request">The request.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>The response.</returns>
[Post("/identity/login")]
Task<LoginResponse> LoginAsync([Body] LoginRequest request, CancellationToken cancellationToken = default);
}

View file

@ -0,0 +1,8 @@
namespace Elsa.Api.Client.Resources.Identity.Models;
/// <summary>
/// Represents a request to log in.
/// </summary>
/// <param name="Username">The username.</param>
/// <param name="Password">The password.</param>
public record LoginRequest(string Username, string Password);

View file

@ -0,0 +1,6 @@
namespace Elsa.Api.Client.Resources.Identity.Models;
/// <summary>
/// The response of logging in.
/// </summary>
public record LoginResponse(bool IsAuthenticated, string? AccessToken, string? RefreshToken);