chore(codebase): full cleanup pass
This commit is contained in:
@@ -10,6 +10,8 @@ public class MessagingDbContext(
|
||||
{
|
||||
public const string SchemaName = "Messaging";
|
||||
|
||||
public DbSet<Message> Messages { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.HasDefaultSchema(SchemaName);
|
||||
@@ -21,8 +23,6 @@ public class MessagingDbContext(
|
||||
.HasDefaultValueSql("CURRENT_TIMESTAMP");
|
||||
}
|
||||
|
||||
public DbSet<Message> Messages { get; set; }
|
||||
|
||||
public async Task<IEnumerable<MessageDto>> GetMessagesAsync(
|
||||
Guid subjectId,
|
||||
Guid? parentId,
|
||||
@@ -30,7 +30,7 @@ public class MessagingDbContext(
|
||||
int pageSize,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
var query = Messages
|
||||
IQueryable<Message> query = Messages
|
||||
.Where(c => c.SubjectId == subjectId)
|
||||
.Where(c => c.ParentId == parentId);
|
||||
|
||||
@@ -39,7 +39,7 @@ public class MessagingDbContext(
|
||||
var lastMessage = await Messages
|
||||
.Where(c => c.Id == lastId.Value)
|
||||
.Select(c => new { c.CreatedAt, c.Id })
|
||||
.FirstOrDefaultAsync(cancellationToken: ct);
|
||||
.FirstOrDefaultAsync(ct);
|
||||
|
||||
if (lastMessage != null)
|
||||
{
|
||||
@@ -49,17 +49,17 @@ public class MessagingDbContext(
|
||||
}
|
||||
}
|
||||
|
||||
var messages = await query
|
||||
List<Message> messages = await query
|
||||
.OrderByDescending(c => c.CreatedAt)
|
||||
.ThenByDescending(c => c.Id)
|
||||
.Take(pageSize)
|
||||
.ToListAsync(cancellationToken: ct);
|
||||
.ToListAsync(ct);
|
||||
|
||||
|
||||
var result = await Task.WhenAll(
|
||||
MessageDto[] result = await Task.WhenAll(
|
||||
messages.Select(async message =>
|
||||
{
|
||||
var writer = await userLookup.GetUserAsync(message.CreatedBy, ct);
|
||||
UserReference? writer = await userLookup.GetUserAsync(message.CreatedBy, ct);
|
||||
return new MessageDto(
|
||||
message.Id,
|
||||
message.SubjectId,
|
||||
@@ -80,11 +80,11 @@ public class MessagingDbContext(
|
||||
int pageSize,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
var query = Messages
|
||||
IQueryable<Message> query = Messages
|
||||
.Where(c => c.SubjectId == subjectId)
|
||||
.Where(c => c.ParentId == parentId);
|
||||
|
||||
var messageCount = await query
|
||||
int messageCount = await query
|
||||
.Take(pageSize)
|
||||
.CountAsync(ct);
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ public static class DependencyInjection
|
||||
Action<DbContextOptionsBuilder>? configureAction = null)
|
||||
{
|
||||
builder.Services.AddDbContext<MessagingDbContext>(configureAction);
|
||||
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,10 @@ public static class DependencyInjection
|
||||
this IApplicationBuilder app,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
var scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
|
||||
using var scope = scopeFactory.CreateScope();
|
||||
await using var context = scope.ServiceProvider.GetRequiredService<MessagingDbContext>();
|
||||
await context.Database.MigrateAsync(cancellationToken: cancellationToken);
|
||||
IServiceScopeFactory scopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
|
||||
using IServiceScope scope = scopeFactory.CreateScope();
|
||||
await using MessagingDbContext context = scope.ServiceProvider.GetRequiredService<MessagingDbContext>();
|
||||
await context.Database.MigrateAsync(cancellationToken);
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
@@ -40,14 +40,14 @@ public class AddMessage(
|
||||
AddMessageRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var message = new Message
|
||||
Message message = new()
|
||||
{
|
||||
Id = req.Id ?? Guid.CreateVersion7(),
|
||||
SubjectId = req.SubjectId,
|
||||
CreatedBy = User.GetUserId(),
|
||||
Value = req.Message
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
await context.Messages.AddAsync(message, ct);
|
||||
|
||||
await context.SaveChangesAsync(ct);
|
||||
|
||||
@@ -20,7 +20,7 @@ internal sealed class AddReplyRequestValidator
|
||||
RuleFor(r => r.ParentId)
|
||||
.NotNull().WithMessage("You must specify a ParentId")
|
||||
.NotEmpty().WithMessage("You must specify a non-empty ParentId");
|
||||
|
||||
|
||||
RuleFor(r => r.SubjectId)
|
||||
.NotNull().WithMessage("You must specify a SubjectId")
|
||||
.NotEmpty().WithMessage("You must specify a non-empty SubjectId");
|
||||
@@ -45,10 +45,10 @@ internal sealed class AddReply(
|
||||
AddReplyRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var message = new Message
|
||||
Message message = new()
|
||||
{
|
||||
Id = Guid.CreateVersion7(),
|
||||
SubjectId = req.SubjectId,
|
||||
SubjectId = req.SubjectId,
|
||||
ParentId = req.ParentId,
|
||||
CreatedBy = User.GetUserId(),
|
||||
Value = req.Message
|
||||
|
||||
@@ -39,15 +39,15 @@ public class ChangeMessage(
|
||||
ChangeMessageRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var message = await context.Messages.FirstOrDefaultAsync(x => x.Id == req.Id, ct);
|
||||
|
||||
Message? message = await context.Messages.FirstOrDefaultAsync(x => x.Id == req.Id, ct);
|
||||
|
||||
if (message is null)
|
||||
{
|
||||
await SendNotFoundAsync(ct);
|
||||
return;
|
||||
}
|
||||
|
||||
var userId = HttpContext.User.GetUserId();
|
||||
|
||||
Guid userId = HttpContext.User.GetUserId();
|
||||
if (message.CreatedBy != userId)
|
||||
{
|
||||
await SendForbiddenAsync(ct);
|
||||
@@ -58,7 +58,7 @@ public class ChangeMessage(
|
||||
message.Value = req.Message;
|
||||
|
||||
context.Update(message);
|
||||
|
||||
|
||||
await context.SaveChangesAsync(ct);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,21 +30,21 @@ public class DeleteMessage(
|
||||
DeleteMessageRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var message = await context.Messages.FirstOrDefaultAsync(x => x.Id == req.MessageId, ct);
|
||||
Message? message = await context.Messages.FirstOrDefaultAsync(x => x.Id == req.MessageId, ct);
|
||||
|
||||
if (message is null)
|
||||
{
|
||||
await SendNotFoundAsync(ct);
|
||||
return;
|
||||
}
|
||||
|
||||
var userId = HttpContext.User.GetUserId();
|
||||
|
||||
Guid userId = HttpContext.User.GetUserId();
|
||||
if (message.CreatedBy != userId)
|
||||
{
|
||||
await SendForbiddenAsync(ct);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
context.Messages.Remove(message);
|
||||
|
||||
await context.SaveChangesAsync(ct);
|
||||
|
||||
@@ -28,17 +28,14 @@ public class GetMessageCount(
|
||||
GetMessageCountRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var messageCount = await context.GetMessageCountAsync(
|
||||
int messageCount = await context.GetMessageCountAsync(
|
||||
req.SubjectId,
|
||||
null,
|
||||
req.PageSize,
|
||||
ct);
|
||||
|
||||
|
||||
await SendAsync(
|
||||
new()
|
||||
{
|
||||
Count = messageCount
|
||||
},
|
||||
new GetMessageCountResponse { Count = messageCount },
|
||||
cancellation: ct);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,13 +30,13 @@ public class GetMessages(
|
||||
GetMessagesRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var messages = await context.GetMessagesAsync(
|
||||
IEnumerable<MessageDto> messages = await context.GetMessagesAsync(
|
||||
req.SubjectId,
|
||||
null,
|
||||
req.LastId,
|
||||
req.PageSize,
|
||||
ct);
|
||||
|
||||
|
||||
await SendOkAsync(new GetMessagesResponse(messages), ct);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,16 +30,16 @@ public class GetMessagesByUser(
|
||||
GetMessagesByUserRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var messages = await context
|
||||
List<Message> messages = await context
|
||||
.Messages
|
||||
.Where(c => c.CreatedBy == req.UserId)
|
||||
.Where(c => c.ParentId == null)
|
||||
.ToListAsync(cancellationToken: ct);
|
||||
.ToListAsync(ct);
|
||||
|
||||
var result = await Task.WhenAll(
|
||||
MessageDto[] result = await Task.WhenAll(
|
||||
messages.Select(async message =>
|
||||
{
|
||||
var user = await userLookup.GetUserAsync(message.CreatedBy, ct);
|
||||
UserReference? user = await userLookup.GetUserAsync(message.CreatedBy, ct);
|
||||
|
||||
return new MessageDto
|
||||
{
|
||||
|
||||
@@ -31,7 +31,7 @@ public class GetReplies(
|
||||
GetRepliesRequest req,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var replies = await context.GetMessagesAsync(
|
||||
IEnumerable<MessageDto> replies = await context.GetMessagesAsync(
|
||||
req.SubjectId,
|
||||
req.ParentId,
|
||||
req.LastId,
|
||||
|
||||
Reference in New Issue
Block a user