Implemented version fetching from source control git server. Added self version detection and update checks
This commit was merged in pull request #8.
This commit is contained in:
46
Moonlight.Api/Http/Controllers/Admin/VersionsController.cs
Normal file
46
Moonlight.Api/Http/Controllers/Admin/VersionsController.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Moonlight.Api.Mappers;
|
||||
using Moonlight.Api.Services;
|
||||
using Moonlight.Shared;
|
||||
using Moonlight.Shared.Http.Responses.Admin;
|
||||
|
||||
namespace Moonlight.Api.Http.Controllers.Admin;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/admin/versions")]
|
||||
[Authorize(Policy = Permissions.System.Versions)]
|
||||
public class VersionsController : Controller
|
||||
{
|
||||
private readonly VersionService VersionService;
|
||||
|
||||
public VersionsController(VersionService versionService)
|
||||
{
|
||||
VersionService = versionService;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<VersionDto[]>> GetAsync()
|
||||
{
|
||||
var versions = await VersionService.GetVersionsAsync();
|
||||
return VersionMapper.ToDtos(versions).ToArray();
|
||||
}
|
||||
|
||||
[HttpGet("instance")]
|
||||
public async Task<ActionResult<VersionDto>> GetInstanceAsync()
|
||||
{
|
||||
var version = await VersionService.GetInstanceVersionAsync();
|
||||
return VersionMapper.ToDto(version);
|
||||
}
|
||||
|
||||
[HttpGet("latest")]
|
||||
public async Task<ActionResult<VersionDto>> GetLatestAsync()
|
||||
{
|
||||
var version = await VersionService.GetLatestVersionAsync();
|
||||
|
||||
if(version == null)
|
||||
return Problem("Unable to retrieve latest version", statusCode: 404);
|
||||
|
||||
return VersionMapper.ToDto(version);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user