From decf281598c75ce643685f4aea096676062e15e3 Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Mon, 20 Dec 2021 11:32:37 +1000 Subject: [PATCH] Added Call Home Endpoints - Server and Plugin --- .../Controllers/PluginController.cs | 41 +++++++++++++++++++ .../Controllers/ServerController.cs | 18 ++++++++ 2 files changed, 59 insertions(+) create mode 100644 src/ServerManager.WebApplication/Controllers/PluginController.cs diff --git a/src/ServerManager.WebApplication/Controllers/PluginController.cs b/src/ServerManager.WebApplication/Controllers/PluginController.cs new file mode 100644 index 00000000..9d04f889 --- /dev/null +++ b/src/ServerManager.WebApplication/Controllers/PluginController.cs @@ -0,0 +1,41 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace ServerManager.WebApplication.Controllers +{ + [Route("api/plugin")] + [ApiController] + [ApiVersion("1.0")] + [Produces("application/json")] + public class PluginController : ControllerBase + { + private readonly IConfiguration _configuration; + private readonly ILogger _logger; + + public PluginController(IConfiguration configuration, ILogger logger) + { + _configuration = configuration; + _logger = logger; + } + + // GET: api/plugin/call/00000000-0000-0000-0000-000000000000/192.168.1.1 + [HttpGet()] + [Route("call/{pluginCode}/{ipString}", Name = "Call_V1")] + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public ActionResult Call_V1([FromRoute] string pluginCode, [FromRoute] string ipString) + { + try + { + return Ok(true); + } + catch + { + return StatusCode(StatusCodes.Status500InternalServerError, false); + } + } + } +} diff --git a/src/ServerManager.WebApplication/Controllers/ServerController.cs b/src/ServerManager.WebApplication/Controllers/ServerController.cs index 35f2ad74..51d3c216 100644 --- a/src/ServerManager.WebApplication/Controllers/ServerController.cs +++ b/src/ServerManager.WebApplication/Controllers/ServerController.cs @@ -27,6 +27,24 @@ namespace ServerManager.WebApplication.Controllers _serverQueryService = serverQueryService; } + // GET: api/server/call/00000000-0000-0000-0000-000000000000/192.168.1.1 + [HttpGet()] + [Route("call/{managerCode}/{ipString}", Name = "Call_V1")] + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public ActionResult Call_V1([FromRoute] string managerCode, [FromRoute] string ipString) + { + try + { + return Ok(true); + } + catch + { + return StatusCode(StatusCodes.Status500InternalServerError, false); + } + } + // GET: api/server/192.168.1.1/27017 [HttpGet()] [Route("{ipString}/{port}", Name = "GetServerStatus_V1")]