Foxnouns.NET/Foxnouns.Backend/Controllers/MetaController.cs
2024-06-09 15:48:26 +02:00

26 lines
No EOL
838 B
C#

using Foxnouns.Backend.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
namespace Foxnouns.Backend.Controllers;
[Route("/api/v2/meta")]
public class MetaController(DatabaseContext db) : ApiControllerBase
{
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(MetaResponse))]
public async Task<IActionResult> GetMeta()
{
var userCount = await db.Users.CountAsync();
var memberCount = await db.Members.CountAsync();
return Ok(new MetaResponse(
BuildInfo.Version, BuildInfo.Hash, memberCount,
new UserInfo(userCount, 0, 0, 0))
);
}
private record MetaResponse(string Version, string Hash, int Members, UserInfo Users);
private record UserInfo(int Total, int ActiveMonth, int ActiveWeek, int ActiveDay);
}