using MassTransit; using Microsoft.Extensions.Logging; using Musify.Application.Abstractions.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; namespace Musify.Infrastructure.MassTransit.Activities.Files { internal class RemoveFileFromBucketActivity( IStorageService storageHandler, ILogger logger) : IExecuteActivity { public const string ExecuteEndpointName = "remove-file-from-bucket"; public async Task Execute(ExecuteContext executeContext) { try { await storageHandler.RemoveFileAsync( executeContext.Arguments.Bucket, executeContext.Arguments.Key, executeContext.CancellationToken); return executeContext.Completed(); } catch (Exception exception) { logger.LogError(exception, "Failed to remove {Key} from bucket {Bucket}", executeContext.Arguments.Key, executeContext.Arguments.Bucket); throw; } } } }