forked from SoDOff-Project/sodoff
-added CurrentZone property to Viking model -implemented ``InviteBuddy`` and ``GetBuddyLocation``
57 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|