43 lines
1.2 KiB
C#

using c64_inteface;
using Microsoft.AspNetCore.Http.HttpResults;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();
builder.Services.AddSignalR();
builder.Services.AddSingleton<ArduinoMessageContainer>();
builder.Services.AddHostedService<MonitorBackgroundService>();
builder.Services.AddSingleton<ArduinoHub>();
builder.Services.AddCors(cfg => cfg.AddPolicy("cringe", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));
var app = builder.Build();
app.UseCors("cringe");
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
app.UseHttpsRedirection();
app.MapGet("/api/{message}", (string message, ArduinoMessageContainer arduinoMessageContainer) =>
{
arduinoMessageContainer.Message = message.Trim().Replace("\n", "").Replace("\r", "");
arduinoMessageContainer.Ready = true;
return true;
})
.WithName("SendMessageToArduino");
app.UseWebSockets(new WebSocketOptions
{
KeepAliveInterval = TimeSpan.FromSeconds(120),
});
app.MapHub<ArduinoHub>("/ArduinoHub");
app.Run();