add alias to jwt, remove caching from auth, remove db usage from files

This commit is contained in:
rootdarkarchon 2024-01-14 11:57:18 +01:00
parent 2c7ff6f73a
commit 63286127a2
7 changed files with 35 additions and 98 deletions

View file

@ -14,4 +14,5 @@ public class ControllerBase : Controller
protected string MareUser => HttpContext.User.Claims.First(f => string.Equals(f.Type, MareClaimTypes.Uid, StringComparison.Ordinal)).Value;
protected string Continent => HttpContext.User.Claims.FirstOrDefault(f => string.Equals(f.Type, MareClaimTypes.Continent, StringComparison.Ordinal))?.Value ?? "*";
protected bool IsPriority => !string.IsNullOrEmpty(HttpContext.User.Claims.FirstOrDefault(f => string.Equals(f.Type, MareClaimTypes.Alias, StringComparison.Ordinal))?.Value ?? string.Empty);
}

View file

@ -1,5 +1,4 @@
using MareSynchronos.API.Routes;
using MareSynchronosShared.Data;
using MareSynchronosStaticFilesServer.Services;
using Microsoft.AspNetCore.Mvc;
@ -10,14 +9,12 @@ public class RequestController : ControllerBase
{
private readonly CachedFileProvider _cachedFileProvider;
private readonly RequestQueueService _requestQueue;
private readonly MareDbContext _mareDbContext;
private static readonly SemaphoreSlim _parallelRequestSemaphore = new(500);
public RequestController(ILogger<RequestController> logger, CachedFileProvider cachedFileProvider, RequestQueueService requestQueue, MareDbContext mareDbContext) : base(logger)
public RequestController(ILogger<RequestController> logger, CachedFileProvider cachedFileProvider, RequestQueueService requestQueue) : base(logger)
{
_cachedFileProvider = cachedFileProvider;
_requestQueue = requestQueue;
_mareDbContext = mareDbContext;
}
[HttpGet]
@ -28,7 +25,7 @@ public class RequestController : ControllerBase
try
{
_requestQueue.RemoveFromQueue(requestId, MareUser);
_requestQueue.RemoveFromQueue(requestId, MareUser, IsPriority);
return Ok();
}
catch (OperationCanceledException) { return BadRequest(); }
@ -53,7 +50,7 @@ public class RequestController : ControllerBase
}
Guid g = Guid.NewGuid();
await _requestQueue.EnqueueUser(new(g, MareUser, files.ToList()), _mareDbContext);
_requestQueue.EnqueueUser(new(g, MareUser, files.ToList()), IsPriority);
return Ok(g);
}
@ -72,8 +69,8 @@ public class RequestController : ControllerBase
try
{
if (!await _requestQueue.StillEnqueued(requestId, MareUser, _mareDbContext))
await _requestQueue.EnqueueUser(new(requestId, MareUser, files.ToList()), _mareDbContext);
if (!_requestQueue.StillEnqueued(requestId, MareUser, IsPriority))
_requestQueue.EnqueueUser(new(requestId, MareUser, files.ToList()), IsPriority);
return Ok();
}
catch (OperationCanceledException) { return BadRequest(); }