aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Services
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Services')
-rw-r--r--src/DevHive.Services/Services/FriendsService.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/DevHive.Services/Services/FriendsService.cs b/src/DevHive.Services/Services/FriendsService.cs
index 21a2aac..c0ec551 100644
--- a/src/DevHive.Services/Services/FriendsService.cs
+++ b/src/DevHive.Services/Services/FriendsService.cs
@@ -26,6 +26,9 @@ namespace DevHive.Services.Services
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!");
@@ -49,10 +52,14 @@ namespace DevHive.Services.Services
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);
}