Files
Radicade/Server/Matchmaking/RoomInstanceAPI.cs
T
2026-10-16 23:33:13 -07:00

53 lines
1.4 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using RadicadeServer.DB;
using RadicadeServer.Extensions;
using RadicadeServer.RecNet.Accounts;
using RadicadeServer.RecNet.Enums;
namespace RadicadeServer.Matchmaking
{
[Route("matchmaking/roominstance/")]
public class RoomInstanceAPI : Controller
{
RecDBContext db;
public RoomInstanceAPI(RecDBContext context)
{
this.db = context;
}
[HttpPut("{id}/markprivate")]
public async Task<IActionResult> MarkPrivate(long id, bool isPrivate)
{
var roomInstance = await db.RoomInstances.FirstOrDefaultAsync(x => x.roomInstanceId == id);
if (roomInstance == null) return Ok(new { success = false, error = "Room instance not found" });
roomInstance.isPrivate = isPrivate;
await db.SaveChangesAsync();
return Ok(new { success = true, error = "" });
}
[HttpPut("{id}/inprogress")]
public async Task<IActionResult> MarkInProgress(long id, bool inProgress)
{
var roomInstance = await db.RoomInstances.FirstOrDefaultAsync(x => x.roomInstanceId == id);
if (roomInstance == null) return Ok(new { success = false, error = "Room instance not found" });
roomInstance.isInProgress = inProgress;
await db.SaveChangesAsync();
return Ok(new { success = true, error = "" });
}
[HttpGet("{id}/roomCode")]
public IActionResult SetRoomCode([FromForm] string roomCode, [FromQuery] long id)
{
return Ok();
}
}
}