Changes on routes
This commit is contained in:
@@ -55,6 +55,14 @@ namespace Musify.Application.Configuration
|
|||||||
public string PresetLargePicturePath => Path.Combine(ParentFolders, PresetLargePicture);
|
public string PresetLargePicturePath => Path.Combine(ParentFolders, PresetLargePicture);
|
||||||
|
|
||||||
public string OriginalPicturesPath => Path.Combine(ParentFolders, OriginalPicturesFolder);
|
public string OriginalPicturesPath => Path.Combine(ParentFolders, OriginalPicturesFolder);
|
||||||
|
|
||||||
|
public string BuildOriginalPicturePath(string pictureName) => Path.Combine(ParentFolders, OriginalPicturesFolder, pictureName);
|
||||||
|
|
||||||
|
public string BuildSmallPicturePath(string pictureName) => Path.Combine(ParentFolders, SmallPicturesFolder, pictureName);
|
||||||
|
|
||||||
|
public string BuildMediumPicturePath(string pictureName) => Path.Combine(ParentFolders, MediumPicturesFolder, pictureName);
|
||||||
|
|
||||||
|
public string BuildLargePicturePath(string pictureName) => Path.Combine(ParentFolders, LargePicturesFolder, pictureName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PlayListPicturesSizes
|
public class PlayListPicturesSizes
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
async Task<Result> UploadPictureAsync(PlayList playList, IFileData picture, CancellationToken cancellationToken)
|
async Task<Result> UploadPictureAsync(PlayList playList, IFileData picture, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var pictureName = Guid.NewGuid() + picture.FileType;
|
var pictureName = Guid.NewGuid() + picture.FileType;
|
||||||
var pictureKey = Path.Combine(playListConfiguration.Routes.OriginalPicturesPath, pictureName);
|
var pictureKey = playListConfiguration.Routes.BuildOriginalPicturePath(pictureName);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -94,7 +94,7 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
var updateEvent = new UpdatePlayListPictureEvent(
|
var updateEvent = new UpdatePlayListPictureEvent(
|
||||||
playList.Id,
|
playList.Id,
|
||||||
storageConfiguration.Bucket,
|
storageConfiguration.Bucket,
|
||||||
Path.Combine(playListConfiguration.Routes.OriginalPicturesPath, playList.OriginalPictureName),
|
playListConfiguration.Routes.BuildOriginalPicturePath(playList.OriginalPictureName),
|
||||||
new ImageSize(
|
new ImageSize(
|
||||||
playListConfiguration.Routes.SmallPicturesPath,
|
playListConfiguration.Routes.SmallPicturesPath,
|
||||||
playListConfiguration.PicturesSizes.SmallPictureWidth,
|
playListConfiguration.PicturesSizes.SmallPictureWidth,
|
||||||
@@ -123,7 +123,7 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
if (string.IsNullOrEmpty(playList.OriginalPictureName))
|
if (string.IsNullOrEmpty(playList.OriginalPictureName))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var originalPicturePath = Path.Combine(playListConfiguration.Routes.OriginalPicturesPath, playList.OriginalPictureName);
|
var originalPicturePath = playListConfiguration.Routes.BuildOriginalPicturePath(playList.OriginalPictureName);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts.Infrastructure;
|
||||||
@@ -14,9 +15,7 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
{
|
{
|
||||||
public async ValueTask<Result> Handle(DeletePlayListCommand request, CancellationToken cancellationToken)
|
public async ValueTask<Result> Handle(DeletePlayListCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var playList = await database.PlayLists.FindAsync(
|
var playList = await database.PlayLists.SingleOrDefaultAsync(p => p.Id == request.PlayListId, cancellationToken);
|
||||||
[request.PlayListId],
|
|
||||||
cancellationToken);
|
|
||||||
if (playList is null)
|
if (playList is null)
|
||||||
{
|
{
|
||||||
logger.LogDebug("Playlist {PlayListId} not found", request.PlayListId);
|
logger.LogDebug("Playlist {PlayListId} not found", request.PlayListId);
|
||||||
@@ -29,15 +28,18 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
return Result.Unauthorized();
|
return Result.Unauthorized();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(playList.OriginalPictureName))
|
||||||
|
await PublishRemoveFileEventAsync(playList.Id,
|
||||||
|
playListConfiguration.Routes.BuildOriginalPicturePath(playList.OriginalPictureName), cancellationToken);
|
||||||
if (playList.SmallPictureName != playListConfiguration.Routes.PresetSmallPicture)
|
if (playList.SmallPictureName != playListConfiguration.Routes.PresetSmallPicture)
|
||||||
await PublishRemoveFileEventAsync(playList.Id, Path.Combine(playListConfiguration.Routes.SmallPicturesPath,
|
await PublishRemoveFileEventAsync(playList.Id,
|
||||||
playList.SmallPictureName), cancellationToken);
|
playListConfiguration.Routes.BuildSmallPicturePath(playList.SmallPictureName), cancellationToken);
|
||||||
if (playList.MediumPictureName != playListConfiguration.Routes.PresetMediumPicture)
|
if (playList.MediumPictureName != playListConfiguration.Routes.PresetMediumPicture)
|
||||||
await PublishRemoveFileEventAsync(playList.Id, Path.Combine(playListConfiguration.Routes.MediumPicturesPath,
|
await PublishRemoveFileEventAsync(playList.Id,
|
||||||
playList.MediumPictureName), cancellationToken);
|
playListConfiguration.Routes.BuildMediumPicturePath(playList.MediumPictureName), cancellationToken);
|
||||||
if (playList.LargePictureName != playListConfiguration.Routes.PresetLargePicture)
|
if (playList.LargePictureName != playListConfiguration.Routes.PresetLargePicture)
|
||||||
await PublishRemoveFileEventAsync(playList.Id, Path.Combine(playListConfiguration.Routes.LargePicturesPath,
|
await PublishRemoveFileEventAsync(playList.Id,
|
||||||
playList.LargePictureName), cancellationToken);
|
playListConfiguration.Routes.BuildLargePicturePath(playList.LargePictureName), cancellationToken);
|
||||||
|
|
||||||
database.PlayLists.Remove(playList);
|
database.PlayLists.Remove(playList);
|
||||||
await database.SaveChangesAsync(cancellationToken);
|
await database.SaveChangesAsync(cancellationToken);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Contracts.Application;
|
using Musify.Application.Contracts.Application;
|
||||||
@@ -18,9 +19,7 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
{
|
{
|
||||||
public async ValueTask<Result<PlayListResponse>> Handle(UpdatePlayListCommand request, CancellationToken cancellationToken)
|
public async ValueTask<Result<PlayListResponse>> Handle(UpdatePlayListCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var playListEntity = await database.PlayLists.FindAsync(
|
var playListEntity = await database.PlayLists.SingleOrDefaultAsync(pl => pl.Id == request.PlayListId, cancellationToken);
|
||||||
[request.PlayListId],
|
|
||||||
cancellationToken);
|
|
||||||
if (playListEntity is null)
|
if (playListEntity is null)
|
||||||
{
|
{
|
||||||
logger.LogInformation("Playlist {PlayListId} not found", request.PlayListId);
|
logger.LogInformation("Playlist {PlayListId} not found", request.PlayListId);
|
||||||
@@ -43,8 +42,6 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
{
|
{
|
||||||
database.PlayLists.Update(playListEntity);
|
database.PlayLists.Update(playListEntity);
|
||||||
await database.SaveChangesAsync(cancellationToken);
|
await database.SaveChangesAsync(cancellationToken);
|
||||||
await PublishPlayListPictureEvent(playListEntity, cancellationToken);
|
|
||||||
await RemoveOldPictures(playListEntity, cancellationToken);
|
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
@@ -53,6 +50,17 @@ namespace Musify.Application.PlayLists.Handlers
|
|||||||
return Result.Error($"Failed to update playlist {playListEntity.Id}");
|
return Result.Error($"Failed to update playlist {playListEntity.Id}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await PublishPlayListPictureEvent(playListEntity, cancellationToken);
|
||||||
|
await RemoveOldPictures(playListEntity, cancellationToken);
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
logger.LogError(exception, "Failed to publish playlist picture update event or remove old pictures for playlist {PlayListId}", playListEntity.Id);
|
||||||
|
return Result.Error($"Failed to update playlist {playListEntity.Id}");
|
||||||
|
}
|
||||||
|
|
||||||
logger.LogInformation("Updated playlist {PlayListId}", playListEntity.Id);
|
logger.LogInformation("Updated playlist {PlayListId}", playListEntity.Id);
|
||||||
return Result.Success(PlayListResponse.FromEntity(playListEntity));
|
return Result.Success(PlayListResponse.FromEntity(playListEntity));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user