TelegramBotApiLibraries/cache/admins/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/admins/AdminsSimpleFilter.kt

38 lines
1019 B
Kotlin
Raw Normal View History

2022-09-10 12:54:25 +00:00
package dev.inmo.tgbotapi.libraries.cache.admins
import dev.inmo.tgbotapi.abstracts.FromUser
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
2022-11-10 15:25:31 +00:00
import dev.inmo.tgbotapi.types.IdChatIdentifier
2022-09-10 12:54:25 +00:00
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.message.abstracts.Message
fun AdminsChecker(
adminsCacheAPI: AdminsCacheAPI
2022-11-10 15:25:31 +00:00
): SimpleFilter<Pair<IdChatIdentifier, UserId>> = SimpleFilter {
2022-09-10 12:54:25 +00:00
adminsCacheAPI.isAdmin(it.first, it.second)
}
fun <T> AdminsChecker(
adminsCacheAPI: AdminsCacheAPI,
2022-11-10 15:25:31 +00:00
mapper: (T) -> Pair<IdChatIdentifier, UserId>
2022-09-10 12:54:25 +00:00
): SimpleFilter<T> {
val baseChecker = AdminsChecker(adminsCacheAPI)
return SimpleFilter<T> {
baseChecker(mapper(it))
}
}
fun MessageAdminsChecker(
adminsCacheAPI: AdminsCacheAPI
) = SimpleFilter<Message> {
adminsCacheAPI.isAdmin(it)
}
fun AdminsChecker(
adminsCacheAPI: AdminsCacheAPI,
2022-11-10 15:25:31 +00:00
chatId: IdChatIdentifier
2022-09-10 12:54:25 +00:00
) = SimpleFilter<FromUser> {
adminsCacheAPI.isAdmin(chatId, it.from.id)
}