add abstractions for controllers

This commit is contained in:
zznty
2022-07-21 22:06:25 +07:00
parent 10dfe63b9c
commit 320dfca2d5
8 changed files with 46 additions and 4 deletions

View File

@@ -0,0 +1,8 @@
using TorchRemote.Models.Requests;
namespace TorchRemote.Plugin.Abstractions.Controllers;
public interface IChatController
{
Task SendMessage(ChatMessageRequest request);
Task<Guid> InvokeCommand(ChatCommandRequest request);
}

View File

@@ -0,0 +1,13 @@
using TorchRemote.Models.Requests;
using TorchRemote.Models.Responses;
using TorchRemote.Models.Shared;
namespace TorchRemote.Plugin.Abstractions.Controllers;
public interface IServerController
{
ServerStatusResponse GetStatus();
Task Start();
Task Stop(StopServerRequest request);
ServerSettings GetSettings();
Task SetSettings(ServerSettings request);
}

View File

@@ -0,0 +1,7 @@
using TorchRemote.Models.Responses;
namespace TorchRemote.Plugin.Abstractions.Controllers;
public interface ISettingsController
{
SettingInfoResponse Get(Guid id);
}

View File

@@ -0,0 +1,10 @@
using TorchRemote.Models.Responses;
namespace TorchRemote.Plugin.Abstractions.Controllers;
public interface IWorldsController
{
IEnumerable<Guid> Get();
Guid GetSelected();
WorldResponse GetWorld(Guid id);
void Select(Guid id);
}

View File

@@ -17,12 +17,13 @@ using Torch.Utils;
using TorchRemote.Models.Requests; using TorchRemote.Models.Requests;
using TorchRemote.Models.Responses; using TorchRemote.Models.Responses;
using TorchRemote.Models.Shared; using TorchRemote.Models.Shared;
using TorchRemote.Plugin.Abstractions.Controllers;
using TorchRemote.Plugin.Modules; using TorchRemote.Plugin.Modules;
using TorchRemote.Plugin.Utils; using TorchRemote.Plugin.Utils;
using VRage.Network; using VRage.Network;
namespace TorchRemote.Plugin.Controllers; namespace TorchRemote.Plugin.Controllers;
public class ChatController : WebApiController public class ChatController : WebApiController, IChatController
{ {
private const string RootPath = "/chat"; private const string RootPath = "/chat";

View File

@@ -7,11 +7,12 @@ using Torch.API.Session;
using TorchRemote.Models.Requests; using TorchRemote.Models.Requests;
using TorchRemote.Models.Responses; using TorchRemote.Models.Responses;
using TorchRemote.Models.Shared; using TorchRemote.Models.Shared;
using TorchRemote.Plugin.Abstractions.Controllers;
using TorchRemote.Plugin.Utils; using TorchRemote.Plugin.Utils;
namespace TorchRemote.Plugin.Controllers; namespace TorchRemote.Plugin.Controllers;
public class ServerController : WebApiController public class ServerController : WebApiController, IServerController
{ {
private const string RootPath = "/server"; private const string RootPath = "/server";

View File

@@ -3,10 +3,11 @@ using EmbedIO.Routing;
using EmbedIO.WebApi; using EmbedIO.WebApi;
using Swan; using Swan;
using TorchRemote.Models.Responses; using TorchRemote.Models.Responses;
using TorchRemote.Plugin.Abstractions.Controllers;
using TorchRemote.Plugin.Utils; using TorchRemote.Plugin.Utils;
namespace TorchRemote.Plugin.Controllers; namespace TorchRemote.Plugin.Controllers;
public class SettingsController : WebApiController public class SettingsController : WebApiController, ISettingsController
{ {
private const string RootPath = "/settings"; private const string RootPath = "/settings";

View File

@@ -3,10 +3,11 @@ using EmbedIO;
using EmbedIO.Routing; using EmbedIO.Routing;
using EmbedIO.WebApi; using EmbedIO.WebApi;
using TorchRemote.Models.Responses; using TorchRemote.Models.Responses;
using TorchRemote.Plugin.Abstractions.Controllers;
using TorchRemote.Plugin.Utils; using TorchRemote.Plugin.Utils;
namespace TorchRemote.Plugin.Controllers; namespace TorchRemote.Plugin.Controllers;
public class WorldsController : WebApiController public class WorldsController : WebApiController, IWorldsController
{ {
private const string RootPath = "/worlds"; private const string RootPath = "/worlds";