Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
madhead committed Nov 19, 2022
1 parent 7d63c59 commit 79d756d
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ val pipelineModule = module {
PinsPreCheckoutQueryUpdateProcessor(
bot = get(),
json = get(),
moniesDAO = get(),
)
}

Expand Down
5 changes: 2 additions & 3 deletions shop/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ plugins {

dependencies {
api(project.projects.core)
api(libs.tgbotapi.core)
api(libs.tgbotapi)
implementation(project.projects.shop.provider)
implementation(project.projects.shop.payload)
implementation(libs.tgbotapi.extensions.api)
implementation(libs.tgbotapi.extensions.utils)
implementation(project.projects.monies)
implementation(libs.log4j.api)

testImplementation(libs.junit.jupiter.api)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package by.jprof.telegram.bot.shop

import by.jprof.telegram.bot.core.UpdateProcessor
import by.jprof.telegram.bot.monies.dao.MoniesDAO
import by.jprof.telegram.bot.monies.model.Monies
import by.jprof.telegram.bot.shop.payload.PinsPayload
import by.jprof.telegram.bot.shop.utils.tooManyPins
import dev.inmo.tgbotapi.bot.RequestsExecutor
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryError
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
import dev.inmo.tgbotapi.types.update.abstracts.Update
import dev.inmo.tgbotapi.utils.PreviewFeature
Expand All @@ -15,6 +19,7 @@ import org.apache.logging.log4j.LogManager
class PinsPreCheckoutQueryUpdateProcessor(
private val bot: RequestsExecutor,
private val json: Json,
private val moniesDAO: MoniesDAO,
) : UpdateProcessor {
companion object {
private val logger = LogManager.getLogger(PinsPreCheckoutQueryUpdateProcessor::class.java)!!
Expand All @@ -33,6 +38,13 @@ class PinsPreCheckoutQueryUpdateProcessor(

logger.debug(payload)

bot.answerPreCheckoutQueryError(preCheckoutQuery, "Not implemented yet")
val monies = moniesDAO.get(preCheckoutQuery.user.id.chatId, payload.chat) ?: Monies(preCheckoutQuery.user.id.chatId, payload.chat)
val pins = monies.pins ?: 0

if (pins > 9999) {
bot.answerPreCheckoutQueryError(preCheckoutQuery, tooManyPins())
}

bot.answerPreCheckoutQueryOk(preCheckoutQuery)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package by.jprof.telegram.bot.shop

import by.jprof.telegram.bot.core.UpdateProcessor
import by.jprof.telegram.bot.shop.payload.SupportPayload
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
import dev.inmo.tgbotapi.extensions.utils.asBaseMessageUpdate
import dev.inmo.tgbotapi.extensions.utils.asChatEventMessage
import dev.inmo.tgbotapi.extensions.utils.asMessageUpdate
import dev.inmo.tgbotapi.extensions.utils.asNewChatMembers
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
import dev.inmo.tgbotapi.extensions.utils.asVoiceChatParticipantsInvited
import dev.inmo.tgbotapi.types.update.abstracts.Update
import dev.inmo.tgbotapi.utils.PreviewFeature
import kotlinx.serialization.decodeFromString
import org.apache.logging.log4j.LogManager

@OptIn(PreviewFeature::class)
class SuccessfulPaymentUpdateProcessor() : UpdateProcessor {
override suspend fun process(update: Update) {
val a = update.asMessageUpdate().data.asChatEventMessage().chatEvent.asSuccessfulPaymentEvent
val preCheckoutQuery = update.asPreCheckoutQueryUpdate()?.data ?: return

logger.debug(preCheckoutQuery)

val payload = try {
json.decodeFromString<SupportPayload>(preCheckoutQuery.invoicePayload)
} catch (_: Exception) {
return
}

logger.debug(payload)

bot.answerPreCheckoutQueryOk(preCheckoutQuery)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package by.jprof.telegram.bot.shop
import by.jprof.telegram.bot.core.UpdateProcessor
import by.jprof.telegram.bot.shop.payload.SupportPayload
import dev.inmo.tgbotapi.bot.RequestsExecutor
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryError
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
import dev.inmo.tgbotapi.types.update.abstracts.Update
import dev.inmo.tgbotapi.utils.PreviewFeature
Expand Down Expand Up @@ -33,6 +33,6 @@ class SupportPreCheckoutQueryUpdateProcessor(

logger.debug(payload)

bot.answerPreCheckoutQueryError(preCheckoutQuery, "Not implemented yet")
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,12 @@ private val forwardedPaymentsAreNotSupportedMessages = listOf(
internal fun forwardedPaymentsAreNotSupported(): String {
return forwardedPaymentsAreNotSupportedMessages.random()
}

private val tooManyPinsMessages = listOf(
"У тебя и так хватает пинов!",
"У тебя и так много пинов!",
)

internal fun tooManyPins(): String {
return tooManyPinsMessages.random()
}

0 comments on commit 79d756d

Please sign in to comment.