mirror of
https://github.com/dalbodeule/chibot-chzzk-bot.git
synced 2025-08-07 21:01:14 +00:00
some change on LiveStatus logics
- add LiveStatus table - in ChzzkHandler.kt (UserHandler), _isActive variable to bind LiveStatusService
This commit is contained in:
@@ -31,7 +31,8 @@ object Connector {
|
||||
DailyCounters,
|
||||
PersonalCounters,
|
||||
Managers,
|
||||
TimerConfigs
|
||||
TimerConfigs,
|
||||
LiveStatuses
|
||||
)
|
||||
|
||||
transaction {
|
||||
|
@@ -0,0 +1,19 @@
|
||||
package space.mori.chzzk_bot.common.models
|
||||
|
||||
import org.jetbrains.exposed.dao.IntEntity
|
||||
import org.jetbrains.exposed.dao.IntEntityClass
|
||||
import org.jetbrains.exposed.dao.id.EntityID
|
||||
import org.jetbrains.exposed.dao.id.IntIdTable
|
||||
import org.jetbrains.exposed.sql.ReferenceOption
|
||||
|
||||
object LiveStatuses: IntIdTable("live_statuses") {
|
||||
val user = reference("user", Users, onDelete = ReferenceOption.CASCADE)
|
||||
val status = bool("status")
|
||||
}
|
||||
|
||||
class LiveStatus(id: EntityID<Int>) : IntEntity(id) {
|
||||
companion object : IntEntityClass<LiveStatus>(LiveStatuses)
|
||||
|
||||
var user by User referencedOn LiveStatuses.user
|
||||
var status by LiveStatuses.status
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
package space.mori.chzzk_bot.common.services
|
||||
|
||||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
||||
import org.jetbrains.exposed.sql.transactions.transaction
|
||||
import space.mori.chzzk_bot.common.models.LiveStatus
|
||||
import space.mori.chzzk_bot.common.models.LiveStatuses
|
||||
import space.mori.chzzk_bot.common.models.User
|
||||
|
||||
object LiveStatusService {
|
||||
fun updateOrCreate(user: User, status: Boolean): LiveStatus {
|
||||
return transaction {
|
||||
return@transaction when(val liveStatus = LiveStatus.find(LiveStatuses.user eq user.id).firstOrNull()) {
|
||||
null -> LiveStatus.new {
|
||||
this.user = user
|
||||
this.status = status
|
||||
}
|
||||
else -> {
|
||||
liveStatus.status = status
|
||||
liveStatus
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getLiveStatus(user: User): LiveStatus? {
|
||||
return transaction {
|
||||
LiveStatus.find(LiveStatuses.user eq user.id).firstOrNull()
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user