Added download and progress endpoints

This commit is contained in:
2024-11-02 19:14:38 +02:00
parent f2a9982d41
commit 9102cfaa47
9 changed files with 102 additions and 24 deletions

View File

@@ -3,7 +3,6 @@ using System.Linq;
using System.Threading.Tasks;
using DiscordBotCore.Interfaces.API;
using DiscordBotCore.Others;
using Microsoft.AspNetCore.Http;
namespace DiscordBotCore.API.Endpoints;

View File

@@ -4,12 +4,10 @@ using System.Threading.Tasks;
using DiscordBotCore.Interfaces.API;
using DiscordBotCore.Others;
using DiscordBotCore.Plugin;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
namespace DiscordBotCore.API.Endpoints.PluginManagement;
public class InstallPluginEndpoint : IEndpoint
public class PluginInstallEndpoint : IEndpoint
{
public string Path => "/api/plugin/install";
public EndpointType HttpMethod => EndpointType.Put;
@@ -25,7 +23,7 @@ public class InstallPluginEndpoint : IEndpoint
return ApiResponse.Fail("Plugin not found.");
}
await Application.CurrentApplication.PluginManager.InstallPlugin(pluginInfo, null);
await Application.CurrentApplication.PluginManager.InstallPluginWithNoProgress(pluginInfo);
return ApiResponse.Ok();
}
}

View File

@@ -0,0 +1,29 @@
using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using DiscordBotCore.Interfaces.API;
using DiscordBotCore.Others;
namespace DiscordBotCore.API.Endpoints.PluginManagement;
public class PluginInstallGetProgressEndpoint : IEndpoint
{
public string Path => "/api/plugin/install/progress";
public EndpointType HttpMethod => EndpointType.Get;
public async Task<ApiResponse> HandleRequest(string? jsonRequest)
{
if (!Application.CurrentApplication.PluginManager.InstallingPluginInformation.IsInstalling)
{
return ApiResponse.Fail("No plugin is currently being installed.");
}
var progress = Application.CurrentApplication.PluginManager.InstallingPluginInformation.InstallationProgress;
string stringProgress = progress.ToString(CultureInfo.InvariantCulture);
var response = new Dictionary<string, string>
{
{"progress", stringProgress},
{"pluginName", Application.CurrentApplication.PluginManager.InstallingPluginInformation.PluginName}
};
return ApiResponse.From(await JsonManager.ConvertToJsonString(response), true);
}
}

View File

@@ -1,7 +1,6 @@
using System.Threading.Tasks;
using DiscordBotCore.Interfaces.API;
using DiscordBotCore.Others;
using Microsoft.AspNetCore.Http;
namespace DiscordBotCore.API.Endpoints.PluginManagement;