diff --git a/Sources/src/main/kotlin/allin/data/postgres/PostgresDataSource.kt b/Sources/src/main/kotlin/allin/data/postgres/PostgresDataSource.kt index ef2dd35..5fbe6f7 100644 --- a/Sources/src/main/kotlin/allin/data/postgres/PostgresDataSource.kt +++ b/Sources/src/main/kotlin/allin/data/postgres/PostgresDataSource.kt @@ -38,10 +38,10 @@ class PostgresDataSource : AllInDataSource() { database.Execute( """ - CREATE TYPE betstatus AS ENUM + CREATE TYPE IF not exists betstatus AS ENUM ('InProgress', 'Waiting', 'Closing', 'Finished', 'Cancelled'); - CREATE TYPE bettype AS ENUM + CREATE TYPE IF not exists bettype AS ENUM ('Match', 'Binary', 'Custom'); CREATE TABLE IF not exists bet ( diff --git a/Sources/src/main/kotlin/allin/model/AllInResponse.kt b/Sources/src/main/kotlin/allin/model/AllInResponse.kt deleted file mode 100644 index 27f4baf..0000000 --- a/Sources/src/main/kotlin/allin/model/AllInResponse.kt +++ /dev/null @@ -1,10 +0,0 @@ -package allin.model - -import kotlinx.serialization.Serializable - -@Serializable -data class AllInResponse( - val value: T, - val toConfirm: List, - val won: List -) \ No newline at end of file diff --git a/Sources/src/main/kotlin/allin/routing/BetRouter.kt b/Sources/src/main/kotlin/allin/routing/BetRouter.kt index 4661afc..b28ad59 100644 --- a/Sources/src/main/kotlin/allin/routing/BetRouter.kt +++ b/Sources/src/main/kotlin/allin/routing/BetRouter.kt @@ -3,10 +3,7 @@ package allin.routing import allin.dataSource import allin.ext.hasToken import allin.ext.verifyUserFromToken -import allin.model.AllInResponse -import allin.model.ApiMessage -import allin.model.Bet -import allin.model.UpdatedBetData +import allin.model.* import allin.utils.AppConfig import io.ktor.http.* import io.ktor.server.application.* @@ -49,11 +46,25 @@ fun Application.BetRouter() { get("/bets/gets") { hasToken { principal -> verifyUserFromToken(userDataSource, principal) { user, _ -> - val response = AllInResponse( - value = betDataSource.getAllBets(), - won = emptyList(), - toConfirm = betDataSource.getToConfirm(user.username) - ) + call.respond(HttpStatusCode.Accepted, betDataSource.getAllBets()) + } + } + } + } + + authenticate { + get("/bets/toConfirm") { + hasToken { principal -> + verifyUserFromToken(userDataSource, principal) { user, _ -> + val response = betDataSource.getToConfirm(user.username).map { + val participations = participationDataSource.getParticipationFromBetId(it.id) + BetDetail( + it, + getBetAnswerDetail(it, participations), + participations.toList(), + participationDataSource.getParticipationFromUserId(user.username, it.id).lastOrNull() + ) + } call.respond(HttpStatusCode.Accepted, response) } }