Skip to content
This repository was archived by the owner on Feb 13, 2020. It is now read-only.

Commit

Permalink
Add project status and description when printing project help
Browse files Browse the repository at this point in the history
  • Loading branch information
ikikko committed Feb 11, 2015
1 parent bf24a39 commit 6657649
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@

public class TypetalkMessage {

private final Emoji emoji;
public static final String CODE_SEPARATOR = "```";

private final Emoji emoji;
private final String message;

public Emoji getEmoji() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ public void setEmoji(Emoji emoji) {
this.emoji = emoji;
}

public boolean isEmojiSet() {
return emoji != null;
}

private AbstractProject project;

public AbstractProject getProject() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
import org.jenkinsci.plugins.typetalk.support.Emoji;
import org.jenkinsci.plugins.typetalk.support.ResultSupport;
import org.jenkinsci.plugins.typetalk.support.TypetalkMessage;
import org.jenkinsci.plugins.typetalk.webhookaction.ResponseParameter;
import org.jenkinsci.plugins.typetalk.webhookaction.WebhookExecutor;
import org.jenkinsci.plugins.typetalk.webhookaction.WebhookRequest;
Expand Down Expand Up @@ -41,7 +43,9 @@ public void execute() {
}

responseParameter.setDescription("Command [ help ] is executed");
responseParameter.setEmoji(Emoji.BOOK);
if (!responseParameter.isEmojiSet()) {
responseParameter.setEmoji(Emoji.BOOK);
}

output(responseParameter);
}
Expand Down Expand Up @@ -70,28 +74,28 @@ private ResponseParameter createResponseParameter() {
private ResponseParameter getDefaultResponseParameter() {
List<String> messages = new ArrayList<>();
messages.add("Usage");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(botUser + " build <project> (<key=value>)");
messages.add(botUser + " list (<regexp filter>)");
messages.add(botUser + " help (<sub command>)");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);

return new ResponseParameter(ResponseParameter.flatMessages(messages));
}

private ResponseParameter getBuildResponseParameter() {
List<String> messages = new ArrayList<>();
messages.add("Usage");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(botUser + " build <project> (<key=value>)");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(Emoji.BOOK.getSymbol() + " Sample");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(botUser + " build helloWorldProject | build without parameters");
messages.add(botUser + " build helloWorldProject 1.0.0 | build with only single parameter");
messages.add(botUser + " build helloWorldProject version=1.0.0 | build with single parameter");
messages.add(botUser + " build helloWorldProject version=1.0.0 env=stage | build with multiple parameters");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);

return new ResponseParameter(ResponseParameter.flatMessages(messages));
}
Expand All @@ -105,10 +109,20 @@ private ResponseParameter getProjectBuildResponseParameter(String p) {
AbstractProject project = ((AbstractProject) item);
ParametersDefinitionProperty property = (ParametersDefinitionProperty) project.getProperty(ParametersDefinitionProperty.class);

// usage
// description
List<String> messages = new ArrayList<>();
messages.add("Usage");
messages.add("```");
messages.add(project.getName());
if (StringUtils.isBlank(project.getDescription())) {
messages.add("");
} else {
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(project.getDescription());
messages.add(TypetalkMessage.CODE_SEPARATOR);
}

// usage
messages.add(Emoji.BOOK.getSymbol() + " Usage");
messages.add(TypetalkMessage.CODE_SEPARATOR);
String option;
if (property == null) {
option = "";
Expand All @@ -118,12 +132,12 @@ private ResponseParameter getProjectBuildResponseParameter(String p) {
option = " <key=value>";
}
messages.add(botUser + " build " + p + option);
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);

// parameter ( if defined )
if (property != null) {
messages.add(Emoji.BOOK.getSymbol() + " Parameters");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);

int maxParameterLength = 0;
for (ParameterDefinition pd : property.getParameterDefinitions()) {
Expand All @@ -135,10 +149,11 @@ private ResponseParameter getProjectBuildResponseParameter(String p) {
messages.add(String.format(format, pd.getName(), description));
}

messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
}

ResponseParameter responseParameter = new ResponseParameter(ResponseParameter.flatMessages(messages));
responseParameter.setEmoji(new ResultSupport().convertProjectToEmoji(project));
responseParameter.setProject(project);

return responseParameter;
Expand All @@ -147,15 +162,15 @@ private ResponseParameter getProjectBuildResponseParameter(String p) {
private ResponseParameter getListResponseParameter() {
List<String> messages = new ArrayList<>();
messages.add("Usage");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(botUser + " list (<regexp filter>)");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(Emoji.BOOK.getSymbol() + " Sample");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);
messages.add(botUser + " list | list all projects ");
messages.add(botUser + " list helloWorld | list projects with simple filter");
messages.add(botUser + " list hel....rld | list projects with regexp filter");
messages.add("```");
messages.add(TypetalkMessage.CODE_SEPARATOR);

return new ResponseParameter(ResponseParameter.flatMessages(messages));
}
Expand Down

0 comments on commit 6657649

Please sign in to comment.