-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCallbackHandler.java
40 lines (34 loc) · 1.65 KB
/
CallbackHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package dev.vality.alert.tg.bot.handler;
import dev.vality.alert.tg.bot.constants.MainMenu;
import dev.vality.alert.tg.bot.mapper.MenuCallbackMapper;
import dev.vality.alert.tg.bot.mapper.ParametersCallbackMapper;
import lombok.RequiredArgsConstructor;
import org.apache.thrift.TException;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.objects.Update;
@Component
@RequiredArgsConstructor
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CallbackHandler implements CommonHandler<SendMessage> {
private final MenuCallbackMapper menuCallbackMapper;
private final ParametersCallbackMapper parametersCallbackMapper;
@Override
public boolean filter(Update update) {
return update.hasCallbackQuery();
}
@Override
public SendMessage handle(Update update, long userId) throws TException {
String callbackData = update.getCallbackQuery().getData();
return switch (MainMenu.valueOfCallbackData(callbackData)) {
case CREATE_ALERT -> menuCallbackMapper.createAlertCallback(userId);
case GET_ALL_ALERTS -> menuCallbackMapper.getAllAlertsCallback(userId);
case DELETE_ALERT -> menuCallbackMapper.deleteAlertCallback(userId);
case DELETE_ALL_ALERTS -> menuCallbackMapper.deleteAllAlertsCallback(userId);
case RETURN_TO_MENU -> menuCallbackMapper.returnCallback();
case CONFIGURE_PARAM -> parametersCallbackMapper.mapParametersCallback(callbackData, userId);
};
}
}