diff --git a/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java b/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java index 1345258..1cc6246 100644 --- a/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java +++ b/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java @@ -38,10 +38,6 @@ public class BoxAnswer { return keyboard; } - public void setKeyboard(KeyBoard keyboard) { - this.keyboard = keyboard; - } - public GeoCoordinate getCoordinates() { return coordinates; } @@ -50,10 +46,6 @@ public class BoxAnswer { return stickerId; } - public void setStickerId(Integer stickerId) { - this.stickerId = stickerId; - } - public BoxAnswer prototype() { return new BoxAnswer(this); } diff --git a/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java b/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java index 123619a..9ca069b 100644 --- a/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java +++ b/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java @@ -1,41 +1,9 @@ package org.sadtech.bot.core.domain.content; -import java.util.Objects; - -public class BoardComment extends Content { - - private Integer topicId; +public class BoardComment extends Comment { public BoardComment() { type = ContentType.BOARD_COMMENT; } - public Integer getTopicId() { - return topicId; - } - - public void setTopicId(Integer topicId) { - this.topicId = topicId; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof BoardComment)) return false; - if (!super.equals(o)) return false; - BoardComment that = (BoardComment) o; - return Objects.equals(topicId, that.topicId); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), topicId); - } - - @Override - public String toString() { - return "BoardComment{" + - "topicId=" + topicId + - "} " + super.toString(); - } } diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Comment.java b/src/main/java/org/sadtech/bot/core/domain/content/Comment.java new file mode 100644 index 0000000..ca32e31 --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/domain/content/Comment.java @@ -0,0 +1,30 @@ +package org.sadtech.bot.core.domain.content; + +import java.util.Objects; + +public abstract class Comment extends Message { + + private Integer contentId; + + public Integer getContentId() { + return contentId; + } + + public void setContentId(Integer contentId) { + this.contentId = contentId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Comment)) return false; + if (!super.equals(o)) return false; + Comment that = (Comment) o; + return Objects.equals(contentId, that.contentId); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), contentId); + } +} diff --git a/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java b/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java index e6a9443..89e1d4e 100644 --- a/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java +++ b/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java @@ -2,6 +2,6 @@ package org.sadtech.bot.core.domain.content; public enum ContentType { - MAIL, BOARD_COMMENT + MAIL, BOARD_COMMENT, EMPTY } diff --git a/src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java b/src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java similarity index 58% rename from src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java rename to src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java index 2400a1e..16498c3 100644 --- a/src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java +++ b/src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java @@ -2,7 +2,11 @@ package org.sadtech.bot.core.domain.content; import org.sadtech.bot.core.exception.AppBotException; -public class EmptyContent extends Content { +public class EmptyMessage extends Message { + + public EmptyMessage() { + type = ContentType.EMPTY; + } @Override public String getMessage() { @@ -11,6 +15,6 @@ public class EmptyContent extends Content { @Override public void setMessage(String message) { - throw new AppBotException(0, "EmptyContent no setMessage"); + throw new AppBotException(0, "EmptyMessage no setMessage"); } } diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Mail.java b/src/main/java/org/sadtech/bot/core/domain/content/Mail.java index 6fa86d1..f09e4a3 100644 --- a/src/main/java/org/sadtech/bot/core/domain/content/Mail.java +++ b/src/main/java/org/sadtech/bot/core/domain/content/Mail.java @@ -5,11 +5,10 @@ import org.sadtech.bot.core.domain.content.attachment.Attachment; import java.util.List; import java.util.Objects; -public class Mail extends Content { +public class Mail extends Message { private List attachments; - public Mail() { type = ContentType.MAIL; } @@ -32,6 +31,7 @@ public class Mail extends Content { this.attachments = attachments; } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -50,6 +50,7 @@ public class Mail extends Content { public String toString() { return "Mail{" + "attachments=" + attachments + - "} " + super.toString(); + ", type=" + type + + '}'; } } diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Content.java b/src/main/java/org/sadtech/bot/core/domain/content/Message.java similarity index 77% rename from src/main/java/org/sadtech/bot/core/domain/content/Content.java rename to src/main/java/org/sadtech/bot/core/domain/content/Message.java index 0ca99f2..ecaf204 100644 --- a/src/main/java/org/sadtech/bot/core/domain/content/Content.java +++ b/src/main/java/org/sadtech/bot/core/domain/content/Message.java @@ -3,7 +3,7 @@ package org.sadtech.bot.core.domain.content; import java.time.LocalDateTime; import java.util.Objects; -public abstract class Content { +public abstract class Message { private Integer id; protected ContentType type; @@ -11,11 +11,11 @@ public abstract class Content { private Integer personId; private String message; - public Content() { + public Message() { } - public Content(Content source) { + public Message(Message source) { this.personId = source.getPersonId(); this.message = source.getMessage(); this.createDate = source.getCreateDate(); @@ -66,13 +66,13 @@ public abstract class Content { @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof Content)) return false; - Content content = (Content) o; - return Objects.equals(id, content.id) && - type == content.type && - Objects.equals(createDate, content.createDate) && - Objects.equals(personId, content.personId) && - Objects.equals(message, content.message); + if (!(o instanceof Message)) return false; + Message message = (Message) o; + return Objects.equals(id, message.id) && + type == message.type && + Objects.equals(createDate, message.createDate) && + Objects.equals(personId, message.personId) && + Objects.equals(this.message, message.message); } @Override @@ -82,7 +82,7 @@ public abstract class Content { @Override public String toString() { - return "Content{" + + return "Message{" + "id=" + id + ", type=" + type + ", createDate=" + createDate + diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java new file mode 100644 index 0000000..5a253e4 --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java @@ -0,0 +1,7 @@ +package org.sadtech.bot.core.domain.keyboard; + +public enum ButtonType { + + TEXT, ACCOUNT + +} diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java index e5c0d80..b783a13 100644 --- a/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java +++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java @@ -2,80 +2,38 @@ package org.sadtech.bot.core.domain.keyboard; import java.util.Objects; -public class KeyBoardButton { +public abstract class KeyBoardButton { - private String payload; - private String label; - private ButtonColor color = ButtonColor.DEFAULT; - - private KeyBoardButton() { - - } + protected String payload; + protected ButtonType type = ButtonType.TEXT; public String getPayload() { return payload; } - public String getLabel() { - return label; + public void setPayload(String payload) { + this.payload = payload; } - public ButtonColor getColor() { - return color; + public ButtonType getType() { + return type; } - public static Builder builder() { - return new KeyBoardButton().new Builder(); - } - - public class Builder { - - private Builder() { - - } - - public Builder color(ButtonColor color) { - KeyBoardButton.this.color = color; - return this; - } - - public Builder label(String label) { - KeyBoardButton.this.label = label; - return this; - } - - public Builder payload(String payload) { - KeyBoardButton.this.payload = payload; - return this; - } - - public KeyBoardButton build() { - return KeyBoardButton.this; - } - + public void setType(ButtonType type) { + this.type = type; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof KeyBoardButton)) return false; - KeyBoardButton button = (KeyBoardButton) o; - return Objects.equals(payload, button.payload) && - Objects.equals(label, button.label) && - color == button.color; + KeyBoardButton that = (KeyBoardButton) o; + return Objects.equals(payload, that.payload) && + type == that.type; } @Override public int hashCode() { - return Objects.hash(payload, label, color); - } - - @Override - public String toString() { - return "KeyBoardButton{" + - "payload='" + payload + '\'' + - ", label='" + label + '\'' + - ", color=" + color + - '}'; + return Objects.hash(payload, type); } } diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java new file mode 100644 index 0000000..49fce62 --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java @@ -0,0 +1,75 @@ +package org.sadtech.bot.core.domain.keyboard.button; + +import org.sadtech.bot.core.domain.keyboard.ButtonType; +import org.sadtech.bot.core.domain.keyboard.KeyBoardButton; + +import java.util.Objects; + +public class KeyBoardButtonAccount extends KeyBoardButton { + + private Integer amount; + private Integer accountId; + private String description; + + private KeyBoardButtonAccount() { + type = ButtonType.ACCOUNT; + } + + public Integer getAmount() { + return amount; + } + + public String getDescription() { + return description; + } + + public Integer getAccountId() { + return accountId; + } + + public static Builder builder() { + return new KeyBoardButtonAccount().new Builder(); + } + + public class Builder { + private Builder() { + + } + + public Builder amount(Integer amount) { + KeyBoardButtonAccount.this.amount = amount; + return this; + } + + public Builder description(String description) { + KeyBoardButtonAccount.this.description = description; + return this; + } + + public Builder accountId(Integer accountId) { + KeyBoardButtonAccount.this.accountId = accountId; + return this; + } + + + public KeyBoardButtonAccount build() { + return KeyBoardButtonAccount.this; + } + + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof KeyBoardButtonAccount)) return false; + if (!super.equals(o)) return false; + KeyBoardButtonAccount that = (KeyBoardButtonAccount) o; + return Objects.equals(amount, that.amount) && + Objects.equals(description, that.description); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), amount, description); + } +} diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java new file mode 100644 index 0000000..ae00f2c --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java @@ -0,0 +1,78 @@ +package org.sadtech.bot.core.domain.keyboard.button; + +import org.sadtech.bot.core.domain.keyboard.ButtonColor; +import org.sadtech.bot.core.domain.keyboard.ButtonType; +import org.sadtech.bot.core.domain.keyboard.KeyBoardButton; + +import java.util.Objects; + +public class KeyBoardButtonText extends KeyBoardButton { + + private String label; + private ButtonColor color = ButtonColor.DEFAULT; + + public KeyBoardButtonText() { + type = ButtonType.TEXT; + } + + public ButtonColor getColor() { + return color; + } + + public String getLabel() { + return label; + } + + public static Builder builder() { + return new KeyBoardButtonText().new Builder(); + } + + public class Builder { + private Builder() { + + } + + public Builder label(String label) { + KeyBoardButtonText.this.label = label; + return this; + } + + public Builder color(ButtonColor color) { + KeyBoardButtonText.this.color = color; + return this; + } + + public Builder payload(String payload) { + KeyBoardButtonText.this.payload = payload; + return this; + } + + public KeyBoardButtonText build() { + return KeyBoardButtonText.this; + } + + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof KeyBoardButtonText)) return false; + if (!super.equals(o)) return false; + KeyBoardButtonText that = (KeyBoardButtonText) o; + return Objects.equals(label, that.label) && + color == that.color; + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), label, color); + } + + @Override + public String toString() { + return "KeyBoardButtonText{" + + "label='" + label + '\'' + + ", color=" + color + + '}'; + } +} diff --git a/src/main/java/org/sadtech/bot/core/domain/money/Account.java b/src/main/java/org/sadtech/bot/core/domain/money/Account.java index 836f802..bb7c996 100644 --- a/src/main/java/org/sadtech/bot/core/domain/money/Account.java +++ b/src/main/java/org/sadtech/bot/core/domain/money/Account.java @@ -5,7 +5,7 @@ import java.util.Objects; public class Account { private Integer id; - private Double totalSum; + private Integer totalSum; private Integer belongsPersonId; private Integer extinguishedPersonId; private String description; @@ -19,11 +19,11 @@ public class Account { this.id = id; } - public Double getTotalSum() { + public Integer getTotalSum() { return totalSum; } - public void setTotalSum(Double totalSum) { + public void setTotalSum(Integer totalSum) { this.totalSum = totalSum; } diff --git a/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java b/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java new file mode 100644 index 0000000..0691440 --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java @@ -0,0 +1,9 @@ +package org.sadtech.bot.core.exception; + +public class TimerSettingExceprion extends AppBotException { + + public TimerSettingExceprion(String message) { + super(54, message); + } + +} diff --git a/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java b/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java index 91a800a..bc78dfb 100644 --- a/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java +++ b/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java @@ -1,11 +1,11 @@ package org.sadtech.bot.core.repository; -import org.sadtech.bot.core.domain.content.Content; +import org.sadtech.bot.core.domain.content.Message; import java.time.LocalDateTime; import java.util.List; -public interface ContentRepository { +public interface ContentRepository { Integer add(T content); diff --git a/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java b/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java index a5fa3de..abc2fae 100644 --- a/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java +++ b/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java @@ -43,6 +43,6 @@ public class AccountRepositoryMap implements AccountRepository { } private boolean check(Integer id) { - return saveMap.containsKey(id); + return !saveMap.containsKey(id); } } diff --git a/src/main/java/org/sadtech/bot/core/service/AccountService.java b/src/main/java/org/sadtech/bot/core/service/AccountService.java index 4a1bae7..2c0cd62 100644 --- a/src/main/java/org/sadtech/bot/core/service/AccountService.java +++ b/src/main/java/org/sadtech/bot/core/service/AccountService.java @@ -6,7 +6,7 @@ public interface AccountService { Integer add(Account account); - Boolean pay(Integer accountId, Integer extinguishedPersonId, Double sum); + Boolean pay(Integer accountId, Integer extinguishedPersonId, Integer sum); Boolean paymentVerification(Integer accountId); diff --git a/src/main/java/org/sadtech/bot/core/service/ContentService.java b/src/main/java/org/sadtech/bot/core/service/ContentService.java index 92ccab9..6fdf9e7 100644 --- a/src/main/java/org/sadtech/bot/core/service/ContentService.java +++ b/src/main/java/org/sadtech/bot/core/service/ContentService.java @@ -1,11 +1,11 @@ package org.sadtech.bot.core.service; -import org.sadtech.bot.core.domain.content.Content; +import org.sadtech.bot.core.domain.content.Message; import java.time.LocalDateTime; import java.util.List; -public interface ContentService { +public interface ContentService { void add(T event); diff --git a/src/main/java/org/sadtech/bot/core/service/Filter.java b/src/main/java/org/sadtech/bot/core/service/Filter.java index 4da035f..9662f2e 100644 --- a/src/main/java/org/sadtech/bot/core/service/Filter.java +++ b/src/main/java/org/sadtech/bot/core/service/Filter.java @@ -1,9 +1,9 @@ package org.sadtech.bot.core.service; -import org.sadtech.bot.core.domain.content.Content; +import org.sadtech.bot.core.domain.content.Message; @FunctionalInterface -public interface Filter { +public interface Filter { void processing(T content); diff --git a/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java b/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java index e13d53c..bc9a39a 100644 --- a/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java +++ b/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java @@ -21,7 +21,7 @@ public class AccountServiceImpl implements AccountService { } @Override - public Boolean pay(Integer accountId, Integer extinguishedPersonId, Double sum) { + public Boolean pay(Integer accountId, Integer extinguishedPersonId, Integer sum) { Account account = accountRepository.findById(accountId); if (validStatus(account.getAccountStatus())) { if (account.getTotalSum().equals(sum)) { diff --git a/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java b/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java new file mode 100644 index 0000000..942de5b --- /dev/null +++ b/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java @@ -0,0 +1,26 @@ +package org.sadtech.bot.core.service.sender; + +import org.sadtech.bot.core.domain.BoxAnswer; +import org.sadtech.bot.core.domain.content.Comment; +import org.sadtech.bot.core.domain.content.Message; + +public class SendBox { + + private SendBox() { + + } + + public static void sent(Message message, BoxAnswer boxAnswer, Sent sent) { + switch (message.getType()) { + case BOARD_COMMENT: + sent.send(((Comment) message).getContentId(), message.getPersonId(), boxAnswer); + break; + case MAIL: + sent.send(message.getPersonId(), boxAnswer); + break; + default: + sent.send(message.getPersonId(), boxAnswer); + } + } + +} diff --git a/src/main/java/org/sadtech/bot/core/service/sender/SenderBox.java b/src/main/java/org/sadtech/bot/core/service/sender/SenderBox.java deleted file mode 100644 index a5a9769..0000000 --- a/src/main/java/org/sadtech/bot/core/service/sender/SenderBox.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.sadtech.bot.core.service.sender; - -import org.sadtech.bot.core.domain.BoxAnswer; -import org.sadtech.bot.core.domain.content.BoardComment; -import org.sadtech.bot.core.domain.content.Content; -import org.sadtech.bot.core.exception.MailSendException; - -public class SenderBox { - - private SenderBox() { - throw new IllegalStateException("Utility Class"); - } - - public static void sent(Sent sent, Content content, BoxAnswer boxAnswer) { - switch (content.getType()) { - case MAIL: - sent.send(content.getPersonId(), boxAnswer); - break; - case BOARD_COMMENT: - sent.send(((BoardComment) content).getTopicId(), content.getPersonId(), boxAnswer); - break; - default: - throw new MailSendException(); - } - } - -} diff --git a/src/main/java/org/sadtech/bot/core/utils/Contents.java b/src/main/java/org/sadtech/bot/core/utils/Contents.java index 9b417b1..5f674d0 100644 --- a/src/main/java/org/sadtech/bot/core/utils/Contents.java +++ b/src/main/java/org/sadtech/bot/core/utils/Contents.java @@ -1,6 +1,6 @@ package org.sadtech.bot.core.utils; -import org.sadtech.bot.core.domain.content.EmptyContent; +import org.sadtech.bot.core.domain.content.EmptyMessage; public class Contents { @@ -8,7 +8,7 @@ public class Contents { throw new IllegalStateException("Utility class"); } - public static final EmptyContent EMPTY_CONTENT = new EmptyContent(); + public static final EmptyMessage EMPTY_CONTENT = new EmptyMessage(); } diff --git a/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java b/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java index cb878f5..d5cb42d 100644 --- a/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java +++ b/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java @@ -4,6 +4,7 @@ import org.sadtech.bot.core.domain.keyboard.ButtonColor; import org.sadtech.bot.core.domain.keyboard.KeyBoard; import org.sadtech.bot.core.domain.keyboard.KeyBoardButton; import org.sadtech.bot.core.domain.keyboard.KeyBoardLine; +import org.sadtech.bot.core.domain.keyboard.button.KeyBoardButtonText; import java.util.List; @@ -14,8 +15,8 @@ public class KeyBoards { } public static KeyBoard keyBoardYesNo() { - KeyBoardButton yesButton = KeyBoardButton.builder().color(ButtonColor.POSITIVE).label("Да").payload("{\"button\": \"yes\"}").build(); - KeyBoardButton noButton = KeyBoardButton.builder().color(ButtonColor.NEGATIVE).label("Нет").payload("{\"button\": \"no\"}").build(); + KeyBoardButton yesButton = KeyBoardButtonText.builder().color(ButtonColor.POSITIVE).label("Да").payload("{\"button\": \"yes\"}").build(); + KeyBoardButton noButton = KeyBoardButtonText.builder().color(ButtonColor.NEGATIVE).label("Нет").payload("{\"button\": \"no\"}").build(); KeyBoardLine keyBoardLine = KeyBoardLine.builder().buttonKeyBoard(yesButton).buttonKeyBoard(noButton).build(); return KeyBoard.builder().lineKeyBoard(keyBoardLine).oneTime(true).build(); } @@ -23,12 +24,39 @@ public class KeyBoards { public static KeyBoard verticalMenuString(List labelButtons) { KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true); for (String labelButton : labelButtons) { - KeyBoardButton keyBoardButton = KeyBoardButton.builder().label(labelButton).payload("{\"button\": \"" + labelButton + "\"}").build(); + KeyBoardButton keyBoardButton = KeyBoardButtonText.builder().label(labelButton).payload("{\"button\": \"" + labelButton + "\"}").build(); keyBoard.lineKeyBoard(KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build()); } return keyBoard.build(); } + public static KeyBoard verticalMenuString(String... labelButton) { + KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true); + for (String label : labelButton) { + KeyBoardButton keyBoardButton = KeyBoardButtonText.builder().label(label).payload("{\"button\": \"" + label + "\"}").build(); + keyBoard.lineKeyBoard(KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build()); + } + return keyBoard.build(); + } + + public static KeyBoard verticalDuoMenuString(String... labelButton) { + KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true); + boolean flag = true; + KeyBoardLine.Builder keyBoardLine = KeyBoardLine.builder(); + for (String label : labelButton) { + if (flag) { + keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build()); + flag = false; + } else { + keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build()); + keyBoard.lineKeyBoard(keyBoardLine.build()); + keyBoardLine = KeyBoardLine.builder(); + flag = true; + } + } + return keyBoard.build(); + } + public static KeyBoard verticalMenuButton(List keyBoardButtons) { KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true); for (KeyBoardButton keyBoardButton : keyBoardButtons) { @@ -36,4 +64,9 @@ public class KeyBoards { } return keyBoard.build(); } + + public static KeyBoard singelton(KeyBoardButton keyBoardButton) { + KeyBoardLine line = KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build(); + return KeyBoard.builder().lineKeyBoard(line).build(); + } }