This commit is contained in:
2026-03-25 02:13:47 +01:00
parent 6e06d7673d
commit 3dea06b0cc
23 changed files with 260 additions and 79 deletions
@@ -56,7 +56,10 @@ namespace Musify.Application.PlayLists.Handlers
{
var imageId = Guid.NewGuid();
var pictureName = imageId + picture.FileType;
var pictureStorageKey = Path.Join(playListConfiguration.Routes.OriginalPictures, pictureName);
var pictureStorageKey = Path.Join(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.OriginalPictures,
pictureName);
var uploadResult = await UploadFile(picture, pictureStorageKey, cancellationToken);
@@ -97,12 +100,15 @@ namespace Musify.Application.PlayLists.Handlers
async Task PublishUpdateEvent(string originalPictureKeyName, PlayList playList, CancellationToken cancellationToken)
{
var smallPictureKeyName = Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.SmallPictures,
$"{playList.Id}.{pictureHandler.FileExtension}");
var mediumPictureKeyName = Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.MediumPictures,
$"{playList.Id}.{pictureHandler.FileExtension}");
var largePictureKeyName = Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.LargePictures,
$"{playList.Id}.{pictureHandler.FileExtension}");
@@ -31,24 +31,35 @@ namespace Musify.Application.PlayLists.Handlers
var keysToRemove = new List<string>();
if (playList.SmallPictureKeyName != playListConfiguration.Routes.PresetSmallPicture)
{
keysToRemove.Add(playList.SmallPictureKeyName);
}
keysToRemove.Add(Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.SmallPictures,
playList.SmallPictureKeyName));
if (playList.MediumPictureKeyName != playListConfiguration.Routes.PresetMediumPicture)
{
keysToRemove.Add(playList.MediumPictureKeyName);
}
keysToRemove.Add(Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.MediumPictures,
playList.MediumPictureKeyName));
if (playList.LargePictureKeyName != playListConfiguration.Routes.PresetLargePicture)
{
keysToRemove.Add(playList.LargePictureKeyName);
}
keysToRemove.Add(Path.Combine(
playListConfiguration.Routes.ParentFolders,
playListConfiguration.Routes.LargePictures,
playList.LargePictureKeyName));
foreach (var key in keysToRemove)
{
var publishResult = await TryPublishRemoveFileEventAsync(playList.Id, key, cancellationToken);
if (!publishResult.IsSuccess && !publishResult.IsNotFound())
if (!publishResult.IsSuccess)
{
if (publishResult.IsNotFound())
{
logger.LogWarning("File with key={KeyName} not found in storage while trying to publish remove file event for PlayList with id={PlayListId}.", key, playList.Id);
continue;
}
return publishResult;
}
}
database.PlayLists.Remove(playList);
@@ -52,17 +52,17 @@ namespace Musify.Application.PlayLists.Handlers
}
if (playList.SmallPictureKeyName != playListConfiguration.Routes.PresetSmallPicture)
{
await PublishRemoveFileEvent(playList.SmallPictureKeyName, cancellationToken);
}
await PublishRemoveFileEvent(Path.Combine(
playListConfiguration.Routes.SmallPictures,
playList.SmallPictureKeyName), cancellationToken);
if (playList.MediumPictureKeyName != playListConfiguration.Routes.PresetMediumPicture)
{
await PublishRemoveFileEvent(playList.MediumPictureKeyName, cancellationToken);
}
await PublishRemoveFileEvent(Path.Combine(
playListConfiguration.Routes.MediumPictures,
playList.MediumPictureKeyName), cancellationToken);
if (playList.LargePictureKeyName != playListConfiguration.Routes.PresetLargePicture)
{
await PublishRemoveFileEvent(playList.LargePictureKeyName, cancellationToken);
}
await PublishRemoveFileEvent(Path.Combine(
playListConfiguration.Routes.LargePictures,
playList.LargePictureKeyName), cancellationToken);
var newImageId = Guid.NewGuid();
var pictureName = newImageId + request.NewPicture.FileType;
@@ -99,7 +99,9 @@ namespace Musify.Application.PlayLists.Handlers
{
await eventBus.PublishAsync(new RemoveFileEvent(
storageConfiguration.BucketName,
keyName), cancellationToken);
Path.Combine(
playListConfiguration.Routes.ParentFolders,
keyName)), cancellationToken);
return Result.NoContent();
}