initial upload
This commit is contained in:
parent
a0aa9cc28e
commit
f857f43df4
553 changed files with 46169 additions and 13 deletions
93
src/Api/Insight.Api/Controllers/UpdateController.cs
Normal file
93
src/Api/Insight.Api/Controllers/UpdateController.cs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
using Insight.Api;
|
||||
using Insight.Domain.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Insight.Server.Controllers
|
||||
{
|
||||
[ApiController, Route("api/update")]
|
||||
public class UpdateController : ControllerBase
|
||||
{
|
||||
private readonly ILogger<UpdateController> _logger;
|
||||
|
||||
public UpdateController(ILogger<UpdateController> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpGet("updater/windows")]
|
||||
public IActionResult UpdaterWindows()
|
||||
{
|
||||
_logger.LogInformation("[{method}] {route} => {ep}", Request.Method, Request.HttpContext.Request.Path, Request.HttpContext.Connection.RemoteIpAddress);
|
||||
|
||||
var updateDir = new DirectoryInfo($"{Locations.UpdatesPath}/updater/windows");
|
||||
|
||||
if (updateDir.Exists is false)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
var updateLock = new FileInfo($"{updateDir.FullName}/.lock");
|
||||
|
||||
if (updateLock.Exists)
|
||||
{
|
||||
return NotFound("locked");
|
||||
}
|
||||
|
||||
var versions = updateDir.GetFiles("*.zip", SearchOption.TopDirectoryOnly);
|
||||
|
||||
if (versions is null || versions.Any() is false) return NotFound();
|
||||
|
||||
var latest = versions.OrderBy(x => x.Name).FirstOrDefault();
|
||||
|
||||
if (latest is null) return NotFound();
|
||||
|
||||
var relPath = $"{Path.GetRelativePath($"{Domain.Constants.Configuration.AppDirectory?.FullName}", latest.FullName)}";
|
||||
|
||||
if (Version.TryParse(Path.GetFileNameWithoutExtension(latest.Name), out var fileversion) is false) return NotFound();
|
||||
|
||||
return Ok(new UpdateResponse
|
||||
{
|
||||
Version = fileversion,
|
||||
Uri = new Uri($"{Request.Scheme}://{Request.Host}/api/{relPath}")
|
||||
});
|
||||
}
|
||||
|
||||
[HttpGet("agent/windows")]
|
||||
public IActionResult AgentWindows()
|
||||
{
|
||||
_logger.LogInformation("[{method}] {route} => {ep}", Request.Method, Request.HttpContext.Request.Path, Request.HttpContext.Connection.RemoteIpAddress);
|
||||
|
||||
var updateDir = new DirectoryInfo($"{Locations.UpdatesPath}/agent/windows");
|
||||
|
||||
if (updateDir.Exists is false)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
var updateLock = new FileInfo($"{updateDir.FullName}/.lock");
|
||||
|
||||
if (updateLock.Exists)
|
||||
{
|
||||
return NotFound("locked");
|
||||
}
|
||||
|
||||
var versions = updateDir.GetFiles("*.zip", SearchOption.TopDirectoryOnly);
|
||||
|
||||
if (versions is null || versions.Any() is false) return NotFound();
|
||||
|
||||
var latest = versions.OrderBy(x => x.Name).FirstOrDefault();
|
||||
|
||||
if (latest is null) return NotFound();
|
||||
|
||||
var relPath = $"{Path.GetRelativePath($"{Domain.Constants.Configuration.AppDirectory?.FullName}", latest.FullName)}";
|
||||
|
||||
if (Version.TryParse(Path.GetFileNameWithoutExtension(latest.Name), out var fileversion) is false) return NotFound();
|
||||
|
||||
return Ok(new UpdateResponse
|
||||
{
|
||||
Version = fileversion,
|
||||
Uri = new Uri($"{Request.Scheme}://{Request.Host}/api/{relPath}")
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue