mirror of
https://github.com/Govor-team/Govor.git
synced 2026-07-21 19:54:55 +00:00
hot fix for friends controller
This commit is contained in:
@@ -26,12 +26,8 @@ public class FriendsService : IFriendsService
|
||||
{
|
||||
all = await _usersRepository.SearchPotentialFriendsAsync(currentId, query);
|
||||
|
||||
var friends = await _friendshipsRepository.FindByUserIdAsync(currentId);
|
||||
|
||||
friends = friends.Where(f => f.Status == FriendshipStatus.Accepted).ToList();
|
||||
|
||||
return all
|
||||
.Where(u => u.Id != currentId && !friends.Select(f => f.RequesterId).Contains(u.Id))
|
||||
.Where(u => u.Id != currentId)
|
||||
.ToList();
|
||||
}
|
||||
catch (NotFoundByKeyException<(string, Guid)> ex)
|
||||
@@ -94,7 +90,6 @@ public class FriendsService : IFriendsService
|
||||
var friendships = await _friendshipsRepository.FindByUserIdAsync(userId);
|
||||
|
||||
return friendships
|
||||
.Where(f => f.Status == FriendshipStatus.Accepted)
|
||||
.Select(f => f.RequesterId == userId ? f.Addressee : f.Requester)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
using Govor.Application.Interfaces;
|
||||
using Govor.Application.Interfaces.Messages;
|
||||
using Govor.Application.Interfaces.Messages.Parameters;
|
||||
using Govor.Core.Models;
|
||||
using Govor.Core.Repositories.Messages;
|
||||
using Govor.Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Govor.Application.Services;
|
||||
|
||||
public class PrivateChatService : IChatService
|
||||
{
|
||||
private readonly IVerifyFriendship _verifyFriendship;
|
||||
private readonly IMessagesRepository _messages;
|
||||
|
||||
public PrivateChatService(IMessagesRepository messages, IVerifyFriendship verifyFriendship)
|
||||
{
|
||||
_messages = messages;
|
||||
_verifyFriendship = verifyFriendship;
|
||||
}
|
||||
|
||||
public async Task<Result> SendMessageAsync(SendMessage newMessage)
|
||||
{
|
||||
try
|
||||
{
|
||||
await _verifyFriendship.VerifyAsync(newMessage.FromUserId, newMessage.RecipientId);
|
||||
|
||||
var messageId = Guid.NewGuid();
|
||||
|
||||
var message = new Message()
|
||||
{
|
||||
Id = messageId,
|
||||
EncryptedContent = newMessage.EncryptContent,
|
||||
IsEdited = false,
|
||||
SenderId = newMessage.FromUserId,
|
||||
RecipientId = newMessage.RecipientId,
|
||||
RecipientType = RecipientType.User,
|
||||
ReplyToMessageId = newMessage.ReplyToMessageId,
|
||||
|
||||
MediaAttachments = newMessage.Media.Select(m => new MediaAttachments()
|
||||
{
|
||||
Id = m.Id,
|
||||
MessageId = messageId,
|
||||
Type = m.Type,
|
||||
MimeType = m.MimeType,
|
||||
EncryptedKey = m.EncryptedKey,
|
||||
}).ToList()
|
||||
};
|
||||
|
||||
await _messages.AddAsync(message);
|
||||
return new Result(true, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new Result(false, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Result> EditMessageAsync(Guid editorId, Guid messageId, string newContent)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public Task<Result> DeleteMessageAsync(Guid editorId, Guid messageId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user