aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Services/Services/FriendsService.cs
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2020-12-19 15:47:01 +0200
committertranstrike <transtrike@gmail.com>2020-12-19 15:47:01 +0200
commitfa09c0cc6cf99034dcc1301692ccb4d019087213 (patch)
treea5d453243884a315e061ef7e3723fbf7bb68d43f /src/DevHive.Services/Services/FriendsService.cs
parent3fc676497f4a4b1671e31cc3b8cd3e4c6ac96920 (diff)
downloadDevHive-fa09c0cc6cf99034dcc1301692ccb4d019087213.tar
DevHive-fa09c0cc6cf99034dcc1301692ccb4d019087213.tar.gz
DevHive-fa09c0cc6cf99034dcc1301692ccb4d019087213.zip
Moved Friends to User(you no longer have friends)
Diffstat (limited to 'src/DevHive.Services/Services/FriendsService.cs')
-rw-r--r--src/DevHive.Services/Services/FriendsService.cs76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/DevHive.Services/Services/FriendsService.cs b/src/DevHive.Services/Services/FriendsService.cs
deleted file mode 100644
index 119c955..0000000
--- a/src/DevHive.Services/Services/FriendsService.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using AutoMapper;
-using DevHive.Data.Models;
-using DevHive.Data.Repositories;
-using DevHive.Services.Models.Identity.User;
-using DevHive.Services.Options;
-
-namespace DevHive.Services.Services
-{
- public class FriendsService
- {
- private readonly FriendsRepository _friendsRepository;
- private readonly IMapper _friendsMapper;
-
- public FriendsService(FriendsRepository friendsRepository, IMapper mapper)
- {
- this._friendsRepository = friendsRepository;
- this._friendsMapper = mapper;
- }
-
- //Create
- public async Task<bool> AddFriend(Guid userId, Guid friendId)
- {
- User user = await this._friendsRepository.GetByIdAsync(userId);
- User friend = await this._friendsRepository.GetByIdAsync(friendId);
-
- if (DoesUserHaveThisFriend(user, friend))
- throw new ArgumentException("Friend already exists in your friends list.");
-
- return user != default(User) && friend != default(User) ?
- await this._friendsRepository.AddFriendAsync(user, friend) :
- throw new ArgumentException("Invalid user!");
- }
-
- //Read
- public async Task<UserServiceModel> GetFriendById(Guid friendId)
- {
- if(!_friendsRepository.DoesUserExist(friendId))
- throw new ArgumentException("User does not exist!");
-
- User friend = await this._friendsRepository.GetByIdAsync(friendId);
-
- return this._friendsMapper.Map<UserServiceModel>(friend);
- }
-
- public async Task<bool> RemoveFriend(Guid userId, Guid friendId)
- {
- if(!this._friendsRepository.DoesUserExist(userId) &&
- !this._friendsRepository.DoesUserExist(friendId))
- throw new ArgumentException("Invalid user!");
-
- User user = await this._friendsRepository.GetByIdAsync(userId);
- User friend = await this._friendsRepository.GetByIdAsync(friendId);
-
- if(!this.DoesUserHaveFriends(user))
- throw new ArgumentException("User does not have any friends.");
-
- if (!DoesUserHaveThisFriend(user, friend))
- throw new ArgumentException("This ain't your friend, amigo.");
-
- return await this.RemoveFriend(user.Id, friendId);
- }
-
- //Validation
- private bool DoesUserHaveThisFriend(User user, User friend)
- {
- return user.Friends.Contains(friend);
- }
-
- private bool DoesUserHaveFriends(User user)
- {
- return user.Friends.Count >= 1;
- }
- }
-} \ No newline at end of file