feat: add deleted user columns in database

This commit is contained in:
sam 2024-07-13 03:09:00 +02:00
parent e95e0a79ff
commit fa49030b06
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
17 changed files with 1254 additions and 54 deletions

View file

@ -1,29 +1,38 @@
using Foxnouns.Backend.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
using NodaTime;
namespace Foxnouns.Backend.Controllers;
[Route("/api/v2/meta")]
public class MetaController(DatabaseContext db) : ApiControllerBase
public class MetaController(DatabaseContext db, IClock clock) : ApiControllerBase
{
private const string Repository = "https://codeberg.org/pronounscc/pronouns.cc";
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(MetaResponse))]
public async Task<IActionResult> GetMeta()
{
var userCount = await db.Users.CountAsync();
var now = clock.GetCurrentInstant();
var users = await db.Users.Select(u => u.LastActive).ToListAsync();
var memberCount = await db.Members.CountAsync();
return Ok(new MetaResponse(
BuildInfo.Version, BuildInfo.Hash, memberCount,
new UserInfo(userCount, 0, 0, 0))
Repository, BuildInfo.Version, BuildInfo.Hash, memberCount,
new UserInfo(
users.Count,
users.Count(i => i > now - Duration.FromDays(30)),
users.Count(i => i > now - Duration.FromDays(7)),
users.Count(i => i > now - Duration.FromDays(1))
))
);
}
[HttpGet("/api/v2/coffee")]
public IActionResult BrewCoffee() => Problem("Sorry, I'm a teapot!", statusCode: StatusCodes.Status418ImATeapot);
private record MetaResponse(string Version, string Hash, int Members, UserInfo Users);
private record MetaResponse(string Repository, string Version, string Hash, int Members, UserInfo Users);
private record UserInfo(int Total, int ActiveMonth, int ActiveWeek, int ActiveDay);
}