summaryrefslogtreecommitdiff
path: root/Controllers/ApiStatisticsController.cs
blob: 3acd1d598473abe5ee54edb2b9772545685f5e49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using HyperBooru.ApiModels;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace HyperBooru.Controllers;

[ApiController]
[Route("/api/stats")]
public class ApiStatisticsController : Controller {
    private IDbContextFactory<HBContext> dbFactory;

    public ApiStatisticsController(IDbContextFactory<HBContext> dbFactory) =>
        this.dbFactory = dbFactory;

    [HttpGet("ingest")]
    public async Task<IActionResult> GetIngestStatistics() {
        using var db = dbFactory.CreateDbContext();

        return Ok(new IngestStatistics() {
            TotalMediaCount    = db.Media.Count(),
            UntaggedMediaCount = db.Media
                .Where(m => m.Tags.Any(t => t.TagDefinition.ObjectId == (int) HBObjectId.IngestTag))
                .Count(),
        });
    }
}