Use null
This commit is contained in:
@@ -12,7 +12,7 @@ public sealed class CurrentUser : IBindableFromHttpContext<CurrentUser>
|
|||||||
IsAuthenticated = isAuthenticated.HasValue && isAuthenticated.Value;
|
IsAuthenticated = isAuthenticated.HasValue && isAuthenticated.Value;
|
||||||
|
|
||||||
var rawId = principal.FindFirstValue(ClaimTypes.NameIdentifier);
|
var rawId = principal.FindFirstValue(ClaimTypes.NameIdentifier);
|
||||||
Id = Guid.TryParse(rawId, out var id)? id : Guid.Empty;
|
Id = Guid.TryParse(rawId, out var id)? id : null;
|
||||||
|
|
||||||
Username = principal.FindFirstValue(ClaimTypes.Name);
|
Username = principal.FindFirstValue(ClaimTypes.Name);
|
||||||
FirstName = principal.FindFirstValue(ClaimTypes.GivenName);
|
FirstName = principal.FindFirstValue(ClaimTypes.GivenName);
|
||||||
@@ -31,8 +31,7 @@ public sealed class CurrentUser : IBindableFromHttpContext<CurrentUser>
|
|||||||
|
|
||||||
public string? LastName { get; }
|
public string? LastName { get; }
|
||||||
|
|
||||||
public Guid RequiredId => Id
|
public Guid RequiredId => Id.HasValue? Id.Value : throw new InvalidOperationException("User ID is required but not present.");
|
||||||
?? throw new InvalidOperationException("The current request does not contain an authenticated user id.");
|
|
||||||
|
|
||||||
public bool HasClaim(string type) => Principal.HasClaim(c => c.Type == type);
|
public bool HasClaim(string type) => Principal.HasClaim(c => c.Type == type);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Musify.Application.PlayLists.Commands;
|
using Musify.Application.PlayLists.Commands;
|
||||||
using Musify.Application.PlayLists.Queries;
|
using Musify.Application.PlayLists.Queries;
|
||||||
|
using WebApi.Authentication;
|
||||||
using WebApi.DataTransferObjects.PlayLists;
|
using WebApi.DataTransferObjects.PlayLists;
|
||||||
using WebApi.Extensions;
|
using WebApi.Extensions;
|
||||||
using WebApi.Filters;
|
using WebApi.Filters;
|
||||||
@@ -26,24 +27,28 @@ public static class PlayListEndpoints
|
|||||||
.WithName("GetPlayListsByUserId")
|
.WithName("GetPlayListsByUserId")
|
||||||
.WithSummary("Get Paginated PlayLists For A User.");
|
.WithSummary("Get Paginated PlayLists For A User.");
|
||||||
|
|
||||||
group.MapPost("/users/{userId}", CreatePlayList)
|
group.MapPost("/", CreatePlayList)
|
||||||
.WithName("CreatePlayList")
|
.WithName("CreatePlayList")
|
||||||
.WithSummary("Create A New PlayList.")
|
.WithSummary("Create A New PlayList.")
|
||||||
.AddEndpointFilter<ValidationFilter<CreatePlayListRequest>>();
|
.AddEndpointFilter<ValidationFilter<CreatePlayListRequest>>()
|
||||||
|
.RequireAuthorization();
|
||||||
|
|
||||||
group.MapPut("/{playlistId}/users/{userId}", UpdatePlayList)
|
group.MapPut("/{playlistId}", UpdatePlayList)
|
||||||
.WithName("UpdatePlayList")
|
.WithName("UpdatePlayList")
|
||||||
.WithSummary("Update An Existing PlayList.")
|
.WithSummary("Update An Existing PlayList.")
|
||||||
.AddEndpointFilter<ValidationFilter<UpdatePlayListRequest>>();
|
.AddEndpointFilter<ValidationFilter<UpdatePlayListRequest>>()
|
||||||
|
.RequireAuthorization();
|
||||||
|
|
||||||
group.MapDelete("/{playlistId}/users/{userId}", DeletePlayList)
|
group.MapDelete("/{playlistId}", DeletePlayList)
|
||||||
.WithName("DeletePlayList")
|
.WithName("DeletePlayList")
|
||||||
.WithSummary("Delete A PlayList.");
|
.WithSummary("Delete A PlayList.")
|
||||||
|
.RequireAuthorization();
|
||||||
|
|
||||||
group.MapPost("/upload-picture/users/{userId}", RequestPlayListPictureUpload)
|
group.MapPost("/upload-picture", RequestPlayListPictureUpload)
|
||||||
.WithName("RequestPlayListPictureUpload")
|
.WithName("RequestPlayListPictureUpload")
|
||||||
.WithSummary("Request A Pre-Signed URL To Upload A PlayList Picture.")
|
.WithSummary("Request A Pre-Signed URL To Upload A PlayList Picture.")
|
||||||
.AddEndpointFilter<ValidationFilter<RequestPlayListPictureUploadRequest>>();
|
.AddEndpointFilter<ValidationFilter<RequestPlayListPictureUploadRequest>>()
|
||||||
|
.RequireAuthorization();
|
||||||
|
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
@@ -81,12 +86,12 @@ public static class PlayListEndpoints
|
|||||||
|
|
||||||
private static async Task<IResult> CreatePlayList(
|
private static async Task<IResult> CreatePlayList(
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
Guid userId,
|
CurrentUser currentUser,
|
||||||
CreatePlayListRequest request,
|
CreatePlayListRequest request,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var result = await mediator.Send(
|
var result = await mediator.Send(
|
||||||
new CreatePlayListCommand(userId, request.Name, request.Description, request.PictureIntentId),
|
new CreatePlayListCommand(currentUser.RequiredId, request.Name, request.Description, request.PictureIntentId),
|
||||||
cancellationToken);
|
cancellationToken);
|
||||||
|
|
||||||
if (!result.IsSuccess)
|
if (!result.IsSuccess)
|
||||||
@@ -97,13 +102,13 @@ public static class PlayListEndpoints
|
|||||||
|
|
||||||
private static async Task<IResult> UpdatePlayList(
|
private static async Task<IResult> UpdatePlayList(
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
Guid userId,
|
CurrentUser currentUser,
|
||||||
Guid playlistId,
|
Guid playlistId,
|
||||||
UpdatePlayListRequest request,
|
UpdatePlayListRequest request,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var result = await mediator.Send(
|
var result = await mediator.Send(
|
||||||
new UpdatePlayListCommand(userId, playlistId, request.NewName, request.NewDescription, request.NewPictureIntentId),
|
new UpdatePlayListCommand(currentUser.RequiredId, playlistId, request.NewName, request.NewDescription, request.NewPictureIntentId),
|
||||||
cancellationToken);
|
cancellationToken);
|
||||||
|
|
||||||
return result.ToHttpResult();
|
return result.ToHttpResult();
|
||||||
@@ -111,22 +116,22 @@ public static class PlayListEndpoints
|
|||||||
|
|
||||||
private static async Task<IResult> DeletePlayList(
|
private static async Task<IResult> DeletePlayList(
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
Guid userId,
|
CurrentUser currentUser,
|
||||||
Guid playlistId,
|
Guid playlistId,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var result = await mediator.Send(new DeletePlayListCommand(userId, playlistId), cancellationToken);
|
var result = await mediator.Send(new DeletePlayListCommand(currentUser.RequiredId, playlistId), cancellationToken);
|
||||||
return result.ToHttpResult();
|
return result.ToHttpResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task<IResult> RequestPlayListPictureUpload(
|
private static async Task<IResult> RequestPlayListPictureUpload(
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
Guid userId,
|
CurrentUser currentUser,
|
||||||
RequestPlayListPictureUploadRequest request,
|
RequestPlayListPictureUploadRequest request,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var result = await mediator.Send(
|
var result = await mediator.Send(
|
||||||
new RequestPlayListPictureUploadCommand(userId, request.FileType, request.ContentType, request.ExpectedSizeBytes),
|
new RequestPlayListPictureUploadCommand(currentUser.RequiredId, request.FileType, request.ContentType, request.ExpectedSizeBytes),
|
||||||
cancellationToken);
|
cancellationToken);
|
||||||
|
|
||||||
return result.ToHttpResult();
|
return result.ToHttpResult();
|
||||||
|
|||||||
Reference in New Issue
Block a user