Добавил моментальный ответ в 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.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 -->
|
||||
<telegrambots.ver>6.5.0</telegrambots.ver>
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@ -251,9 +251,9 @@
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
||||
<artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
|
||||
<version>2.0.1.Final</version>
|
||||
<groupId>jakarta.platform</groupId>
|
||||
<artifactId>jakarta.jakartaee-web-api</artifactId>
|
||||
<version>10.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
@ -25,9 +25,10 @@
|
||||
<artifactId>smallrye-mutiny-vertx-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
||||
<artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
|
||||
<groupId>jakarta.platform</groupId>
|
||||
<artifactId>jakarta.jakartaee-web-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.telegram</groupId>
|
||||
<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.quarkus.context.service.EventDistributor;
|
||||
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 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.utils.Inspector.isTrue;
|
||||
|
||||
@ -38,17 +37,20 @@ public class WebhookController {
|
||||
@Consumes(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) {
|
||||
return Uni.createFrom().voidItem()
|
||||
Uni.createFrom().voidItem()
|
||||
.invoke(() -> {
|
||||
log.trace("Получено webhook событие: {}", update);
|
||||
isTrue(PATH_KEY.equals(botPath), accessException(ERROR_ACCESS));
|
||||
isTrue(secretToken.equals(secretTokenFromTelegram), accessException(ERROR_ACCESS));
|
||||
})
|
||||
.call(() -> eventDistributor.processing(update))
|
||||
.onFailure().invoke(th -> log.error("При обработке webhook события произошла ошибка. Идентификатор события: " + update.getUpdateId(), th))
|
||||
.onFailure().recoverWithNull()
|
||||
.invoke(() -> log.trace("Сообщили Telegram, что вебхук событие обработано. Идентификатор события: {}", update.getUpdateId()))
|
||||
.map(ignored -> Response.ok().build());
|
||||
.subscribe().with(
|
||||
v -> log.trace("Webhook событие обработано. Идентификатор: {}", update.getUpdateId()),
|
||||
fail -> log.error("При обработке webhook события произошла ошибка. Идентификатор события: " + update.getUpdateId(), fail)
|
||||
);
|
||||
|
||||
return Uni.createFrom().item(Response.ok().build())
|
||||
.invoke(() -> log.trace("Сообщили Telegram, что вебхук событие принято. Идентификатор события: {}", update.getUpdateId()));
|
||||
}
|
||||
|
||||
@GET
|
||||
|
Loading…
Reference in New Issue
Block a user