[no_ci] Add Friend methods and entity
continuous-integration/drone/push Build is passing Details

pull/12/head
Lucas EVARD 11 months ago
parent b9825bb5ca
commit 7c49c34167

@ -4,4 +4,5 @@ abstract class AllInDataSource {
abstract val userDataSource: UserDataSource
abstract val betDataSource: BetDataSource
abstract val participationDataSource: ParticipationDataSource
abstract val friendDataSource: FriendDataSource
}

@ -1,8 +1,10 @@
package allin.data
import allin.model.User
interface FriendDataSource {
fun addFriend(sender: String, receiver: String)
fun getFriendFromUserId(id: String)
fun getFriendFromUserId(id: String): List<User>
fun getFriendFromUsername(username: String)
fun deleteFriend(senderId: String, receiverId: String)
fun isFriend(firstUser: String, secondUser: String)

@ -1,9 +1,6 @@
package allin.data.mock
import allin.data.AllInDataSource
import allin.data.BetDataSource
import allin.data.ParticipationDataSource
import allin.data.UserDataSource
import allin.data.*
import allin.model.Bet
import allin.model.BetResult
import allin.model.Participation
@ -30,4 +27,5 @@ class MockDataSource : AllInDataSource() {
override val userDataSource: UserDataSource by lazy { MockUserDataSource(mockData) }
override val betDataSource: BetDataSource by lazy { MockBetDataSource(mockData) }
override val participationDataSource: ParticipationDataSource by lazy { MockParticipationDataSource(mockData) }
override val friendDataSource: FriendDataSource by lazy { MockFriendDataSource(mockData) }
}

@ -0,0 +1,26 @@
package allin.data.mock
import allin.data.FriendDataSource
import allin.model.User
class MockFriendDataSource(mockData: MockDataSource.MockData) : FriendDataSource {
override fun addFriend(sender: String, receiver: String) {
TODO("Not yet implemented")
}
override fun getFriendFromUserId(id: String): List<User> {
TODO("Not yet implemented")
}
override fun getFriendFromUsername(username: String) {
TODO("Not yet implemented")
}
override fun deleteFriend(senderId: String, receiverId: String) {
TODO("Not yet implemented")
}
override fun isFriend(firstUser: String, secondUser: String) {
TODO("Not yet implemented")
}
}

@ -1,9 +1,6 @@
package allin.data.postgres
import allin.data.AllInDataSource
import allin.data.BetDataSource
import allin.data.ParticipationDataSource
import allin.data.UserDataSource
import allin.data.*
import allin.ext.execute
import org.ktorm.database.Database
@ -95,9 +92,20 @@ class PostgresDataSource : AllInDataSource() {
)
""".trimIndent()
)
database.execute(
"""
CREATE TABLE IF NOT EXISTS friend(
sender VARCHAR(255),
receiver VARCHAR(255),
CONSTRAINT pk_friend PRIMARY KEY (sender,receiver)
)
""".trimIndent()
)
}
override val userDataSource: UserDataSource by lazy { PostgresUserDataSource(database) }
override val betDataSource: BetDataSource by lazy { PostgresBetDataSource(database) }
override val participationDataSource: ParticipationDataSource by lazy { PostgresParticipationDataSource(database) }
override val friendDataSource: FriendDataSource by lazy { PostgresFriendDataSource(database) }
}

@ -1,15 +1,21 @@
package allin.data.postgres
import allin.data.FriendDataSource
import allin.data.postgres.entities.FriendsEntity
import allin.model.User
import org.ktorm.database.Database
import org.ktorm.dsl.insert
class PostgresFriendDataSource(private val database: Database) : FriendDataSource {
override fun addFriend(sender: String, receiver: String) {
// TODO("Not yet implemented")
database.insert(FriendsEntity) {
set(it.sender, sender)
set(it.receiver, receiver)
}
}
override fun getFriendFromUserId(id: String) {
TODO("Not yet implemented")
override fun getFriendFromUserId(id: String): List<User> {
TODO()
}
override fun getFriendFromUsername(username: String) {

@ -0,0 +1,15 @@
package allin.data.postgres.entities
import org.ktorm.entity.Entity
import org.ktorm.schema.Table
import org.ktorm.schema.varchar
interface FriendEntity : Entity<FriendEntity> {
val sender: String
val receiver: String
}
object FriendsEntity : Table<FriendEntity>("friend") {
val sender = varchar("id").primaryKey().bindTo { it.sender }
val receiver = varchar("bet").primaryKey().bindTo { it.receiver }
}
Loading…
Cancel
Save