hot fix for friends controller

This commit is contained in:
Artemy
2025-07-03 19:46:53 +07:00
parent 565d3249e5
commit d170c6270f
16 changed files with 193 additions and 49 deletions
@@ -46,7 +46,8 @@ public class FriendshipsRepository : IFriendshipsRepository
.Include(x => x.Requester)
.Include(x => x.Addressee)
.AsSplitQuery()
.Where(x => x.RequesterId == userId)
.Where(f =>
(f.RequesterId == userId || f.AddresseeId == userId))
.ToListOrThrowIfEmpty(new NotFoundByKeyException<Guid>(userId, "Friendship with given user id was not found"));
}
@@ -113,6 +114,7 @@ public class FriendshipsRepository : IFriendshipsRepository
public bool Exist(Guid requesterId, Guid addresseeId)
{
return _context.Friendships.AsNoTracking().Any(x => (x.RequesterId == requesterId && x.AddresseeId == addresseeId));
return _context.Friendships.AsNoTracking().Any(x => (x.RequesterId == requesterId && x.AddresseeId == addresseeId) ||
x.RequesterId == addresseeId && x.AddresseeId == requesterId);
}
}
+11 -1
View File
@@ -22,6 +22,10 @@ public class UsersRepository : IUsersRepository
{
return await _context.Users
.AsNoTracking()
.Include(u => u.Invite)
.Include(u => u.ReceivedFriendRequests)
.Include(u => u.SentFriendRequests)
.AsSplitQuery()
.ToListOrThrowIfEmpty(new NotFoundException("Users in Database not exists"));
}
@@ -48,6 +52,10 @@ public class UsersRepository : IUsersRepository
return await _context.Users
.AsNoTracking()
.Where(x => ids.Contains(x.Id))
.Include(u => u.Invite)
.Include(u => u.ReceivedFriendRequests)
.Include(u => u.SentFriendRequests)
.AsSplitQuery()
.ToListOrThrowIfEmpty(new NotFoundByKeyException<IEnumerable<Guid>>(ids,"Users with given ids not found"));
}
@@ -70,6 +78,9 @@ public class UsersRepository : IUsersRepository
{
return await _context.Users
.AsNoTracking()
.Include(u => u.Invite)
.Include(u => u.ReceivedFriendRequests)
.Include(u => u.SentFriendRequests)
.AsSplitQuery()
.Where(u => u.Id != currentUserId &&
u.Username.ToLower().Contains(query.ToLower()) &&
@@ -211,5 +222,4 @@ public class UsersRepository : IUsersRepository
{
return _context.Users.AnyAsync(u => u.Username == username);
}
}