package com.juick.command; import com.juick.User; import com.juick.server.helpers.TagStats; import com.juick.server.protocol.ProtocolListener; import com.juick.service.TagService; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * @author ma1uta */ @Component @Getter public class ShowTags implements Command { private static final Pattern PATTERN = Pattern.compile("\\*", Pattern.CASE_INSENSITIVE); private final TagService tagService; @Autowired public ShowTags(TagService tagService) { this.tagService = tagService; } @Override public Pattern pattern() { return PATTERN; } @Override public String help() { return "* - Show your tags"; } @Override public String execute(User sender, ProtocolListener protocolListener, String command) { List tags = getTagService().getUserTagStats(sender.getUid()); return "Your tags: (tag - messages)\n" + tags.stream() .map(t -> String.format("\n*%s - %d", t.getTag().getName(), t.getUsageCount())).collect(Collectors.joining()); } }