mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-26 07:29:00 -07:00
40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using RadicadeServer.DB;
|
|
using RadicadeServer.RecNet.Enums;
|
|
using RadicadeServer.RecNet.VersionCheck;
|
|
|
|
namespace RadicadeServer.API
|
|
{
|
|
[Route("api/versioncheck/")]
|
|
public class VersionCheckAPI(RecDBContext db) : Controller
|
|
{
|
|
[HttpGet("v4")]
|
|
public async Task<IActionResult> Get([FromQuery] string? v, [FromQuery] string? version)
|
|
{
|
|
var requested = v ?? version;
|
|
var query = HttpContext?.Request?.QueryString.Value ?? "";
|
|
var announcement = await db.ServerConfig.AsNoTracking()
|
|
.FirstOrDefaultAsync(x => x.Key == GameUpdateVersionCheck.AnnouncementConfigKey);
|
|
var result = GameUpdateVersionCheck.Resolve(announcement?.Value, DateTime.UtcNow);
|
|
|
|
return Ok(BuildClientResponse(result));
|
|
}
|
|
|
|
[HttpGet("islandedversions")]
|
|
public IActionResult GetIslandedVersions()
|
|
{
|
|
return Ok(Array.Empty<string>());
|
|
}
|
|
|
|
private static Dictionary<string, object> BuildClientResponse(VersionCheckResult result) => new()
|
|
{
|
|
["ValidVersion"] = 0,
|
|
["VersionStatus"] = (int)result.VersionStatus,
|
|
["UpdateNotificationStage"] = result.UpdateNotificationStage,
|
|
["IsVersionIslanded"] = result.IsVersionIslanded,
|
|
["IsCrossPlayDisabled"] = result.IsCrossPlayDisabled,
|
|
};
|
|
}
|
|
}
|