Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .csharpierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
docs/
ReleaseNotes/
ScriptBeeClient/
scripts/
98 changes: 51 additions & 47 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,48 +1,52 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AspNetCore.HealthChecks.MongoDb" Version="9.0.0"/>
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0"/>
<PackageVersion Include="Docker.DotNet" Version="3.125.15"/>
<PackageVersion Include="DxWorks.Hub.Sdk" Version="1.0.3"/>
<PackageVersion Include="FluentValidation" Version="11.11.0"/>
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="11.11.0"/>
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.1"/>
<PackageVersion Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="9.0.3"/>
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.3"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.3"/>
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.3"/>
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.3"/>
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.3"/>
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.3"/>
<PackageVersion Include="MongoDB.Bson" Version="3.3.0"/>
<PackageVersion Include="MongoDB.Driver" Version="3.3.0"/>
<PackageVersion Include="OneOf" Version="3.0.271"/>
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271"/>
<PackageVersion Include="Polly" Version="8.5.2"/>
<PackageVersion Include="Refit" Version="8.0.0"/>
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0"/>
<PackageVersion Include="Serilog.Expressions" Version="5.0.0"/>
<PackageVersion Include="Serilog.Settings.Configuration" Version="9.0.0"/>
<PackageVersion Include="Slugify.Core" Version="5.1.1"/>
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerUI" Version="8.0.0"/>
<PackageVersion Include="Westwind.Utilities" Version="5.1.6.2"/>
<PackageVersion Include="WireMock.Net" Version="1.7.4"/>
<PackageVersion Include="YamlDotNet" Version="16.3.0"/>
</ItemGroup>
<ItemGroup Condition="'$(ProjectName.ToLower().Contains(`test`))' == 'true'">
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.3"/>
<PackageVersion Include="Testcontainers.MongoDb" Version="4.3.0"/>
<PackageVersion Include="NSubstitute" Version="5.3.0"/>
<PackageVersion Include="Shouldly" Version="4.3.0"/>
<PackageVersion Include="coverlet.collector" Version="6.0.4"/>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0"/>
<PackageVersion Include="xunit.v3" Version="2.0.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
</ItemGroup>
</Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AspNetCore.HealthChecks.MongoDb" Version="9.0.0" />
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
<PackageVersion Include="Docker.DotNet" Version="3.125.15" />
<PackageVersion Include="DxWorks.Hub.Sdk" Version="1.0.3" />
<PackageVersion Include="FluentValidation" Version="11.11.0" />
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="11.11.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="9.0.3" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.3" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.3" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.3" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.3" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.3" />
<PackageVersion
Include="Microsoft.Extensions.Options.ConfigurationExtensions"
Version="9.0.3"
/>
<PackageVersion Include="MongoDB.Bson" Version="3.3.0" />
<PackageVersion Include="MongoDB.Driver" Version="3.3.0" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
<PackageVersion Include="Polly" Version="8.5.2" />
<PackageVersion Include="Refit" Version="8.0.0" />
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="9.0.0" />
<PackageVersion Include="Slugify.Core" Version="5.1.1" />
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerUI" Version="8.0.0" />
<PackageVersion Include="Westwind.Utilities" Version="5.1.6.2" />
<PackageVersion Include="WireMock.Net" Version="1.7.4" />
<PackageVersion Include="YamlDotNet" Version="16.3.0" />
</ItemGroup>
<ItemGroup Condition="'$(ProjectName.ToLower().Contains(`test`))' == 'true'">
<PackageVersion Include="LateApexEarlySpeed.Xunit.V3.Assertion.Json" Version="1.0.6" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.3" />
<PackageVersion Include="Testcontainers.MongoDb" Version="4.3.0" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageVersion Include="xunit.v3" Version="2.0.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
</ItemGroup>
</Project>
25 changes: 0 additions & 25 deletions ScriptBee.Tests/FileDataAttribute.cs

This file was deleted.

39 changes: 0 additions & 39 deletions ScriptBee.Tests/ScriptBee.Tests.csproj

This file was deleted.

