Add redraw route to http api

This commit is contained in:
Yuki 2022-03-20 16:16:27 +11:00
parent bf40c2a3cb
commit 6fa79c62c4
2 changed files with 37 additions and 1 deletions

View file

@ -0,0 +1,35 @@
using System.Threading.Tasks;
using EmbedIO;
using EmbedIO.Routing;
using EmbedIO.WebApi;
using Penumbra.GameData.Enums;
namespace Penumbra.Api
{
public class RedrawController : WebApiController
{
private readonly Penumbra _penumbra;
public RedrawController( Penumbra penumbra )
=> _penumbra = penumbra;
[Route( HttpVerbs.Post, "/redraw" )]
public async Task Redraw()
{
RedrawData data = await HttpContext.GetRequestDataAsync<RedrawData>();
_penumbra.Api.RedrawObject( data.Name, data.Type );
}
[Route( HttpVerbs.Post, "/redrawAll" )]
public void RedrawAll()
{
_penumbra.Api.RedrawAll(RedrawType.WithoutSettings);
}
public class RedrawData
{
public string Name { get; set; } = string.Empty;
public RedrawType Type { get; set; } = RedrawType.WithSettings;
}
}
}

View file

@ -166,7 +166,8 @@ public class Penumbra : IDalamudPlugin
.WithMode( HttpListenerMode.EmbedIO ) )
.WithCors( prefix )
.WithWebApi( "/api", m => m
.WithController( () => new ModsController( this ) ) );
.WithController( () => new ModsController( this ) )
.WithController( () => new RedrawController( this ) ) );
_webServer.StateChanged += ( _, e ) => PluginLog.Information( $"WebServer New State - {e.NewState}" );