♻️ I have no idea what I have done

This commit is contained in:
2025-07-13 21:51:16 +08:00
parent afdbde951c
commit 03e26ef93c
29 changed files with 5933 additions and 645 deletions

View File

@@ -33,8 +33,6 @@ public static class ApplicationConfiguration
app.UseAuthorization();
app.MapControllers().RequireRateLimiting("fixed");
app.MapStaticAssets().RequireRateLimiting("fixed");
app.MapRazorPages().RequireRateLimiting("fixed");
return app;
}

View File

@@ -1,11 +1,10 @@
using System.Text.Json;
using System.Threading.RateLimiting;
using dotnet_etcd.interfaces;
using DysonNetwork.Pusher.Connection;
using DysonNetwork.Pusher.Email;
using DysonNetwork.Pusher.Notification;
using DysonNetwork.Pusher.Services;
using DysonNetwork.Shared.Cache;
using DysonNetwork.Shared.Proto;
using Microsoft.AspNetCore.RateLimiting;
using Microsoft.OpenApi.Models;
using NodaTime;
@@ -44,18 +43,6 @@ public static class ServiceCollectionExtensions
// Register gRPC services
services.AddScoped<PusherServiceGrpc>();
// Register AuthService.AuthServiceClient for AuthMiddleware
services.AddSingleton(sp =>
{
var etcdClient = sp.GetRequiredService<IEtcdClient>();
var configuration = sp.GetRequiredService<IConfiguration>();
var clientCertPath = configuration["ClientCert:Path"];
var clientKeyPath = configuration["ClientKey:Path"];
var clientCertPassword = configuration["ClientCert:Password"];
return GrpcClientHelper.CreateAuthServiceClient(etcdClient, clientCertPath, clientKeyPath, clientCertPassword);
});
// Register OIDC services
services.AddControllers().AddJsonOptions(options =>
{
@@ -144,6 +131,7 @@ public static class ServiceCollectionExtensions
public static IServiceCollection AddAppBusinessServices(this IServiceCollection services)
{
services.AddScoped<WebSocketService>();
services.AddScoped<EmailService>();
services.AddScoped<PushService>();

View File

@@ -1,56 +0,0 @@
using DysonNetwork.Shared.Registry;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System.Threading;
using System.Threading.Tasks;
namespace DysonNetwork.Pusher.Startup;
public class ServiceRegistrationHostedService : IHostedService
{
private readonly ServiceRegistry _serviceRegistry;
private readonly IConfiguration _configuration;
private readonly ILogger<ServiceRegistrationHostedService> _logger;
public ServiceRegistrationHostedService(
ServiceRegistry serviceRegistry,
IConfiguration configuration,
ILogger<ServiceRegistrationHostedService> logger)
{
_serviceRegistry = serviceRegistry;
_configuration = configuration;
_logger = logger;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
var serviceName = "DysonNetwork.Pusher"; // Preset service name
var serviceUrl = _configuration["Service:Url"];
if (string.IsNullOrEmpty(serviceUrl))
{
_logger.LogWarning("Service URL not configured. Skipping Etcd registration.");
return;
}
_logger.LogInformation("Registering service {ServiceName} at {ServiceUrl} with Etcd.", serviceName, serviceUrl);
try
{
await _serviceRegistry.RegisterService(serviceName, serviceUrl);
_logger.LogInformation("Service {ServiceName} registered successfully.", serviceName);
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to register service {ServiceName} with Etcd.", serviceName);
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
// The lease will expire automatically if the service stops.
// For explicit unregistration, you would implement it here.
_logger.LogInformation("Service registration hosted service is stopping.");
return Task.CompletedTask;
}
}