diff options
Diffstat (limited to 'juick-commands/src/main/java/com/juick/command/DeleteMessage.java')
-rw-r--r-- | juick-commands/src/main/java/com/juick/command/DeleteMessage.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/juick-commands/src/main/java/com/juick/command/DeleteMessage.java b/juick-commands/src/main/java/com/juick/command/DeleteMessage.java new file mode 100644 index 00000000..ab46a28a --- /dev/null +++ b/juick-commands/src/main/java/com/juick/command/DeleteMessage.java @@ -0,0 +1,47 @@ +package com.juick.command; + +import com.juick.User; +import com.juick.server.protocol.ProtocolListener; +import com.juick.service.MessagesService; +import lombok.Getter; +import org.apache.commons.lang3.math.NumberUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.regex.Pattern; + +/** + * @author ma1uta + */ +@Getter +@Component +public class DeleteMessage extends MultiArgsCommand { + + private static final Pattern PATTERN = Pattern.compile("^d\\s*\\#([0-9]+)$", Pattern.CASE_INSENSITIVE); + + private final MessagesService messagesService; + + @Autowired + public DeleteMessage(MessagesService messagesService) { + this.messagesService = messagesService; + } + + @Override + public Pattern pattern() { + return PATTERN; + } + + @Override + public String help() { + return "D #12345 - delete the message"; + } + + @Override + protected String execute(User sender, ProtocolListener protocolListener, String... arguments) { + int mid = NumberUtils.toInt(arguments[0], 0); + if (getMessagesService().deleteMessage(sender.getUid(), mid)) { + return String.format("Message %s deleted", mid); + } + return "Error"; + } +} |