FreelanceBot
55 строк · 1.8 Кб
1package telegramBot.command;
2
3import org.telegram.telegrambots.meta.api.objects.Update;
4import telegramBot.entity.Subscription;
5import telegramBot.service.MessageService;
6import telegramBot.service.UserService;
7
8import java.util.Comparator;
9import java.util.List;
10
11public class SubscriptionCommand implements Command {
12private static final String[] SUBSCRIPTION_COMMANDS = {
13"Ваши текущие подписки: ", "У Вас нет подписок"
14};
15
16private final MessageService messageService;
17
18private UserService userService;
19
20
21public SubscriptionCommand(MessageService service){
22this.messageService = service;
23}
24
25public SubscriptionCommand setUserService(UserService userService) {
26this.userService = userService;
27return this;
28}
29
30@Override
31public void execute(Update update) {
32String chatId = update.getMessage().getChatId().toString();
33List<Subscription> subscriptions = this.userService.
34getByChatId(chatId).getSubscriptions();
35
36String command = null;
37if(!subscriptions.isEmpty()){
38subscriptions.sort(Comparator.comparingInt(s -> s.getLanguage().length()));
39StringBuilder subs = new StringBuilder();
40for(int i = 0; i < subscriptions.size(); i ++){
41if(i < subscriptions.size() - 1){
42subs.append(subscriptions.get(i).getLanguage()).append(", ");
43}
44else subs.append(subscriptions.get(i).getLanguage());
45}
46
47command = String.format("%s %s", SUBSCRIPTION_COMMANDS[0], subs.toString());
48}
49else {
50command = SUBSCRIPTION_COMMANDS[1];
51}
52messageService.sendResponse(chatId, command);
53}
54
55}
56