This commit is contained in:
2026-03-21 20:33:15 +01:00
parent 8306211f49
commit 2ed2974ab4
39 changed files with 92 additions and 88 deletions
@@ -1,5 +1,5 @@
using Ardalis.Result; using Ardalis.Result;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
namespace Musify.Application.Contracts.Infrastructure namespace Musify.Application.Contracts.Infrastructure
{ {
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Commands.CreatePlayList namespace Musify.Application.PlayLists.Commands
{ {
public record CreatePlayListCommand( public record CreatePlayListCommand(
Guid UserId, Guid UserId,
@@ -1,7 +1,7 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
namespace Musify.Application.PlayLists.Commands.DeletePlayList namespace Musify.Application.PlayLists.Commands
{ {
public record DeletePlayListCommand(Guid UserId, Guid PlayListId) public record DeletePlayListCommand(Guid UserId, Guid PlayListId)
: IRequest<DeletePlayListCommand, Task<Result> >; : IRequest<DeletePlayListCommand, Task<Result> >;
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Commands.UpdatePlayList namespace Musify.Application.PlayLists.Commands
{ {
public record UpdatePlayListCommand( public record UpdatePlayListCommand(
Guid UserId, Guid UserId,
@@ -5,10 +5,11 @@ using Microsoft.Extensions.Logging;
using Musify.Application.Configuration; using Musify.Application.Configuration;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Events; using Musify.Application.Events;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Commands;
using Musify.Application.PlayLists.Responses;
using Musify.Domain.Entities; using Musify.Domain.Entities;
namespace Musify.Application.PlayLists.Commands.CreatePlayList namespace Musify.Application.PlayLists.Handlers
{ {
public class CreatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler, IPictureHandler pictureHandler, public class CreatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler, IPictureHandler pictureHandler,
ILogger<CreatePlayListCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration) ILogger<CreatePlayListCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration)
@@ -4,8 +4,9 @@ using Microsoft.Extensions.Logging;
using Musify.Application.Configuration; using Musify.Application.Configuration;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Events; using Musify.Application.Events;
using Musify.Application.PlayLists.Commands;
namespace Musify.Application.PlayLists.Commands.DeletePlayList namespace Musify.Application.PlayLists.Handlers
{ {
public class DeletePlayListCommandHandler(IDatabase database, IEventBus eventBus, public class DeletePlayListCommandHandler(IDatabase database, IEventBus eventBus,
ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration, ILogger<DeletePlayListCommandHandler> logger) ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration, ILogger<DeletePlayListCommandHandler> logger)
@@ -2,9 +2,10 @@
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
using Musify.Application.PlayLists.Queries;
namespace Musify.Application.PlayLists.Queries.GetPlayListById namespace Musify.Application.PlayLists.Handlers
{ {
public class GetPlayListByIdQueryHandler(IDatabase database) public class GetPlayListByIdQueryHandler(IDatabase database)
: IRequestHandler<GetPlayListByIdQuery, Task<Result<PlayListResponse>> > : IRequestHandler<GetPlayListByIdQuery, Task<Result<PlayListResponse>> >
@@ -3,10 +3,11 @@ using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
using Musify.Application.PlayLists.Queries;
using X.PagedList.EF; using X.PagedList.EF;
namespace Musify.Application.PlayLists.Queries.GetPlayListsByUserId namespace Musify.Application.PlayLists.Handlers
{ {
public class GetPlayListsByUserIdQueryHandler(IDatabase database) public class GetPlayListsByUserIdQueryHandler(IDatabase database)
: IRequestHandler<GetPlayListsByUserIdQuery, Task<Result<PaginatedResponse<PlayListResponse> > >> : IRequestHandler<GetPlayListsByUserIdQuery, Task<Result<PaginatedResponse<PlayListResponse> > >>
@@ -3,10 +3,11 @@ using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
using Musify.Application.PlayLists.Queries;
using X.PagedList.EF; using X.PagedList.EF;
namespace Musify.Application.PlayLists.Queries.GetPlayLists namespace Musify.Application.PlayLists.Handlers
{ {
public class GetPlayListsQueryHandler(IDatabase database) public class GetPlayListsQueryHandler(IDatabase database)
: IRequestHandler<GetPlayListsQuery, Task<Result<PaginatedResponse<PlayListResponse> >> > : IRequestHandler<GetPlayListsQuery, Task<Result<PaginatedResponse<PlayListResponse> >> >
@@ -5,9 +5,10 @@ using Microsoft.Extensions.Logging;
using Musify.Application.Configuration; using Musify.Application.Configuration;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Events; using Musify.Application.Events;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Commands;
using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Commands.UpdatePlayList namespace Musify.Application.PlayLists.Handlers
{ {
public class UpdatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler, public class UpdatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler,
ILogger<UpdatePlayListCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration, ILogger<UpdatePlayListCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration,
@@ -1,8 +1,8 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Queries.GetPlayListById namespace Musify.Application.PlayLists.Queries
{ {
public record GetPlayListByIdQuery(Guid Id) public record GetPlayListByIdQuery(Guid Id)
: IRequest<GetPlayListByIdQuery, Task<Result<PlayListResponse>>>; : IRequest<GetPlayListByIdQuery, Task<Result<PlayListResponse>>>;
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Queries.GetPlayListsByUserId namespace Musify.Application.PlayLists.Queries
{ {
public record GetPlayListsByUserIdQuery( public record GetPlayListsByUserIdQuery(
Guid UserId, Guid UserId,
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.PlayLists.Contracts; using Musify.Application.PlayLists.Responses;
namespace Musify.Application.PlayLists.Queries.GetPlayLists namespace Musify.Application.PlayLists.Queries
{ {
public record GetPlayListsQuery(int PageNumber = 1, int PageSize = 10) public record GetPlayListsQuery(int PageNumber = 1, int PageSize = 10)
: IRequest<GetPlayListsQuery, Task<Result<PaginatedResponse<PlayListResponse>> >>; : IRequest<GetPlayListsQuery, Task<Result<PaginatedResponse<PlayListResponse>> >>;
@@ -1,6 +1,6 @@
using Musify.Domain.Entities; using Musify.Domain.Entities;
namespace Musify.Application.PlayLists.Contracts namespace Musify.Application.PlayLists.Responses
{ {
public record PlayListResponse( public record PlayListResponse(
Guid Id, Guid Id,
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Responses;
namespace Musify.Application.Tracks.Commands.CreateTrack namespace Musify.Application.Tracks.Commands
{ {
public record CreateTrackCommand( public record CreateTrackCommand(
Guid UserId, Guid UserId,
@@ -4,10 +4,11 @@ using Microsoft.Extensions.Logging;
using Musify.Application.Configuration; using Musify.Application.Configuration;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Events; using Musify.Application.Events;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Commands;
using Musify.Application.Tracks.Responses;
using Musify.Domain.Entities; using Musify.Domain.Entities;
namespace Musify.Application.Tracks.Commands.CreateTrack namespace Musify.Application.Tracks.Handler
{ {
public class CreateTrackCommandHandler(IDatabase database, IPictureHandler pictureHandler, IEventBus eventBus, IStorageHandler storageHandler, public class CreateTrackCommandHandler(IDatabase database, IPictureHandler pictureHandler, IEventBus eventBus, IStorageHandler storageHandler,
ILogger<CreateTrackCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration, TrackConfiguration trackConfiguration) ILogger<CreateTrackCommandHandler> logger, ApplicationStorageConfiguration storageConfiguration, TrackConfiguration trackConfiguration)
@@ -1,9 +1,10 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Queries;
using Musify.Application.Tracks.Responses;
namespace Musify.Application.Tracks.Queries.GetTrackById namespace Musify.Application.Tracks.Handler
{ {
public class GetTrackByIdQueryHandler(IDatabase database) public class GetTrackByIdQueryHandler(IDatabase database)
: IRequestHandler<GetTrackByIdQuery, Task<Result<TrackResponse> >> : IRequestHandler<GetTrackByIdQuery, Task<Result<TrackResponse> >>
@@ -3,10 +3,11 @@ using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Queries;
using Musify.Application.Tracks.Responses;
using X.PagedList.EF; using X.PagedList.EF;
namespace Musify.Application.Tracks.Queries.GetTracksByUserId namespace Musify.Application.Tracks.Handler
{ {
public class GetTracksByUserIdQueryHandler(IDatabase database) public class GetTracksByUserIdQueryHandler(IDatabase database)
: IRequestHandler<GetTracksByUserIdQuery, Task<Result<PaginatedResponse<TrackResponse>> >> : IRequestHandler<GetTracksByUserIdQuery, Task<Result<PaginatedResponse<TrackResponse>> >>
@@ -3,10 +3,11 @@ using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Queries;
using Musify.Application.Tracks.Responses;
using X.PagedList.EF; using X.PagedList.EF;
namespace Musify.Application.Tracks.Queries.GetTracks namespace Musify.Application.Tracks.Handler
{ {
public class GetTracksQueryHandler(IDatabase database) public class GetTracksQueryHandler(IDatabase database)
: IRequestHandler<GetTracksQuery, Task<Result<PaginatedResponse<TrackResponse>> > > : IRequestHandler<GetTracksQuery, Task<Result<PaginatedResponse<TrackResponse>> > >
@@ -1,8 +1,8 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Responses;
namespace Musify.Application.Tracks.Queries.GetTrackById namespace Musify.Application.Tracks.Queries
{ {
public record GetTrackByIdQuery(Guid TrackId) public record GetTrackByIdQuery(Guid TrackId)
: IRequest<GetTrackByIdQuery, Task<Result<TrackResponse> >>; : IRequest<GetTrackByIdQuery, Task<Result<TrackResponse> >>;
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Responses;
namespace Musify.Application.Tracks.Queries.GetTracksByUserId namespace Musify.Application.Tracks.Queries
{ {
public record GetTracksByUserIdQuery( public record GetTracksByUserIdQuery(
Guid UserId, Guid UserId,
@@ -1,9 +1,9 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application; using Musify.Application.Contracts.Application;
using Musify.Application.Tracks.Contracts; using Musify.Application.Tracks.Responses;
namespace Musify.Application.Tracks.Queries.GetTracks namespace Musify.Application.Tracks.Queries
{ {
public record GetTracksQuery(int PageNumber = 1, int PageSize = 10) public record GetTracksQuery(int PageNumber = 1, int PageSize = 10)
: IRequest<GetTracksQuery, Task<Result<PaginatedResponse<TrackResponse> >> >; : IRequest<GetTracksQuery, Task<Result<PaginatedResponse<TrackResponse> >> >;
@@ -1,6 +1,6 @@
using Musify.Domain.Entities; using Musify.Domain.Entities;
namespace Musify.Application.Tracks.Contracts namespace Musify.Application.Tracks.Responses
{ {
public record TrackResponse( public record TrackResponse(
Guid Id, Guid Id,
@@ -1,8 +1,8 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Commands.CreateUser namespace Musify.Application.Users.Commands
{ {
public record CreateUserCommand(Guid Id) public record CreateUserCommand(Guid Id)
: IRequest<CreateUserCommand, Task<Result<UserResponse>>>; : IRequest<CreateUserCommand, Task<Result<UserResponse>>>;
@@ -1,7 +1,7 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
namespace Musify.Application.Users.Commands.DeleteUser namespace Musify.Application.Users.Commands
{ {
public record DeleteUserCommand(Guid Id) public record DeleteUserCommand(Guid Id)
: IRequest<DeleteUserCommand, Task<Result>>; : IRequest<DeleteUserCommand, Task<Result>>;
@@ -1,12 +0,0 @@
namespace Musify.Application.Users.Contracts
{
public record PaginatedUserResponse(
IReadOnlyCollection<UserResponse> Users,
int PageNumber,
int PageSize,
int PageCount,
int TotalItemCount,
bool HasNextPage,
bool HasPreviousPage
);
}
@@ -3,10 +3,11 @@ using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Commands;
using Musify.Application.Users.Responses;
using Musify.Domain.Entities; using Musify.Domain.Entities;
namespace Musify.Application.Users.Commands.CreateUser namespace Musify.Application.Users.Handlers
{ {
public class CreateUserCommandHandler(IDatabase database, IKeycloakUserService keycloakUserClient, ILogger<CreateUserCommandHandler> logger) public class CreateUserCommandHandler(IDatabase database, IKeycloakUserService keycloakUserClient, ILogger<CreateUserCommandHandler> logger)
: IRequestHandler<CreateUserCommand, Task<Result<UserResponse> >> : IRequestHandler<CreateUserCommand, Task<Result<UserResponse> >>
@@ -2,7 +2,7 @@
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
namespace Musify.Application.Users.Commands.DeleteUser namespace Musify.Application.Users.Commands
{ {
public class DeleteUserCommandHandler(IDatabase database) public class DeleteUserCommandHandler(IDatabase database)
: IRequestHandler<DeleteUserCommand, Task<Result>> : IRequestHandler<DeleteUserCommand, Task<Result>>
@@ -2,9 +2,10 @@
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Queries;
using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Queries.GetUserById namespace Musify.Application.Users.Handlers
{ {
public class GetUserByIdQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient) public class GetUserByIdQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient)
: IRequestHandler<GetUserByIdQuery, Task<Result<UserResponse> >> : IRequestHandler<GetUserByIdQuery, Task<Result<UserResponse> >>
@@ -2,9 +2,10 @@ using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Queries;
using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Queries.GetUserByKeycloakId namespace Musify.Application.Users.Handlers
{ {
public class GetUserByKeycloakQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient) public class GetUserByKeycloakQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient)
: IRequestHandler<GetUserByKeycloakQuery, Task<Result<UserResponse> >> : IRequestHandler<GetUserByKeycloakQuery, Task<Result<UserResponse> >>
@@ -1,17 +1,19 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Application;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Queries;
using Musify.Application.Users.Responses;
using X.PagedList; using X.PagedList;
using X.PagedList.Extensions; using X.PagedList.Extensions;
namespace Musify.Application.Users.Queries.GetUsers namespace Musify.Application.Users.Handlers
{ {
public class GetUsersQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient) public class GetUsersQueryHandler(IDatabase database, IKeycloakUserService keycloakUserClient)
: IRequestHandler<GetUsersQuery, Task<Result<PaginatedUserResponse> >> : IRequestHandler<GetUsersQuery, Task<Result<PaginatedResponse<UserResponse> > >>
{ {
public async Task<Result<PaginatedUserResponse>> Handle(GetUsersQuery request, CancellationToken cancellationToken) public async Task<Result<PaginatedResponse<UserResponse> >> Handle(GetUsersQuery request, CancellationToken cancellationToken)
{ {
var pageNumber = request.PageNumber < 1 ? 1 : request.PageNumber; var pageNumber = request.PageNumber < 1 ? 1 : request.PageNumber;
var pageSize = request.PageSize < 1 ? 10 : request.PageSize; var pageSize = request.PageSize < 1 ? 10 : request.PageSize;
@@ -44,7 +46,7 @@ namespace Musify.Application.Users.Queries.GetUsers
var pagedUsers = new StaticPagedList<UserResponse>(users, pageNumber, pageSize, totalItemCount); var pagedUsers = new StaticPagedList<UserResponse>(users, pageNumber, pageSize, totalItemCount);
var response = new PaginatedUserResponse( var response = new PaginatedResponse<UserResponse>(
pagedUsers.ToArray(), pagedUsers.ToArray(),
pagedUsers.PageNumber, pagedUsers.PageNumber,
pagedUsers.PageSize, pagedUsers.PageSize,
@@ -1,8 +1,8 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Queries.GetUserById namespace Musify.Application.Users.Queries
{ {
public record GetUserByIdQuery(Guid Id) public record GetUserByIdQuery(Guid Id)
: IRequest<GetUserByIdQuery, Task<Result<UserResponse> >>; : IRequest<GetUserByIdQuery, Task<Result<UserResponse> >>;
@@ -1,8 +1,8 @@
using Ardalis.Result; using Ardalis.Result;
using DispatchR.Abstractions.Send; using DispatchR.Abstractions.Send;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Queries.GetUserByKeycloakId namespace Musify.Application.Users.Queries
{ {
public record GetUserByKeycloakQuery(Guid Id) public record GetUserByKeycloakQuery(Guid Id)
: IRequest<GetUserByKeycloakQuery, Task<Result<UserResponse> >>; : IRequest<GetUserByKeycloakQuery, Task<Result<UserResponse> >>;
@@ -1,9 +0,0 @@
using Ardalis.Result;
using DispatchR.Abstractions.Send;
using Musify.Application.Users.Contracts;
namespace Musify.Application.Users.Queries.GetUsers
{
public record GetUsersQuery(int PageNumber, int PageSize, string UsernameSearch)
: IRequest<GetUsersQuery, Task<Result<PaginatedUserResponse>> >;
}
@@ -0,0 +1,10 @@
using Ardalis.Result;
using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Application;
using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Queries
{
public record GetUsersQuery(int PageNumber, int PageSize, string UsernameSearch)
: IRequest<GetUsersQuery, Task<Result<PaginatedResponse<UserResponse> >> >;
}
@@ -1,4 +1,4 @@
namespace Musify.Application.Users.Contracts namespace Musify.Application.Users.Responses
{ {
public record KeycloakUserResponse( public record KeycloakUserResponse(
Guid Id, Guid Id,
@@ -1,4 +1,4 @@
namespace Musify.Application.Users.Contracts namespace Musify.Application.Users.Responses
{ {
public record UserResponse( public record UserResponse(
string Id, string Id,
@@ -1,5 +1,5 @@
using Keycloak.Net.Models.Users; using Keycloak.Net.Models.Users;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
namespace Musify.Infrastructure.Identity namespace Musify.Infrastructure.Identity
{ {
@@ -3,7 +3,7 @@ using Keycloak.Net;
using Keycloak.Net.Models.Users; using Keycloak.Net.Models.Users;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Musify.Application.Contracts.Infrastructure; using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Users.Contracts; using Musify.Application.Users.Responses;
using Musify.Infrastructure.Configuration; using Musify.Infrastructure.Configuration;
namespace Musify.Infrastructure.Identity namespace Musify.Infrastructure.Identity