Добавил моментальный ответ в WebhookController
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
796519cb1f
commit
f7c6a9099b
10
pom.xml
10
pom.xml
@ -38,13 +38,13 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
|
||||||
<godfather.core.ver>0.0.66</godfather.core.ver>
|
<godfather.core.ver>0.0.67-SNAPSHOT</godfather.core.ver>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.telegram/telegrambots -->
|
<!-- https://mvnrepository.com/artifact/org.telegram/telegrambots -->
|
||||||
<telegrambots.ver>6.5.0</telegrambots.ver>
|
<telegrambots.ver>6.5.0</telegrambots.ver>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/io.smallrye.reactive/smallrye-mutiny-vertx-core -->
|
<!-- https://mvnrepository.com/artifact/io.smallrye.reactive/smallrye-mutiny-vertx-core -->
|
||||||
<smallrye.mutiny.vertx.core.version>2.30.1</smallrye.mutiny.vertx.core.version>
|
<smallrye.mutiny.vertx.core.version>3.3.0</smallrye.mutiny.vertx.core.version>
|
||||||
|
|
||||||
<haiti.version>2.7.2</haiti.version>
|
<haiti.version>2.7.2</haiti.version>
|
||||||
|
|
||||||
@ -251,9 +251,9 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
|
<artifactId>jakarta.jakartaee-web-api</artifactId>
|
||||||
<version>2.0.1.Final</version>
|
<version>10.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -25,9 +25,10 @@
|
|||||||
<artifactId>smallrye-mutiny-vertx-core</artifactId>
|
<artifactId>smallrye-mutiny-vertx-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
|
<artifactId>jakarta.jakartaee-web-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.telegram</groupId>
|
<groupId>org.telegram</groupId>
|
||||||
<artifactId>telegrambots-meta</artifactId>
|
<artifactId>telegrambots-meta</artifactId>
|
||||||
|
@ -3,19 +3,18 @@ package dev.struchkov.godfather.telegram.webhook;
|
|||||||
import dev.struchkov.godfather.telegram.domain.config.TelegramBotConfig;
|
import dev.struchkov.godfather.telegram.domain.config.TelegramBotConfig;
|
||||||
import dev.struchkov.godfather.telegram.quarkus.context.service.EventDistributor;
|
import dev.struchkov.godfather.telegram.quarkus.context.service.EventDistributor;
|
||||||
import io.smallrye.mutiny.Uni;
|
import io.smallrye.mutiny.Uni;
|
||||||
|
import jakarta.ws.rs.Consumes;
|
||||||
|
import jakarta.ws.rs.GET;
|
||||||
|
import jakarta.ws.rs.HeaderParam;
|
||||||
|
import jakarta.ws.rs.POST;
|
||||||
|
import jakarta.ws.rs.Path;
|
||||||
|
import jakarta.ws.rs.PathParam;
|
||||||
|
import jakarta.ws.rs.Produces;
|
||||||
|
import jakarta.ws.rs.core.MediaType;
|
||||||
|
import jakarta.ws.rs.core.Response;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.telegram.telegrambots.meta.api.objects.Update;
|
import org.telegram.telegrambots.meta.api.objects.Update;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.HeaderParam;
|
|
||||||
import javax.ws.rs.POST;
|
|
||||||
import javax.ws.rs.Path;
|
|
||||||
import javax.ws.rs.PathParam;
|
|
||||||
import javax.ws.rs.Produces;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
|
||||||
import javax.ws.rs.core.Response;
|
|
||||||
|
|
||||||
import static dev.struchkov.haiti.context.exception.AccessException.accessException;
|
import static dev.struchkov.haiti.context.exception.AccessException.accessException;
|
||||||
import static dev.struchkov.haiti.utils.Inspector.isTrue;
|
import static dev.struchkov.haiti.utils.Inspector.isTrue;
|
||||||
|
|
||||||
@ -38,17 +37,20 @@ public class WebhookController {
|
|||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
public Uni<Response> updateReceived(@PathParam("webhookPath") String botPath, @HeaderParam("X-Telegram-Bot-Api-Secret-Token") String secretTokenFromTelegram, Update update) {
|
public Uni<Response> updateReceived(@PathParam("webhookPath") String botPath, @HeaderParam("X-Telegram-Bot-Api-Secret-Token") String secretTokenFromTelegram, Update update) {
|
||||||
return Uni.createFrom().voidItem()
|
Uni.createFrom().voidItem()
|
||||||
.invoke(() -> {
|
.invoke(() -> {
|
||||||
log.trace("Получено webhook событие: {}", update);
|
log.trace("Получено webhook событие: {}", update);
|
||||||
isTrue(PATH_KEY.equals(botPath), accessException(ERROR_ACCESS));
|
isTrue(PATH_KEY.equals(botPath), accessException(ERROR_ACCESS));
|
||||||
isTrue(secretToken.equals(secretTokenFromTelegram), accessException(ERROR_ACCESS));
|
isTrue(secretToken.equals(secretTokenFromTelegram), accessException(ERROR_ACCESS));
|
||||||
})
|
})
|
||||||
.call(() -> eventDistributor.processing(update))
|
.call(() -> eventDistributor.processing(update))
|
||||||
.onFailure().invoke(th -> log.error("При обработке webhook события произошла ошибка. Идентификатор события: " + update.getUpdateId(), th))
|
.subscribe().with(
|
||||||
.onFailure().recoverWithNull()
|
v -> log.trace("Webhook событие обработано. Идентификатор: {}", update.getUpdateId()),
|
||||||
.invoke(() -> log.trace("Сообщили Telegram, что вебхук событие обработано. Идентификатор события: {}", update.getUpdateId()))
|
fail -> log.error("При обработке webhook события произошла ошибка. Идентификатор события: " + update.getUpdateId(), fail)
|
||||||
.map(ignored -> Response.ok().build());
|
);
|
||||||
|
|
||||||
|
return Uni.createFrom().item(Response.ok().build())
|
||||||
|
.invoke(() -> log.trace("Сообщили Telegram, что вебхук событие принято. Идентификатор события: {}", update.getUpdateId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
Loading…
Reference in New Issue
Block a user