void.cat/VoidCat/Controllers/Admin/AdminController.cs

46 lines
1.3 KiB
C#
Raw Normal View History

2022-02-16 16:33:00 +00:00
using Microsoft.AspNetCore.Authorization;
2022-02-13 15:44:17 +00:00
using Microsoft.AspNetCore.Mvc;
2022-02-21 22:35:06 +00:00
using VoidCat.Model;
2022-02-22 14:20:31 +00:00
using VoidCat.Services.Abstractions;
2022-02-13 15:44:17 +00:00
namespace VoidCat.Controllers.Admin;
[Route("admin")]
2022-02-21 22:35:06 +00:00
[Authorize(Policy = Policies.RequireAdmin)]
2022-02-13 15:44:17 +00:00
public class AdminController : Controller
{
2022-02-22 14:20:31 +00:00
private readonly IFileStore _fileStore;
private readonly IFileInfoManager _fileInfo;
2022-02-24 12:00:28 +00:00
private readonly IUserStore _userStore;
2022-02-22 14:20:31 +00:00
public AdminController(IFileStore fileStore, IUserStore userStore, IFileInfoManager fileInfo)
2022-02-22 14:20:31 +00:00
{
_fileStore = fileStore;
2022-02-24 12:00:28 +00:00
_userStore = userStore;
_fileInfo = fileInfo;
2022-02-22 14:20:31 +00:00
}
[HttpPost]
2022-02-22 14:20:31 +00:00
[Route("file")]
2022-02-24 12:00:28 +00:00
public async Task<RenderedResults<PublicVoidFile>> ListFiles([FromBody] PagedRequest request)
2022-02-22 14:20:31 +00:00
{
2022-02-24 12:00:28 +00:00
return await (await _fileStore.ListFiles(request)).GetResults();
2022-02-22 14:20:31 +00:00
}
[HttpDelete]
[Route("file/{id}")]
public async Task DeleteFile([FromRoute] string id)
2022-02-22 14:20:31 +00:00
{
var gid = id.FromBase58Guid();
await _fileStore.DeleteFile(gid);
await _fileInfo.Delete(gid);
2022-02-22 14:20:31 +00:00
}
2022-02-24 12:00:28 +00:00
[HttpPost]
[Route("user")]
2022-02-27 13:54:25 +00:00
public async Task<RenderedResults<PrivateVoidUser>> ListUsers([FromBody] PagedRequest request)
2022-02-24 12:00:28 +00:00
{
var result = await _userStore.ListUsers(request);
return await result.GetResults();
}
}