Rewrite electricity server to .NET web api

This commit is contained in:
2022-07-01 21:15:31 +02:00
parent b8387dfa1d
commit 642170172a
22 changed files with 354 additions and 509 deletions

View File

@@ -0,0 +1,45 @@
using System.Net.Mime;
using Electricity.Api.Models;
using Electricity.Api.Services;
using Microsoft.AspNetCore.Mvc;
namespace Electricity.Api.Controllers;
[ApiController]
[Consumes(MediaTypeNames.Application.Json)]
[Produces(MediaTypeNames.Application.Json)]
public class ElectricityLogController : ControllerBase
{
private readonly ElectricityService electricityService;
private readonly ILogger<ElectricityLogController> logger;
public ElectricityLogController(
ElectricityService electricityService,
ILogger<ElectricityLogController> logger)
{
this.electricityService = electricityService;
this.logger = logger;
}
[HttpGet()]
[Route("/day")]
public async Task<ActionResult<Day[]>> Get([FromQuery] string? start, [FromQuery] string? stop)
{
if (string.IsNullOrWhiteSpace(start) || !DateOnly.TryParseExact(start, Constants.isoDateFormat, out _))
{
return BadRequest();
}
if (string.IsNullOrWhiteSpace(stop))
{
return await electricityService.GetDetailsFor(start);
}
if (!DateOnly.TryParseExact(stop, Constants.isoDateFormat, out _) || string.Compare(start, stop) > 0)
{
return BadRequest();
}
return await electricityService.GetSummariesFor(start, stop);
}
}