From d77ff16de5543b5820ee3b185660a052c5f57a15 Mon Sep 17 00:00:00 2001 From: Anatoliy Sablin Date: Mon, 6 Nov 2017 16:27:11 +0300 Subject: Added rest commands. --- .../main/java/com/juick/command/BlacklistTag.java | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 juick-commands/src/main/java/com/juick/command/BlacklistTag.java (limited to 'juick-commands/src/main/java/com/juick/command/BlacklistTag.java') diff --git a/juick-commands/src/main/java/com/juick/command/BlacklistTag.java b/juick-commands/src/main/java/com/juick/command/BlacklistTag.java new file mode 100644 index 00000000..2ce455dc --- /dev/null +++ b/juick-commands/src/main/java/com/juick/command/BlacklistTag.java @@ -0,0 +1,61 @@ +package com.juick.command; + +import com.juick.Tag; +import com.juick.User; +import com.juick.server.protocol.ProtocolListener; +import com.juick.service.PrivacyQueriesService; +import com.juick.service.TagService; +import com.juick.service.UserService; +import lombok.Getter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.regex.Pattern; + +/** + * @author ma1uta + */ +@Component +@Getter +public class BlacklistTag extends MultiArgsCommand { + + private static final Pattern PATTERN = Pattern.compile("^bl\\s\\*(\\S+)$", Pattern.CASE_INSENSITIVE); + + private final UserService userService; + private final TagService tagService; + private final PrivacyQueriesService privacyQueriesService; + + @Autowired + public BlacklistTag(UserService userService, TagService tagService, PrivacyQueriesService privacyQueriesService) { + this.userService = userService; + this.tagService = tagService; + this.privacyQueriesService = privacyQueriesService; + } + + @Override + public Pattern pattern() { + return PATTERN; + } + + @Override + public String help() { + return "BL *tag - add *tag to your blacklist"; + } + + @Override + protected String execute(User sender, ProtocolListener protocolListener, String... arguments) { + User blUser = getUserService().getUserByName(arguments[0]); + if (blUser != null) { + Tag tag = getTagService().getTag(arguments[0], false); + if (tag != null) { + PrivacyQueriesService.PrivacyResult result = getPrivacyQueriesService().blacklistTag(sender, tag); + if (result == PrivacyQueriesService.PrivacyResult.Added) { + return "Tag added to your blacklist"; + } else { + return "Tag removed from your blacklist"; + } + } + } + return "Tag not found"; + } +} -- cgit v1.2.3