using BackendStarter.Api.Repositories; using BackendStarter.Api.Security; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace BackendStarter.Api.Controllers; [ApiController] [Route("api/demo")] public sealed class DemoController(IWeatherQueryRepository weatherQueryRepository) : ControllerBase { [HttpGet("hello")] public IActionResult GetHello() { var snapshot = weatherQueryRepository.GetToday(); return Ok(new { data = new { message = "backend-starter is running.", snapshot.City, snapshot.TemperatureC, snapshot.Condition, generatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }, code = 200, msg = (string?)null, errMsg = (string?)null, tid = HttpContext.TraceIdentifier }); } [Authorize(AuthenticationSchemes = HeaderTokenAuthHandler.SchemeName)] [HttpGet("secure")] public IActionResult GetSecureHello() { return Ok(new { data = new { message = "authorized", tokenHeader = HeaderTokenAuthHandler.HeaderName }, code = 200, msg = (string?)null, errMsg = (string?)null, tid = HttpContext.TraceIdentifier }); } }