private async Task <Validation <BaseError, ConnectionParameters> > MediaSourceMustHaveApiKey( ConnectionParameters connectionParameters) { JellyfinSecrets secrets = await _jellyfinSecretStore.ReadSecrets(); return(Optional(secrets.Address == connectionParameters.ActiveConnection.Address) .Where(match => match) .Map(_ => connectionParameters with { ApiKey = secrets.ApiKey })
public Task <Unit> SaveSecrets(JellyfinSecrets jellyfinSecrets) => Some(JsonConvert.SerializeObject(jellyfinSecrets)).Match( s => File.WriteAllTextAsync(FileSystemLayout.JellyfinSecretsPath, s).ToUnit(), Task.FromResult(Unit.Default));
private record Parameters(JellyfinSecrets Secrets, JellyfinServerInformation ServerInformation);