Add/Remove level queue endpoints

This commit is contained in:
jvyden 2021-10-16 17:39:18 -04:00
commit f0388732f3
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278

View file

@ -1,6 +1,8 @@
#nullable enable
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using ProjectLighthouse.Serialization;
@ -23,5 +25,40 @@ namespace ProjectLighthouse.Controllers {
return this.Ok(LbpSerializer.TaggedStringElement("slots", response, "total", 1));
}
[HttpPost("lolcatftw/remove/user/{id:int}")]
public async Task<IActionResult> RemoveQueuedLevel(int id) {
await using Database database = new();
User? user = await database.UserFromRequest(this.Request);
if(user == null) return this.StatusCode(403, "");
QueuedLevel queuedLevel = await database.QueuedLevels.FirstOrDefaultAsync(q => q.UserId == user.UserId && q.SlotId == id);
if(queuedLevel != null) database.QueuedLevels.Remove(queuedLevel);
await database.SaveChangesAsync();
return this.Ok();
}
[HttpPost("lolcatftw/add/user/{id:int}")]
public async Task<IActionResult> AddQueuedLevel(int id) {
await using Database database = new();
User? user = await database.UserFromRequest(this.Request);
if(user == null) return this.StatusCode(403, "");
QueuedLevel queuedLevel = await database.QueuedLevels.FirstOrDefaultAsync(q => q.UserId == user.UserId && q.SlotId == id);
if(queuedLevel != null) return this.Ok();
database.QueuedLevels.Add(new QueuedLevel {
SlotId = id,
UserId = user.UserId
});
await database.SaveChangesAsync();
return this.Ok();
}
}
}