AlanMoonbase 8abf75a3e9 initial implementation (wojs)
-added CurrentZone property to Viking model
-implemented ``InviteBuddy`` and ``GetBuddyLocation``
2025-03-18 15:45:52 -07:00

57 lines
1.7 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using sodoff.Attributes;
using sodoff.Model;
namespace sodoff.Controllers.Common
{
[ApiController]
public class PrecenseController : Controller
{
private readonly DBContext ctx;
public PrecenseController(DBContext ctx) => this.ctx = ctx;
[HttpPost]
[Produces("application/json")]
[Route("Precense/SetVikingOnline")]
public IActionResult SetVikingOnline([FromForm] Guid token, [FromForm] bool online)
{
// get viking from session
Viking? viking = ctx.Sessions.FirstOrDefault(e => e.ApiToken == token)?.Viking;
if (viking != null)
{
viking.Online = online;
ctx.SaveChanges();
return Ok(viking.Online);
} else return Ok(false);
}
[HttpPost]
[Produces("application/json")]
[Route("Precense/SetVikingRoom")]
public IActionResult SetVikingRoom([FromForm] Guid token, [FromForm] int roomId, [FromForm] string zoneName)
{
// get viking from session
Viking? viking = ctx.Sessions.FirstOrDefault(e => e.ApiToken == token)?.Viking;
if (viking != null)
{
if (roomId <= 0 && string.IsNullOrEmpty(zoneName))
{
viking.CurrentRoomId = null;
viking.CurrentZone = null;
ctx.SaveChanges();
return Ok(true);
}
viking.CurrentRoomId = roomId;
viking.CurrentZone = zoneName;
ctx.SaveChanges();
return Ok(true);
}
else return Ok(false);
}
}
}