FreelanceBot

Форк
0
/
SubscriptionCommand.java 
55 строк · 1.8 Кб
1
package telegramBot.command;
2

3
import org.telegram.telegrambots.meta.api.objects.Update;
4
import telegramBot.entity.Subscription;
5
import telegramBot.service.MessageService;
6
import telegramBot.service.UserService;
7

8
import java.util.Comparator;
9
import java.util.List;
10

11
public class SubscriptionCommand implements Command {
12
    private static final String[] SUBSCRIPTION_COMMANDS = {
13
            "Ваши текущие подписки: ", "У Вас нет подписок"
14
    };
15

16
    private final MessageService messageService;
17

18
    private UserService userService;
19

20

21
    public SubscriptionCommand(MessageService service){
22
        this.messageService = service;
23
    }
24

25
    public SubscriptionCommand setUserService(UserService userService) {
26
        this.userService = userService;
27
        return this;
28
    }
29

30
    @Override
31
    public void execute(Update update) {
32
        String chatId = update.getMessage().getChatId().toString();
33
        List<Subscription> subscriptions = this.userService.
34
                getByChatId(chatId).getSubscriptions();
35

36
        String command = null;
37
        if(!subscriptions.isEmpty()){
38
            subscriptions.sort(Comparator.comparingInt(s -> s.getLanguage().length()));
39
            StringBuilder subs = new StringBuilder();
40
            for(int i = 0; i < subscriptions.size(); i ++){
41
                if(i < subscriptions.size() - 1){
42
                    subs.append(subscriptions.get(i).getLanguage()).append(", ");
43
                }
44
                else subs.append(subscriptions.get(i).getLanguage());
45
            }
46

47
            command = String.format("%s %s", SUBSCRIPTION_COMMANDS[0], subs.toString());
48
        }
49
        else {
50
            command = SUBSCRIPTION_COMMANDS[1];
51
        }
52
        messageService.sendResponse(chatId, command);
53
    }
54

55
}
56

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.