elsa-core/src/common/Elsa.Api.Common/Abstractions/Endpoints.cs
copilot-swe-agent[bot] 016ffe5d8d
Allow FastEndpoints EmptyRequest in Elsa endpoint wrappers
Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
2026-09-04 21:43:29 +00:00

72 lines
2.5 KiB
C#

using FastEndpoints;
namespace Elsa.Abstractions;
/// <summary>
/// An endpoint that maps a request to a response.
/// </summary>
public abstract class ElsaEndpointWithMapper<TRequest, TMapper> : EndpointWithMapper<TRequest, TMapper> where TMapper : class, IRequestMapper where TRequest : notnull
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}
public abstract class ElsaEndpointWithoutRequest : EndpointWithoutRequest
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}
public abstract class ElsaEndpointWithoutRequest<TResponse> : EndpointWithoutRequest<TResponse> where TResponse : notnull
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}
public class ElsaEndpoint<TRequest, TResponse> : Endpoint<TRequest, TResponse> where TRequest : notnull where TResponse : notnull
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}
public class ElsaEndpoint<TRequest, TResponse, TMapper> : Endpoint<TRequest, TResponse, TMapper> where TRequest : notnull where TResponse : notnull where TMapper : class, IMapper, new()
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}
public class ElsaEndpoint<TRequest> : Endpoint<TRequest> where TRequest : notnull
{
protected void ConfigurePermissions(params string[] permissions)
{
if (!EndpointSecurityOptions.SecurityIsEnabled)
AllowAnonymous();
else
Permissions(new[] { PermissionNames.All }.Concat(permissions).ToArray());
}
}