FreelanceBot
98 строк · 3.3 Кб
1package telegramBot.validation;
2
3import telegramBot.enums.Language;
4import org.springframework.beans.factory.annotation.Autowired;
5import org.springframework.stereotype.Component;
6import org.telegram.telegrambots.meta.api.objects.Update;
7import telegramBot.service.MessageService;
8import telegramBot.service.UserService;
9
10@Component
11public class CommandValidation {
12
13@Autowired
14private UserService userService;
15private final MessageService messageService;
16
17public CommandValidation(MessageService service){
18this.messageService = service;
19}
20
21
22public boolean addCommand(Update update){
23String chatId = update.getMessage().getChatId().toString();
24String subsLanguage = update.getMessage().getText();
25
26if(subsLanguage.isEmpty()){
27this.messageService.sendResponse(chatId, ValidationMessage.EMPTY.getMessage());
28return false;
29}
30
31if(!languageSupports(subsLanguage)){
32this.messageService.sendResponse(chatId, ValidationMessage.NOT_SUPPORTS.getMessage());
33return false;
34}
35
36if(subscriptionExist(subsLanguage, chatId)){
37this.messageService.sendResponse(chatId, ValidationMessage.SUBSCRIPTION_EXIST.getMessage());
38return false;
39}
40
41return true;
42}
43
44private boolean languageSupports(String language){
45return Language.ignoreCaseValueOf(language) != Language.UNKNOWN;
46}
47
48private boolean subscriptionExist(String language, String chatId){
49Language lang = Language.ignoreCaseValueOf(language);
50return userService.getByChatId(chatId).getSubscriptions()
51.stream()
52.anyMatch(s -> s.getLanguage().equals(lang.getName()));
53}
54
55public boolean removeCommand(Update update) {
56String chatId = update.getMessage().getChatId().toString();
57String subLanguage = update.getMessage().getText();
58
59if(subLanguage.isEmpty()){
60this.messageService.sendResponse(chatId, ValidationMessage.EMPTY.getMessage());
61return false;
62}
63
64if(!languageSupports(subLanguage)){
65this.messageService.sendResponse(chatId, ValidationMessage.NOT_SUPPORTS.getMessage());
66return false;
67}
68
69if(!subscriptionExist(subLanguage, chatId)){
70this.messageService.sendResponse(chatId, ValidationMessage.SUBSCRIPTION_NOT_EXIST.getMessage());
71return false;
72}
73
74return true;
75
76}
77public boolean latestCommand(Update update) {
78String chatId = update.getMessage().getChatId().toString();
79String input = update.getMessage().getText().replaceAll("(\\(\\))", "");
80if(input.isEmpty()){
81this.messageService.sendResponse(chatId, ValidationMessage.EMPTY.getMessage());
82return false;
83}
84
85String[] inputs = input.split(",");
86
87if(inputs.length == 1 || !languageSupports(inputs[0].trim())){
88this.messageService.sendResponse(chatId, ValidationMessage.NOT_SUPPORTS.getMessage());
89return false;
90}
91
92if(!subscriptionExist(inputs[0].trim(), chatId)){
93this.messageService.sendResponse(chatId, ValidationMessage.SUBSCRIPTION_NOT_EXIST.getMessage());
94return false;
95}
96return true;
97}
98}
99