mirror of
https://github.com/QuotifyTeam/QuotifyBE.git
synced 2025-12-16 20:10:07 +01:00
feat: basic stats endpoint
This commit is contained in:
59
Controllers/StatisticController.cs
Normal file
59
Controllers/StatisticController.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using QuotifyBE.Data;
|
||||
using Microsoft.AspNetCore.Cors;
|
||||
|
||||
namespace QuotifyBE.Controllers;
|
||||
|
||||
|
||||
[ApiController]
|
||||
[EnableCors]
|
||||
[Route("api/v1/stats")]
|
||||
[Produces("application/json")]
|
||||
public class StatisticController : ControllerBase
|
||||
{
|
||||
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public StatisticController( ApplicationDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
// GET /api/v1/stats
|
||||
/// <summary>
|
||||
/// Return server statistics
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Provides, info on last commit # and date, branch name,
|
||||
/// sitewide stats (number of draws) and available endpoints
|
||||
/// (machine-friendly json).
|
||||
/// <br/>
|
||||
/// Has CORS set.
|
||||
/// </remarks>
|
||||
/// <returns>Dummy json</returns>
|
||||
// /// <response code="200">Returned on request with valid credentials</response>
|
||||
// /// <response code="401">Returned on request with invalid JWT</response>
|
||||
[HttpGet]
|
||||
[EnableCors]
|
||||
[ProducesResponseType(200)]
|
||||
// [ProducesResponseType(401)]
|
||||
public IActionResult GetStats()
|
||||
{
|
||||
return Ok(new
|
||||
{
|
||||
version = new
|
||||
{
|
||||
lastCommit = ThisAssembly.Git.Commit,
|
||||
lastUpdatedAt = ThisAssembly.Git.CommitDate,
|
||||
currentBranch = ThisAssembly.Git.Branch
|
||||
},
|
||||
endpointDiscovery = "/swagger/v1/swagger.json",
|
||||
sitewideStats = new
|
||||
{
|
||||
numberOfDraws = _db.Statistics.First(s => s.Label == "number_of_draws").IValue
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user