소스 검색

SONAR-5785 Add languages to the issues WS response

tags/5.0-RC1
Jean-Baptiste Lievremont 9 년 전
부모
커밋
72ecbdca9f

+ 17
- 1
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java 파일 보기

@@ -29,6 +29,8 @@ import org.sonar.api.issue.ActionPlan;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.IssueComment;
import org.sonar.api.issue.internal.DefaultIssueComment;
import org.sonar.api.resources.Language;
import org.sonar.api.resources.Languages;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.Severity;
import org.sonar.api.server.ws.Request;
@@ -90,9 +92,10 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
private final UserFinder userFinder;
private final I18n i18n;
private final Durations durations;
private final Languages languages;

public SearchAction(DbClient dbClient, IssueChangeDao issueChangeDao, IssueService service, IssueActionsWriter actionsWriter, IssueQueryService issueQueryService,
RuleService ruleService, ActionPlanService actionPlanService, UserFinder userFinder, I18n i18n, Durations durations) {
RuleService ruleService, ActionPlanService actionPlanService, UserFinder userFinder, I18n i18n, Durations durations, Languages languages) {
super(SEARCH_ACTION);
this.dbClient = dbClient;
this.issueChangeDao = issueChangeDao;
@@ -104,6 +107,7 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
this.userFinder = userFinder;
this.i18n = i18n;
this.durations = durations;
this.languages = languages;
}

@Override
@@ -315,6 +319,7 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
writeRules(json, !request.mandatoryParamAsBoolean(IssueFilterParameters.HIDE_RULES) ? ruleService.getByKeys(ruleKeys) : Collections.<Rule>emptyList());
writeUsers(json, usersByLogin);
writeActionPlans(json, actionPlanByKeys.values());
writeLanguages(json);

// TODO remove legacy paging. Handled by the SearchRequestHandler
writeLegacyPaging(context, json, result);
@@ -522,6 +527,17 @@ public class SearchAction extends SearchRequestHandler<IssueQuery, Issue> {
json.endArray();
}

private void writeLanguages(JsonWriter json) {
json.name("languages").beginArray();
for (Language language: languages.all()) {
json.beginObject()
.prop("key", language.getKey())
.prop("name", language.getName())
.endObject();
}
json.endArray();
}

private void writeActionPlans(JsonWriter json, Collection<ActionPlan> plans) {
if (!plans.isEmpty()) {
json.name("actionPlans").beginArray();

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowActionTest.java 파일 보기

@@ -31,6 +31,7 @@ import org.sonar.api.issue.Issue;
import org.sonar.api.issue.internal.DefaultIssue;
import org.sonar.api.issue.internal.DefaultIssueComment;
import org.sonar.api.issue.internal.FieldDiffs;
import org.sonar.api.resources.Languages;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.debt.internal.DefaultDebtCharacteristic;
import org.sonar.api.user.User;
@@ -143,7 +144,7 @@ public class IssueShowActionTest {
new IssueActionsWriter(issueService, actionService), actionPlanService, userFinder, debtModel, ruleService, i18n, durations),
new SearchAction(mock(DbClient.class), mock(IssueChangeDao.class), mock(IssueService.class), mock(IssueActionsWriter.class), mock(IssueQueryService.class),
mock(RuleService.class),
mock(ActionPlanService.class), mock(UserFinder.class), mock(I18n.class), mock(Durations.class))));
mock(ActionPlanService.class), mock(UserFinder.class), mock(I18n.class), mock(Durations.class), mock(Languages.class))));
}

@Test

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/issue/ws/IssuesWsTest.java 파일 보기

@@ -22,6 +22,7 @@ package org.sonar.server.issue.ws;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.i18n.I18n;
import org.sonar.api.resources.Languages;
import org.sonar.api.server.ws.RailsHandler;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.user.UserFinder;
@@ -59,7 +60,7 @@ public class IssuesWsTest {
debtModelService, mock(RuleService.class), i18n, durations);
SearchAction searchAction = new SearchAction(mock(DbClient.class), mock(IssueChangeDao.class), mock(IssueService.class), mock(IssueActionsWriter.class),
mock(IssueQueryService.class), mock(RuleService.class),
mock(ActionPlanService.class), mock(UserFinder.class), mock(I18n.class), mock(Durations.class));
mock(ActionPlanService.class), mock(UserFinder.class), mock(I18n.class), mock(Durations.class), mock(Languages.class));
tester = new WsTester(new IssuesWs(showAction, searchAction));
}


Loading…
취소
저장