mirror of
https://github.com/QuotifyTeam/QuotifyBE.git
synced 2025-12-16 23:20:06 +01:00
60 lines
1.6 KiB
C#
60 lines
1.6 KiB
C#
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 StatisticsController : ControllerBase
|
|
{
|
|
|
|
private readonly ApplicationDbContext _db;
|
|
|
|
public StatisticsController( 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
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|