|
|
@ -1,7 +1,9 @@
|
|
|
|
package allin.data.mock
|
|
|
|
package allin.data.mock
|
|
|
|
|
|
|
|
|
|
|
|
import allin.data.FriendDataSource
|
|
|
|
import allin.data.FriendDataSource
|
|
|
|
|
|
|
|
import allin.dto.UserDTO
|
|
|
|
import allin.model.Friend
|
|
|
|
import allin.model.Friend
|
|
|
|
|
|
|
|
import allin.model.FriendStatus
|
|
|
|
|
|
|
|
|
|
|
|
class MockFriendDataSource(private val mockData: MockDataSource.MockData) : FriendDataSource {
|
|
|
|
class MockFriendDataSource(private val mockData: MockDataSource.MockData) : FriendDataSource {
|
|
|
|
|
|
|
|
|
|
|
@ -15,7 +17,11 @@ class MockFriendDataSource(private val mockData: MockDataSource.MockData) : Frie
|
|
|
|
override fun getFriendFromUserId(id: String) =
|
|
|
|
override fun getFriendFromUserId(id: String) =
|
|
|
|
friends.map { Friend(sender = it.sender, receiver = it.receiver) }
|
|
|
|
friends.map { Friend(sender = it.sender, receiver = it.receiver) }
|
|
|
|
.filter { it.sender == id }
|
|
|
|
.filter { it.sender == id }
|
|
|
|
.mapNotNull { users.find { usr -> it.receiver == usr.id }?.toDto() }
|
|
|
|
.mapNotNull {
|
|
|
|
|
|
|
|
users
|
|
|
|
|
|
|
|
.find { usr -> it.receiver == usr.id }
|
|
|
|
|
|
|
|
?.toDto(friendStatus = FriendStatus.FRIEND)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun deleteFriend(senderId: String, receiverId: String) =
|
|
|
|
override fun deleteFriend(senderId: String, receiverId: String) =
|
|
|
|
friends.removeIf { (it.sender == senderId) && (it.receiver == receiverId) }
|
|
|
|
friends.removeIf { (it.sender == senderId) && (it.receiver == receiverId) }
|
|
|
@ -26,4 +32,23 @@ class MockFriendDataSource(private val mockData: MockDataSource.MockData) : Frie
|
|
|
|
.filter { (it.sender == firstUser) and (it.receiver == secondUser) }
|
|
|
|
.filter { (it.sender == firstUser) and (it.receiver == secondUser) }
|
|
|
|
.map { Friend(sender = it.sender, receiver = it.receiver) }
|
|
|
|
.map { Friend(sender = it.sender, receiver = it.receiver) }
|
|
|
|
.isNotEmpty()
|
|
|
|
.isNotEmpty()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun filterUsersByUsername(fromUserId: String, search: String): List<UserDTO> =
|
|
|
|
|
|
|
|
users.filter { (it.username.contains(search, ignoreCase = true)) }
|
|
|
|
|
|
|
|
.map { user ->
|
|
|
|
|
|
|
|
user.toDto(
|
|
|
|
|
|
|
|
friendStatus = friends.filter { friend ->
|
|
|
|
|
|
|
|
friend.sender == fromUserId && friend.receiver == user.id
|
|
|
|
|
|
|
|
}.let {
|
|
|
|
|
|
|
|
if (it.isEmpty()) FriendStatus.NOT_FRIEND
|
|
|
|
|
|
|
|
else friends.filter { friend ->
|
|
|
|
|
|
|
|
friend.sender == user.id && friend.receiver == fromUserId
|
|
|
|
|
|
|
|
}.let {
|
|
|
|
|
|
|
|
if (it.isEmpty()) FriendStatus.REQUESTED
|
|
|
|
|
|
|
|
else FriendStatus.FRIEND
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|