Изменил обработку вебхуков

This commit is contained in:
Struchkov Mark 2023-05-03 18:18:35 +03:00
parent e2dd95e489
commit 332ba4f0f1
Signed by: upagge
GPG Key ID: D3018BE7BA428CA6

View File

@ -23,8 +23,8 @@ import static dev.struchkov.haiti.utils.Inspector.isTrue;
@Path("callback") @Path("callback")
public class WebhookController { public class WebhookController {
public static final String ERROR_ACCESS = "В доступе отказано!"; private static final String ERROR_ACCESS = "В доступе отказано!";
private final String pathKey = "bot"; private static final String PATH_KEY = "bot";
private final String secretToken; private final String secretToken;
private final EventDistributor eventDistributor; private final EventDistributor eventDistributor;
@ -41,10 +41,12 @@ public class WebhookController {
return Uni.createFrom().voidItem() return Uni.createFrom().voidItem()
.invoke(() -> { .invoke(() -> {
log.trace("Получено webhook событие: {}", update); log.trace("Получено webhook событие: {}", update);
isTrue(pathKey.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))
.onFailure().recoverWithNull()
.invoke(() -> log.trace("Сообщили Telegram, что вебхук событие обработано. Идентификатор события: {}", update.getUpdateId())) .invoke(() -> log.trace("Сообщили Telegram, что вебхук событие обработано. Идентификатор события: {}", update.getUpdateId()))
.map(ignored -> Response.ok().build()); .map(ignored -> Response.ok().build());
} }
@ -55,7 +57,7 @@ public class WebhookController {
public Uni<String> testReceived(@PathParam("webhookPath") String botPath, @HeaderParam("X-Telegram-Bot-Api-Secret-Token") String secretTokenFromTelegram) { public Uni<String> testReceived(@PathParam("webhookPath") String botPath, @HeaderParam("X-Telegram-Bot-Api-Secret-Token") String secretTokenFromTelegram) {
return Uni.createFrom().voidItem() return Uni.createFrom().voidItem()
.onItem().invoke(() -> { .onItem().invoke(() -> {
isTrue(pathKey.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));
}) })
.onItem().transform(ignore -> "Hi there " + botPath + "!"); .onItem().transform(ignore -> "Hi there " + botPath + "!");