Files
homeAutomation/smappee-api/Program.cs
2026-08-21 08:02:09 +02:00

43 lines
1.1 KiB
C#

using enums;
using interfaces;
using options;
using services;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHttpClient();
builder.Services.AddRedaction();
builder.Services.AddExtendedHttpClientLogging(
builder.Configuration.GetSection("HttpClientLogging"));
builder
.Services.AddOptions<ChargerOptions>()
.Bind(builder.Configuration.GetSection(ChargerOptions.Name))
.ValidateDataAnnotations();
builder.Services.AddSingleton<IBearerTokenService, SmappeeTokenService>();
builder.Services.AddScoped<IChargerService, SmappeeChargerService>();
var app = builder.Build();
app.MapPost(
"/enable",
async (IChargerService chargerService) =>
{
await chargerService.ExecuteRequest(ChargerRequests.Enable);
return;
}
)
.WithName("Enable");
app.MapPost(
"/disable",
async (IChargerService chargerService) =>
{
await chargerService.ExecuteRequest(ChargerRequests.Disable);
return;
}
)
.WithName("Disable");
app.Run();