Split Slug from Creator
This commit is contained in:
@@ -10,8 +10,8 @@ namespace Hutopy.Web.Features.Contents.Handlers;
|
||||
[PublicAPI]
|
||||
public record ReserveSlugRequest
|
||||
{
|
||||
public string Slug { get; set; } = null!;
|
||||
public required Guid ReservationId { get; set; }
|
||||
public string Slug { get; set; } = null!;
|
||||
}
|
||||
|
||||
[PublicAPI]
|
||||
@@ -46,17 +46,26 @@ public sealed class ReserveSlug(
|
||||
|
||||
try
|
||||
{
|
||||
await context.Slugs.AddAsync(
|
||||
new Slugs
|
||||
{
|
||||
Id = req.ReservationId,
|
||||
Active = false,
|
||||
Name = req.Slug,
|
||||
ReservedUntil = DateTimeOffset.UtcNow + opts.Value.SlugReservationDuration,
|
||||
CreatedBy = User.GetUserId(),
|
||||
},
|
||||
var reservation = await context.Slugs.FirstOrDefaultAsync(
|
||||
s => s.Id == req.ReservationId && s.CreatedBy == User.GetUserId(),
|
||||
cancellationToken: ct);
|
||||
|
||||
if (reservation == null)
|
||||
{
|
||||
reservation = new Slugs
|
||||
{
|
||||
Id = req.ReservationId,
|
||||
CreatedBy = User.GetUserId(),
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
};
|
||||
|
||||
context.Slugs.Attach(reservation);
|
||||
context.Entry(reservation).State = EntityState.Added;
|
||||
}
|
||||
|
||||
reservation.Name = req.Slug;
|
||||
reservation.ReservedUntil = DateTimeOffset.UtcNow + opts.Value.SlugReservationDuration;
|
||||
|
||||
await context.SaveChangesAsync(ct);
|
||||
|
||||
await transaction.CommitAsync(ct);
|
||||
|
||||
Reference in New Issue
Block a user