diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-09-27 13:08:38 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-09-28 12:52:05 +0200 |
commit | c99e452a6928472ccdbd61c51cbc18aaf73f3f5d (patch) | |
tree | 9f5a1ed0706e2aef935ad2b937e4d696d0afaef8 /server | |
parent | 434e7bc3aac6b59075ec4e9578c1b2480f002262 (diff) | |
download | sonarqube-c99e452a6928472ccdbd61c51cbc18aaf73f3f5d.tar.gz sonarqube-c99e452a6928472ccdbd61c51cbc18aaf73f3f5d.zip |
SONAR-6834 search activity by dates
Diffstat (limited to 'server')
-rw-r--r-- | server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityWsAction.java | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityWsAction.java b/server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityWsAction.java index 99aecc48195..dc0b9985784 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityWsAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityWsAction.java @@ -19,11 +19,15 @@ */ package org.sonar.server.computation.ws; +import java.util.Date; import java.util.List; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.apache.ibatis.session.RowBounds; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; +import org.sonar.api.utils.DateUtils; import org.sonar.api.web.UserRole; import org.sonar.core.util.Uuids; import org.sonar.db.DbClient; @@ -42,6 +46,8 @@ public class ActivityWsAction implements CeWsAction { private static final String PARAM_TYPE = "type"; private static final String PARAM_STATUS = "status"; private static final String PARAM_ONLY_CURRENTS = "onlyCurrents"; + private static final String PARAM_MIN_SUBMITTED_AT = "minSubmittedAt"; + private static final String PARAM_MAX_FINISHED_AT = "maxFinishedAt"; private final UserSession userSession; private final DbClient dbClient; @@ -72,6 +78,12 @@ public class ActivityWsAction implements CeWsAction { action.createParam(PARAM_TYPE) .setDescription("Optional filter on task type") .setExampleValue(CeTaskTypes.REPORT); + action.createParam(PARAM_MIN_SUBMITTED_AT) + .setDescription("Optional filter on minimum date of task submission") + .setExampleValue(DateUtils.formatDateTime(new Date())); + action.createParam(PARAM_MAX_FINISHED_AT) + .setDescription("Optional filter on the maximum date of end of task processing") + .setExampleValue(DateUtils.formatDateTime(new Date())); action.addPagingParams(10); } @@ -101,12 +113,14 @@ public class ActivityWsAction implements CeWsAction { CeActivityQuery query = new CeActivityQuery(); query.setType(wsRequest.param(PARAM_TYPE)); query.setOnlyCurrents(wsRequest.mandatoryParamAsBoolean(PARAM_ONLY_CURRENTS)); - + query.setMinSubmittedAt(toTime(wsRequest.paramAsDateTime(PARAM_MIN_SUBMITTED_AT))); + query.setMaxFinishedAt(toTime(wsRequest.paramAsDateTime(PARAM_MAX_FINISHED_AT))); + String status = wsRequest.param(PARAM_STATUS); if (status != null) { query.setStatus(CeActivityDto.Status.valueOf(status)); } - + String componentUuid = wsRequest.param(PARAM_COMPONENT_UUID); if (componentUuid == null) { userSession.checkGlobalPermission(UserRole.ADMIN); @@ -122,4 +136,9 @@ public class ActivityWsAction implements CeWsAction { int pageSize = wsRequest.mandatoryParamAsInt(WebService.Param.PAGE_SIZE); return new RowBounds((pageIndex - 1) * pageSize, pageSize); } + + @CheckForNull + private static Long toTime(@Nullable Date date) { + return date == null ? null : date.getTime(); + } } |