Skip to content

Commit 79d756d

Browse files
committed
WIP
1 parent 7d63c59 commit 79d756d

File tree

6 files changed

+62
-6
lines changed

6 files changed

+62
-6
lines changed

launchers/lambda/src/main/kotlin/by/jprof/telegram/bot/launchers/lambda/config/pipeline.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ val pipelineModule = module {
186186
PinsPreCheckoutQueryUpdateProcessor(
187187
bot = get(),
188188
json = get(),
189+
moniesDAO = get(),
189190
)
190191
}
191192

shop/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ plugins {
44

55
dependencies {
66
api(project.projects.core)
7-
api(libs.tgbotapi.core)
7+
api(libs.tgbotapi)
88
implementation(project.projects.shop.provider)
99
implementation(project.projects.shop.payload)
10-
implementation(libs.tgbotapi.extensions.api)
11-
implementation(libs.tgbotapi.extensions.utils)
10+
implementation(project.projects.monies)
1211
implementation(libs.log4j.api)
1312

1413
testImplementation(libs.junit.jupiter.api)

shop/src/main/kotlin/by/jprof/telegram/bot/shop/PinsPreCheckoutQueryUpdateProcessor.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package by.jprof.telegram.bot.shop
22

33
import by.jprof.telegram.bot.core.UpdateProcessor
4+
import by.jprof.telegram.bot.monies.dao.MoniesDAO
5+
import by.jprof.telegram.bot.monies.model.Monies
46
import by.jprof.telegram.bot.shop.payload.PinsPayload
7+
import by.jprof.telegram.bot.shop.utils.tooManyPins
58
import dev.inmo.tgbotapi.bot.RequestsExecutor
69
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryError
10+
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
711
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
812
import dev.inmo.tgbotapi.types.update.abstracts.Update
913
import dev.inmo.tgbotapi.utils.PreviewFeature
@@ -15,6 +19,7 @@ import org.apache.logging.log4j.LogManager
1519
class PinsPreCheckoutQueryUpdateProcessor(
1620
private val bot: RequestsExecutor,
1721
private val json: Json,
22+
private val moniesDAO: MoniesDAO,
1823
) : UpdateProcessor {
1924
companion object {
2025
private val logger = LogManager.getLogger(PinsPreCheckoutQueryUpdateProcessor::class.java)!!
@@ -33,6 +38,13 @@ class PinsPreCheckoutQueryUpdateProcessor(
3338

3439
logger.debug(payload)
3540

36-
bot.answerPreCheckoutQueryError(preCheckoutQuery, "Not implemented yet")
41+
val monies = moniesDAO.get(preCheckoutQuery.user.id.chatId, payload.chat) ?: Monies(preCheckoutQuery.user.id.chatId, payload.chat)
42+
val pins = monies.pins ?: 0
43+
44+
if (pins > 9999) {
45+
bot.answerPreCheckoutQueryError(preCheckoutQuery, tooManyPins())
46+
}
47+
48+
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
3749
}
3850
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package by.jprof.telegram.bot.shop
2+
3+
import by.jprof.telegram.bot.core.UpdateProcessor
4+
import by.jprof.telegram.bot.shop.payload.SupportPayload
5+
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
6+
import dev.inmo.tgbotapi.extensions.utils.asBaseMessageUpdate
7+
import dev.inmo.tgbotapi.extensions.utils.asChatEventMessage
8+
import dev.inmo.tgbotapi.extensions.utils.asMessageUpdate
9+
import dev.inmo.tgbotapi.extensions.utils.asNewChatMembers
10+
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
11+
import dev.inmo.tgbotapi.extensions.utils.asVoiceChatParticipantsInvited
12+
import dev.inmo.tgbotapi.types.update.abstracts.Update
13+
import dev.inmo.tgbotapi.utils.PreviewFeature
14+
import kotlinx.serialization.decodeFromString
15+
import org.apache.logging.log4j.LogManager
16+
17+
@OptIn(PreviewFeature::class)
18+
class SuccessfulPaymentUpdateProcessor() : UpdateProcessor {
19+
override suspend fun process(update: Update) {
20+
val a = update.asMessageUpdate().data.asChatEventMessage().chatEvent.asSuccessfulPaymentEvent
21+
val preCheckoutQuery = update.asPreCheckoutQueryUpdate()?.data ?: return
22+
23+
logger.debug(preCheckoutQuery)
24+
25+
val payload = try {
26+
json.decodeFromString<SupportPayload>(preCheckoutQuery.invoicePayload)
27+
} catch (_: Exception) {
28+
return
29+
}
30+
31+
logger.debug(payload)
32+
33+
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
34+
}
35+
}

shop/src/main/kotlin/by/jprof/telegram/bot/shop/SupportPreCheckoutQueryUpdateProcessor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package by.jprof.telegram.bot.shop
33
import by.jprof.telegram.bot.core.UpdateProcessor
44
import by.jprof.telegram.bot.shop.payload.SupportPayload
55
import dev.inmo.tgbotapi.bot.RequestsExecutor
6-
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryError
6+
import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk
77
import dev.inmo.tgbotapi.extensions.utils.asPreCheckoutQueryUpdate
88
import dev.inmo.tgbotapi.types.update.abstracts.Update
99
import dev.inmo.tgbotapi.utils.PreviewFeature
@@ -33,6 +33,6 @@ class SupportPreCheckoutQueryUpdateProcessor(
3333

3434
logger.debug(payload)
3535

36-
bot.answerPreCheckoutQueryError(preCheckoutQuery, "Not implemented yet")
36+
bot.answerPreCheckoutQueryOk(preCheckoutQuery)
3737
}
3838
}

shop/src/main/kotlin/by/jprof/telegram/bot/shop/utils/messages.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,12 @@ private val forwardedPaymentsAreNotSupportedMessages = listOf(
1515
internal fun forwardedPaymentsAreNotSupported(): String {
1616
return forwardedPaymentsAreNotSupportedMessages.random()
1717
}
18+
19+
private val tooManyPinsMessages = listOf(
20+
"У тебя и так хватает пинов!",
21+
"У тебя и так много пинов!",
22+
)
23+
24+
internal fun tooManyPins(): String {
25+
return tooManyPinsMessages.random()
26+
}

0 commit comments

Comments
 (0)