using Grpc.Core; using MareSynchronosShared.Protos; using MareSynchronosShared.Utils; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; namespace MareSynchronosShared.Services; [Authorize] [AllowAnonymous] public class GrpcConfigurationService : ConfigurationService.ConfigurationServiceBase where T : class, IMareConfiguration { private readonly T _config; private readonly ILogger> logger; public GrpcConfigurationService(IOptions config, ILogger> logger) { _config = config.Value; this.logger = logger; } [AllowAnonymous] public override Task GetConfigurationEntry(KeyMessage request, ServerCallContext context) { logger.LogInformation("Remote requested {key}", request.Key); var returnVal = _config.SerializeValue(request.Key, request.Default); return Task.FromResult(new ValueMessage() { Value = returnVal }); } }