mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 23:18:56 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
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,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user