diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Endpoint.cs new file mode 100644 index 000000000..0e9068a00 --- /dev/null +++ b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Endpoint.cs @@ -0,0 +1,34 @@ +using Elsa.Abstractions; +using Elsa.Workflows.Core.Models; +using Elsa.Workflows.Management.Services; + +namespace Elsa.Workflows.Api.Endpoints.ActivityDescriptors.Get; + +public class Get : ElsaEndpoint +{ + private readonly IActivityRegistry _registry; + + /// + public Get(IActivityRegistry registry) + { + _registry = registry; + } + + /// + public override void Configure() + { + Get("/descriptors/activities/{typeName}"); + ConfigurePermissions("read:*", "read:activity-descriptors"); + } + + /// + public override async Task HandleAsync(Request request, CancellationToken cancellationToken) + { + var descriptor = _registry.Find(request.TypeName); + + if (descriptor == null) + await SendNotFoundAsync(cancellationToken); + else + await SendOkAsync(descriptor, cancellationToken); + } +} \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Models.cs b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Models.cs new file mode 100644 index 000000000..58c69c0b0 --- /dev/null +++ b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Models.cs @@ -0,0 +1,6 @@ +namespace Elsa.Workflows.Api.Endpoints.ActivityDescriptors.Get; + +public class Request +{ + public string TypeName { get; set; } +} \ No newline at end of file