Rework around a saner import popup and decouple logic from interface.

This commit is contained in:
Ottermandias 2023-04-08 22:29:43 +02:00
parent bfb630d317
commit bbfc9a0a6f
16 changed files with 478 additions and 411 deletions

View file

@ -12,12 +12,12 @@ public class HttpApi : IDisposable
private partial class Controller : WebApiController
{
// @formatter:off
[Route( HttpVerbs.Get, "/mods" )] public partial object? GetMods();
[Route( HttpVerbs.Post, "/redraw" )] public partial Task Redraw();
[Route( HttpVerbs.Post, "/redrawAll" )] public partial void RedrawAll();
[Route( HttpVerbs.Post, "/reloadmod" )] public partial Task ReloadMod();
[Route( HttpVerbs.Post, "/unpackmod" )] public partial Task UnpackMod();
[Route( HttpVerbs.Post, "/openwindow")] public partial Task OpenWindow();
[Route( HttpVerbs.Get, "/mods" )] public partial object? GetMods();
[Route( HttpVerbs.Post, "/redraw" )] public partial Task Redraw();
[Route( HttpVerbs.Post, "/redrawAll" )] public partial void RedrawAll();
[Route( HttpVerbs.Post, "/reloadmod" )] public partial Task ReloadMod();
[Route( HttpVerbs.Post, "/installmod" )] public partial Task InstallMod();
[Route( HttpVerbs.Post, "/openwindow" )] public partial void OpenWindow();
// @formatter:on
}
@ -103,16 +103,15 @@ public class HttpApi : IDisposable
_api.ReloadMod(data.Path, data.Name);
}
public async partial Task UnpackMod()
public async partial Task InstallMod()
{
var data = await HttpContext.GetRequestDataAsync<ModUnpackData>();
Penumbra.Log.Debug($"[HTTP] {nameof(UnpackMod)} triggered with {data}.");
// Unpack the mod package if its valid.
var data = await HttpContext.GetRequestDataAsync<ModInstallData>();
Penumbra.Log.Debug($"[HTTP] {nameof(InstallMod)} triggered with {data}.");
if (data.Path.Length != 0)
_api.UnpackMod(data.Path);
_api.InstallMod(data.Path);
}
public async partial Task OpenWindow()
public partial void OpenWindow()
{
Penumbra.Log.Debug($"[HTTP] {nameof(OpenWindow)} triggered.");
_api.OpenMainWindow(TabType.Mods, string.Empty, string.Empty);
@ -125,9 +124,9 @@ public class HttpApi : IDisposable
{ }
}
private record ModUnpackData(string Path)
private record ModInstallData(string Path)
{
public ModUnpackData()
public ModInstallData()
: this(string.Empty)
{ }
}