From e9249d6b1cf59bf59ff519ec48bc4f8adab9b1f8 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 25 Aug 2023 10:04:47 +0200 Subject: [PATCH] Add API client to get server version --- .../Elsa.Api.Client/Elsa.Api.Client.csproj | 2 +- .../Resources/Features/Contracts/IFeaturesApi.cs | 6 +++--- .../Resources/Package/Contracts/IPackageApi.cs | 16 ++++++++++++++++ .../Package/Models/PackageVersionResponse.cs | 7 +++++++ .../Scripting/Contracts/IJavaScriptApi.cs | 8 ++++---- .../GetWorkflowJavascriptDefinitionRequest.cs | 6 +++--- 6 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 src/clients/Elsa.Api.Client/Resources/Package/Contracts/IPackageApi.cs create mode 100644 src/clients/Elsa.Api.Client/Resources/Package/Models/PackageVersionResponse.cs diff --git a/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj b/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj index 41e3d09b0..b59044089 100644 --- a/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj +++ b/src/clients/Elsa.Api.Client/Elsa.Api.Client.csproj @@ -17,5 +17,5 @@ - + diff --git a/src/clients/Elsa.Api.Client/Resources/Features/Contracts/IFeaturesApi.cs b/src/clients/Elsa.Api.Client/Resources/Features/Contracts/IFeaturesApi.cs index 85fd0851c..a65301043 100644 --- a/src/clients/Elsa.Api.Client/Resources/Features/Contracts/IFeaturesApi.cs +++ b/src/clients/Elsa.Api.Client/Resources/Features/Contracts/IFeaturesApi.cs @@ -11,9 +11,9 @@ public interface IFeaturesApi /// /// Gets the specified feature. /// - /// - /// - /// The feature. + /// The fully qualified name of the feature. + /// An optional cancellation token. + /// Information about the feature. [Get("/features/installed/{fullName}")] Task GetAsync(string fullName, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/Package/Contracts/IPackageApi.cs b/src/clients/Elsa.Api.Client/Resources/Package/Contracts/IPackageApi.cs new file mode 100644 index 000000000..08bb9b237 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/Package/Contracts/IPackageApi.cs @@ -0,0 +1,16 @@ +using Elsa.Api.Client.Resources.Package.Models; +using Refit; + +namespace Elsa.Api.Client.Resources.Package.Contracts; + +/// +/// A client for working with packages. +/// +public interface IPackageApi +{ + /// + /// Gets the installed package version of Elsa. + /// + [Get("/package/version")] + Task GetAsync(CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/Package/Models/PackageVersionResponse.cs b/src/clients/Elsa.Api.Client/Resources/Package/Models/PackageVersionResponse.cs new file mode 100644 index 000000000..0dcf5e531 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/Package/Models/PackageVersionResponse.cs @@ -0,0 +1,7 @@ +namespace Elsa.Api.Client.Resources.Package.Models; + +/// +/// Contains the installed package version of Elsa. +/// +/// The installed package version of Elsa. +public record PackageVersionResponse(string PackageVersion); \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/Scripting/Contracts/IJavaScriptApi.cs b/src/clients/Elsa.Api.Client/Resources/Scripting/Contracts/IJavaScriptApi.cs index f74a3775a..cef424fd5 100644 --- a/src/clients/Elsa.Api.Client/Resources/Scripting/Contracts/IJavaScriptApi.cs +++ b/src/clients/Elsa.Api.Client/Resources/Scripting/Contracts/IJavaScriptApi.cs @@ -1,4 +1,4 @@ -using Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; +using Elsa.Api.Client.Resources.Scripting.Requests; using JetBrains.Annotations; using Refit; @@ -13,11 +13,11 @@ namespace Elsa.Api.Client.Resources.Scripting.Contracts /// /// Dispatches a request to retrieve the type definitions of the specified workflow definition. /// - /// The definition ID of the workflow definition to retrieve the type defintions for. - /// Required request containing properties to retrieve the correct type definitions + /// The definition ID of the workflow definition to retrieve the type definitions for. + /// Required request containing properties to retrieve the correct type definitions. /// An optional cancellation token. /// A response containing the type definition data which can be used to extend auto completion in Monaco. [Post("/scripting/javascript/type-definitions/{definitionId}")] - Task GetTypeDefinitions(string definitionId, GetWorkflowJavascriptDefinitionRequest request, CancellationToken cancellationToken); + Task GetTypeDefinitions(string definitionId, GetWorkflowJavaScriptDefinitionRequest request, CancellationToken cancellationToken); } } diff --git a/src/clients/Elsa.Api.Client/Resources/Scripting/Requests/GetWorkflowJavascriptDefinitionRequest.cs b/src/clients/Elsa.Api.Client/Resources/Scripting/Requests/GetWorkflowJavascriptDefinitionRequest.cs index 85bab6066..a344a6571 100644 --- a/src/clients/Elsa.Api.Client/Resources/Scripting/Requests/GetWorkflowJavascriptDefinitionRequest.cs +++ b/src/clients/Elsa.Api.Client/Resources/Scripting/Requests/GetWorkflowJavascriptDefinitionRequest.cs @@ -1,9 +1,9 @@ -namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; +namespace Elsa.Api.Client.Resources.Scripting.Requests; /// /// A request to retrieve the type definitions /// -public class GetWorkflowJavascriptDefinitionRequest +public class GetWorkflowJavaScriptDefinitionRequest { /// /// Initialize new type definition request. @@ -11,7 +11,7 @@ public class GetWorkflowJavascriptDefinitionRequest /// Id of workflow definition to retrieve type definitions for. /// Type name of the activity to retrieve type definitions for. /// Name of the property to retrieve type definitions for. - public GetWorkflowJavascriptDefinitionRequest(string workflowDefinitionId, string activityTypeName, string propertyName) + public GetWorkflowJavaScriptDefinitionRequest(string workflowDefinitionId, string activityTypeName, string propertyName) { WorkflowDefinitionId = workflowDefinitionId; ActivityTypeName = activityTypeName;