[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 userDataSource: UserDataSource
abstract val betDataSource: BetDataSource abstract val betDataSource: BetDataSource
abstract val participationDataSource: ParticipationDataSource abstract val participationDataSource: ParticipationDataSource
abstract val friendDataSource: FriendDataSource
} }

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

@ -1,9 +1,6 @@
package allin.data.mock package allin.data.mock
import allin.data.AllInDataSource import allin.data.*
import allin.data.BetDataSource
import allin.data.ParticipationDataSource
import allin.data.UserDataSource
import allin.model.Bet import allin.model.Bet
import allin.model.BetResult import allin.model.BetResult
import allin.model.Participation import allin.model.Participation
@ -30,4 +27,5 @@ class MockDataSource : AllInDataSource() {
override val userDataSource: UserDataSource by lazy { MockUserDataSource(mockData) } override val userDataSource: UserDataSource by lazy { MockUserDataSource(mockData) }
override val betDataSource: BetDataSource by lazy { MockBetDataSource(mockData) } override val betDataSource: BetDataSource by lazy { MockBetDataSource(mockData) }
override val participationDataSource: ParticipationDataSource by lazy { MockParticipationDataSource(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 package allin.data.postgres
import allin.data.AllInDataSource import allin.data.*
import allin.data.BetDataSource
import allin.data.ParticipationDataSource
import allin.data.UserDataSource
import allin.ext.execute import allin.ext.execute
import org.ktorm.database.Database import org.ktorm.database.Database
@ -95,9 +92,20 @@ class PostgresDataSource : AllInDataSource() {
) )
""".trimIndent() """.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 userDataSource: UserDataSource by lazy { PostgresUserDataSource(database) }
override val betDataSource: BetDataSource by lazy { PostgresBetDataSource(database) } override val betDataSource: BetDataSource by lazy { PostgresBetDataSource(database) }
override val participationDataSource: ParticipationDataSource by lazy { PostgresParticipationDataSource(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 package allin.data.postgres
import allin.data.FriendDataSource import allin.data.FriendDataSource
import allin.data.postgres.entities.FriendsEntity
import allin.model.User
import org.ktorm.database.Database import org.ktorm.database.Database
import org.ktorm.dsl.insert
class PostgresFriendDataSource(private val database: Database) : FriendDataSource { class PostgresFriendDataSource(private val database: Database) : FriendDataSource {
override fun addFriend(sender: String, receiver: String) { 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) { override fun getFriendFromUserId(id: String): List<User> {
TODO("Not yet implemented") TODO()
} }
override fun getFriendFromUsername(username: String) { 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