This file was deleted.

74 changes: 0 additions & 74 deletions ScriptBeeWebApp/EndpointDefinitions/PluginsEndpointDefinition.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
using System.Runtime.Serialization;

namespace ScriptBee.Marketplace.Client.Exceptions;

[Serializable]
public sealed class PluginNotFoundException : Exception
{
public PluginNotFoundException(string message)
: base(message) { }

private PluginNotFoundException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}
public sealed class PluginNotFoundException(string message) : Exception(message);
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
using System.Runtime.Serialization;

namespace ScriptBee.Marketplace.Client.Exceptions;

[Serializable]
public sealed class PluginVersionNotFoundException : Exception
{
public PluginVersionNotFoundException(string message)
: base(message) { }

private PluginVersionNotFoundException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}
public sealed class PluginVersionNotFoundException(string message) : Exception(message);
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
using System.Runtime.Serialization;

namespace ScriptBee.Persistence.File.Exceptions;
namespace ScriptBee.Persistence.File.Exceptions;

[Serializable]
public class PluginInstallationException : Exception
{
public PluginInstallationException(string name, string version)
: base($"Plugin with name '{name}' and version '{version}' could not be installed.") { }

protected PluginInstallationException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}
public class PluginInstallationException(string name, string version)
: Exception($"Plugin with name '{name}' and version '{version}' could not be installed.");
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
using System.Runtime.Serialization;

namespace ScriptBee.Persistence.File.Exceptions;
namespace ScriptBee.Persistence.File.Exceptions;

[Serializable]
public class PluginVersionExistsException : Exception
{
public PluginVersionExistsException(string name, string version)
: base($"Plugin with name '{name}' and version '{version}' already exists") { }

protected PluginVersionExistsException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}
public class PluginVersionExistsException(string name, string version)
: Exception($"Plugin with name '{name}' and version '{version}' already exists");

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
namespace ScriptBee.Web.EndpointDefinitions.Plugins.Contracts;

public sealed record WebAllAvailablePluginsResponse(IEnumerable<WebMarketplaceProject> Data);
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
namespace ScriptBee.Web.EndpointDefinitions.Plugins.Contracts;

public sealed record WebInstalledPluginsResponse(IEnumerable<WebMarketplaceProject> Data);
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using ScriptBee.Domain.Model.Plugin;
using ScriptBee.Domain.Model.Plugin.MarketPlace;

namespace ScriptBee.Web.EndpointDefinitions.PluginMarketPlace.Contracts;
namespace ScriptBee.Web.EndpointDefinitions.Plugins.Contracts;

public sealed record WebMarketplaceProject(
string Id,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using ScriptBee.Domain.Model.Plugin.MarketPlace;

namespace ScriptBee.Web.EndpointDefinitions.Plugins.Contracts;

public sealed record WebPluginVersion(string Version)
{
public static WebPluginVersion Map(MarketPlacePluginVersion version)
{
return new WebPluginVersion(version.Version.ToString());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using Microsoft.AspNetCore.Http.HttpResults;
using ScriptBee.Common.Web;
using ScriptBee.Web.EndpointDefinitions.Plugins.Contracts;

namespace ScriptBee.Web.EndpointDefinitions.Plugins;

public class GetAllAvailablePluginsEndpoint : IEndpointDefinition
{
public void DefineEndpoints(IEndpointRouteBuilder app)
{
// TODO FIXIT(#87): replace hardcoded values with use cases
app.MapGet("/api/plugins", GetAllAvailablePlugins);
}

private static Task<Ok<WebAllAvailablePluginsResponse>> GetAllAvailablePlugins(
HttpContext context,
CancellationToken cancellationToken = default
)
{
var response = new WebAllAvailablePluginsResponse(
[
new WebMarketplaceProject(
"plugin1",
"Plugin 1",
WebMarketplaceProject.PluginType,
"Description for Plugin 1",
["Author 1", "Author 2"],
[new WebPluginVersion("1.0.0")]
),
]
);

return Task.FromResult(TypedResults.Ok(response));
}
}
Loading
Loading