diff --git a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToComment.java b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToComment.java index 5f37c89..81e03f1 100644 --- a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToComment.java +++ b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToComment.java @@ -4,6 +4,7 @@ package org.sadtech.bot.vcs.bitbucket.app.service.converter; import org.sadtech.bot.vcs.bitbucket.sdk.domain.CommentJson; import org.sadtech.bot.vcs.bitbucket.sdk.domain.Severity; import org.sadtech.bot.vcs.core.domain.entity.Comment; +import org.sadtech.bot.vcs.core.utils.StringUtils; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @@ -19,7 +20,7 @@ public class CommentJsonToComment implements Converter { comment.setCreateDate(source.getCreatedDate()); comment.setAuthor(source.getAuthor().getName()); comment.setPullRequestId(source.getCustomPullRequestId()); - comment.setMessage(source.getText()); + comment.setMessage(StringUtils.cutOff(source.getText(), 490)); comment.setUrlApi(source.getCustomCommentApiUrl()); comment.setBitbucketVersion(source.getVersion()); comment.setAnswers( diff --git a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToTaskConvert.java b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToTaskConvert.java index 60da80a..4a90373 100644 --- a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToTaskConvert.java +++ b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/CommentJsonToTaskConvert.java @@ -6,6 +6,7 @@ import org.sadtech.bot.vcs.bitbucket.sdk.domain.CommentState; import org.sadtech.bot.vcs.bitbucket.sdk.domain.Severity; import org.sadtech.bot.vcs.core.domain.TaskStatus; import org.sadtech.bot.vcs.core.domain.entity.Task; +import org.sadtech.bot.vcs.core.utils.StringUtils; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @@ -19,7 +20,7 @@ public class CommentJsonToTaskConvert implements Converter { final Task task = new Task(); task.setId(source.getId()); task.setAuthor(source.getAuthor().getName()); - task.setDescription(source.getText()); + task.setDescription(StringUtils.cutOff(source.getText(), 490)); task.setCreateDate(source.getCreatedDate()); task.setBitbucketVersion(source.getVersion()); task.setPullRequestId(source.getCustomPullRequestId()); diff --git a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/PullRequestJsonConverter.java b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/PullRequestJsonConverter.java index 6c6bc7e..ec5e537 100644 --- a/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/PullRequestJsonConverter.java +++ b/bitbucket-app/src/main/java/org/sadtech/bot/vcs/bitbucket/app/service/converter/PullRequestJsonConverter.java @@ -12,6 +12,7 @@ import org.sadtech.bot.vcs.core.domain.PullRequestStatus; import org.sadtech.bot.vcs.core.domain.ReviewerStatus; import org.sadtech.bot.vcs.core.domain.entity.PullRequest; import org.sadtech.bot.vcs.core.domain.entity.Reviewer; +import org.sadtech.bot.vcs.core.utils.StringUtils; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @@ -30,9 +31,9 @@ public class PullRequestJsonConverter implements Converter length ? string.substring(0, length) + "..." : string; - } - return null; - } - public static PullRequestStatus convertPullRequestStatus(PullRequestState state) { switch (state) { case OPEN: diff --git a/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/CommentServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/CommentServiceImpl.java index 5ffee01..f05e680 100644 --- a/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/CommentServiceImpl.java +++ b/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/CommentServiceImpl.java @@ -122,23 +122,25 @@ public class CommentServiceImpl extends AbstractSimpleManagerService newAnswerIds = newComment.getAnswers(); if (!oldAnswerIds.equals(newAnswerIds)) { final Set existsNewAnswersIds = commentRepository.existsById(newAnswerIds); - final List newAnswers = commentRepository.findAllById(existsNewAnswersIds).stream() - .filter(comment -> !oldAnswerIds.contains(comment.getId())) - .collect(Collectors.toList()); - oldComment.getAnswers().clear(); - oldComment.setAnswers(existsNewAnswersIds); - notifyService.send( - AnswerCommentNotify.builder() - .logins(Collections.singleton(newComment.getAuthor())) - .url(oldComment.getUrl()) - .youMessage(newComment.getMessage()) - .answers( - newAnswers.stream() - .map(answerComment -> Answer.of(answerComment.getAuthor(), answerComment.getMessage())) - .collect(Collectors.toList()) - ) - .build() - ); + if (!existsNewAnswersIds.isEmpty()) { + final List newAnswers = commentRepository.findAllById(existsNewAnswersIds).stream() + .filter(comment -> !oldAnswerIds.contains(comment.getId())) + .collect(Collectors.toList()); + oldComment.getAnswers().clear(); + oldComment.setAnswers(existsNewAnswersIds); + notifyService.send( + AnswerCommentNotify.builder() + .logins(Collections.singleton(newComment.getAuthor())) + .url(oldComment.getUrl()) + .youMessage(newComment.getMessage()) + .answers( + newAnswers.stream() + .map(answerComment -> Answer.of(answerComment.getAuthor(), answerComment.getMessage())) + .collect(Collectors.toList()) + ) + .build() + ); + } } } diff --git a/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/TaskServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/TaskServiceImpl.java index c9f7c0e..4ccd900 100644 --- a/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/TaskServiceImpl.java +++ b/bot-core/src/main/java/org/sadtech/bot/vcs/core/service/impl/TaskServiceImpl.java @@ -120,23 +120,25 @@ public class TaskServiceImpl extends AbstractSimpleManagerService im final Set newAnswerIds = task.getAnswers(); if (!oldAnswerIds.equals(newAnswerIds)) { final Set existsNewAnswersIds = commentService.existsById(newAnswerIds); - final List newAnswers = commentService.getAllById(existsNewAnswersIds).stream() - .filter(comment -> !oldAnswerIds.contains(comment.getId())) - .collect(Collectors.toList()); - oldTask.getAnswers().clear(); - oldTask.setAnswers(existsNewAnswersIds); - notifyService.send( - AnswerCommentNotify.builder() - .logins(Collections.singleton(oldTask.getAuthor())) - .url(oldTask.getUrl()) - .youMessage(oldTask.getDescription()) - .answers( - newAnswers.stream() - .map(answerComment -> Answer.of(answerComment.getAuthor(), answerComment.getMessage())) - .collect(Collectors.toList()) - ) - .build() - ); + if (!existsNewAnswersIds.isEmpty()) { + final List newAnswers = commentService.getAllById(existsNewAnswersIds).stream() + .filter(comment -> !oldAnswerIds.contains(comment.getId())) + .collect(Collectors.toList()); + oldTask.getAnswers().clear(); + oldTask.setAnswers(existsNewAnswersIds); + notifyService.send( + AnswerCommentNotify.builder() + .logins(Collections.singleton(oldTask.getAuthor())) + .url(oldTask.getUrl()) + .youMessage(oldTask.getDescription()) + .answers( + newAnswers.stream() + .map(answerComment -> Answer.of(answerComment.getAuthor(), answerComment.getMessage())) + .collect(Collectors.toList()) + ) + .build() + ); + } } } diff --git a/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/Smile.java b/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/Smile.java index f43bac8..8da9305 100644 --- a/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/Smile.java +++ b/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/Smile.java @@ -52,8 +52,4 @@ public enum Smile { return value; } - public static class Constants { - public static final String EMPTY = ""; - } - } diff --git a/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/StringUtils.java b/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/StringUtils.java new file mode 100644 index 0000000..559b39f --- /dev/null +++ b/bot-core/src/main/java/org/sadtech/bot/vcs/core/utils/StringUtils.java @@ -0,0 +1,21 @@ +package org.sadtech.bot.vcs.core.utils; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * // TODO: 29.09.2020 Добавить описание. + * + * @author upagge 29.09.2020 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class StringUtils { + + public static String cutOff(String string, int length) { + if (string != null) { + return string.length() > length ? string.substring(0, length) + "..." : string; + } + return null; + } + +}