This commit is contained in:
2026-03-23 16:53:23 +01:00
parent 788fb6fa5c
commit f1b7191ccc
11 changed files with 40 additions and 35 deletions
@@ -2,21 +2,11 @@
namespace Musify.Infrastructure.Configuration
{
#pragma warning disable CS8618
public class AudioTranscoderConfiguration
{
public const string SectionName = "AudioTranscoder";
[Required]
public AudioTranscoderRoutes Routes { get; set; } = new AudioTranscoderRoutes();
[Required]
public TimeSpan TranscodingTimeout { get; set; } = TimeSpan.FromMinutes(5);
}
public class AudioTranscoderRoutes
{
[Required]
public string WorkingDirectory { get; set; }
}
}
@@ -14,7 +14,8 @@ namespace Musify.Infrastructure.Configuration
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName)
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName)
.AddValidatedConfiguration<OpenTelemetryConfiguration>(configuration, OpenTelemetryConfiguration.SectionName)
.AddValidatedConfiguration<AudioTranscoderConfiguration>(configuration, AudioTranscoderConfiguration.SectionName);
.AddValidatedConfiguration<AudioTranscoderConfiguration>(configuration, AudioTranscoderConfiguration.SectionName)
.AddValidatedConfiguration<WorkerConfiguration>(configuration, WorkerConfiguration.SectionName);
return serviceDescriptors;
}
@@ -2,12 +2,11 @@
namespace Musify.Infrastructure.Configuration
{
#pragma warning disable CS8618
public class DatabaseConfiguration
{
public const string SectionName = "Database";
[Required]
public string ConnectionString { get; set; }
public required string ConnectionString { get; set; }
}
}
@@ -2,21 +2,20 @@
namespace Musify.Infrastructure.Configuration
{
#pragma warning disable CS8618
public class KeycloakConfiguration
{
public const string SectionName = "Keycloak";
[Required]
public string BaseUrl { get; set; }
public required string BaseUrl { get; set; }
[Required]
public string Realm { get; set; }
public required string Realm { get; set; }
[Required]
public string Username { get; set; }
public required string Username { get; set; }
[Required]
public string Password { get; set; }
public required string Password { get; set; }
}
}
@@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace Musify.Infrastructure.Configuration
{
public class WorkerConfiguration
{
public const string SectionName = "Workers";
[Required]
public WorkerRoutes Routes { get; set; } = new WorkerRoutes();
}
public class WorkerRoutes
{
[Required]
public string TemporaryFilesDirectory { get; set; } = string.Empty;
}
}
@@ -2,7 +2,6 @@
using Microsoft.Extensions.Logging;
using Musify.Application.Contracts.Infrastructure;
using Musify.Domain.Entities;
using Musify.Infrastructure.Configuration;
using Musify.Infrastructure.Messaging.Activities.Arguments;
namespace Musify.Infrastructure.Messaging.Activities
@@ -10,8 +9,7 @@ namespace Musify.Infrastructure.Messaging.Activities
public class DownloadFileFromBucketActivity(
IStorageHandler storageHandler,
ILogger<DownloadFileFromBucketActivity> logger,
IProcessTrackingStore processTrackingStore,
AudioTranscoderConfiguration audioTranscoderConfiguration)
IProcessTrackingStore processTrackingStore)
: IExecuteActivity<DownloadFileFromBucketArguments>
{
public const string ExecuteEndpointName = "Download-File-From-Bucket";
@@ -8,7 +8,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
{
public class TranscodeAudioFromTrackConsumer(
IBus bus,
AudioTranscoderConfiguration audioTranscoderConfiguration)
WorkerConfiguration workerConfiguration)
: IConsumer<TranscodeAudioFromTrackEvent>
{
public const string QueueName = "Transcode-Audio-From-Track";
@@ -23,7 +23,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
new DownloadFileFromBucketArguments(
consumeContext.Message.SourceBucketName,
consumeContext.Message.SourceKeyName,
audioTranscoderConfiguration.Routes.WorkingDirectory));
workerConfiguration.Routes.TemporaryFilesDirectory));
routingSlipBuilder.AddActivity(
"TranscodeAudio",
@@ -8,7 +8,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
{
public class UpdatePlayListPictureConsumer(
IBus bus,
AudioTranscoderConfiguration audioTranscoderConfiguration)
WorkerConfiguration workerConfiguration)
: IConsumer<UpdatePlayListPictureEvent>
{
public const string QueueName = "Update-PlayList-Picture";
@@ -17,7 +17,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
{
var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid());
var folderName = Guid.NewGuid().ToString();
var workingDirectory = Path.Combine(audioTranscoderConfiguration.Routes.WorkingDirectory, folderName);
var workingDirectory = Path.Combine(workerConfiguration.Routes.TemporaryFilesDirectory, folderName);
routingSlipBuilder.AddActivity(
"DownloadFile",
@@ -8,7 +8,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
{
public class UpdateTrackPictureConsumer(
IBus bus,
AudioTranscoderConfiguration audioTranscoderConfiguration)
WorkerConfiguration workerConfiguration)
: IConsumer<UpdateTrackPictureEvent>
{
public const string QueueName = "Update-Track-Picture";
@@ -17,7 +17,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
{
var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid());
var folderName = Guid.NewGuid().ToString();
var workingDirectory = Path.Combine(audioTranscoderConfiguration.Routes.WorkingDirectory, folderName);
var workingDirectory = Path.Combine(workerConfiguration.Routes.TemporaryFilesDirectory, folderName);
routingSlipBuilder.AddActivity(
"DownloadFile",