Rewrite electricity server to .NET web api
This commit is contained in:
45
src/Electricity.Api/Controllers/ElectricityLogController.cs
Normal file
45
src/Electricity.Api/Controllers/ElectricityLogController.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user