use of com.thoughtworks.go.apiv2.dashboard.representers.DashboardFor in project gocd by gocd.
the class DashboardControllerDelegate method index.
public Object index(Request request, Response response) throws IOException {
if (goDashboardService.isFeatureToggleDisabled()) {
response.status(424);
return FEATURE_NOT_ENABLED;
}
if (!goDashboardService.hasEverLoadedCurrentState()) {
response.status(202);
return BEING_PROCESSED;
}
String selectedPipelinesCookie = request.cookie("selected_pipelines");
Long userId = currentUserId(request);
Username userName = currentUsername();
PipelineSelections selectedPipelines = pipelineSelectionsService.getPersistedSelectedPipelines(selectedPipelinesCookie, userId);
List<GoDashboardPipelineGroup> pipelineGroups = goDashboardService.allPipelineGroupsForDashboard(selectedPipelines, userName);
String etag = DigestUtils.md5Hex(pipelineGroups.stream().map(GoDashboardPipelineGroup::etag).collect(Collectors.joining("/")));
if (fresh(request, etag)) {
return notModified(response);
}
setEtagHeader(response, etag);
return writerForTopLevelObject(request, response, outputWriter -> PipelineGroupsRepresenter.toJSON(outputWriter, new DashboardFor(pipelineGroups, userName)));
}
use of com.thoughtworks.go.apiv2.dashboard.representers.DashboardFor in project gocd by gocd.
the class DashboardControllerV4 method index.
public Object index(Request request, Response response) throws IOException {
if (!goDashboardService.hasEverLoadedCurrentState()) {
response.status(ACCEPTED);
return BEING_PROCESSED;
}
final String personalizationCookie = request.cookie(COOKIE_NAME);
final Long userId = currentUserId(request);
final Username userName = currentUsername();
final PipelineSelections personalization = pipelineSelectionsService.load(personalizationCookie, userId);
final DashboardFilter filter = personalization.namedFilter(getViewName(request));
final boolean allowEmpty = Toggles.isToggleOn(Toggles.ALLOW_EMPTY_PIPELINE_GROUPS_DASHBOARD) && "true".equalsIgnoreCase(request.queryParams("allowEmpty"));
List<GoDashboardPipelineGroup> pipelineGroups = goDashboardService.allPipelineGroupsForDashboard(filter, userName, allowEmpty);
List<GoDashboardEnvironment> environments = goDashboardService.allEnvironmentsForDashboard(filter, userName);
String etag = calcEtag(userName, pipelineGroups, environments);
if (fresh(request, etag)) {
return notModified(response);
}
setEtagHeader(response, etag);
return writerForTopLevelObject(request, response, outputWriter -> DashboardRepresenter.toJSON(outputWriter, new DashboardFor(pipelineGroups, environments, userName, personalization.etag())));
}
use of com.thoughtworks.go.apiv2.dashboard.representers.DashboardFor in project gocd by gocd.
the class DashboardControllerV3 method index.
public Object index(Request request, Response response) throws IOException {
if (!goDashboardService.hasEverLoadedCurrentState()) {
response.status(ACCEPTED);
return BEING_PROCESSED;
}
final String personalizationCookie = request.cookie(COOKIE_NAME);
final Long userId = currentUserId(request);
final Username userName = currentUsername();
final PipelineSelections personalization = pipelineSelectionsService.load(personalizationCookie, userId);
final DashboardFilter filter = personalization.namedFilter(getViewName(request));
List<GoDashboardPipelineGroup> pipelineGroups = goDashboardService.allPipelineGroupsForDashboard(filter, userName);
List<GoDashboardEnvironment> environments = goDashboardService.allEnvironmentsForDashboard(filter, userName);
String etag = calcEtag(userName, pipelineGroups, environments);
if (fresh(request, etag)) {
return notModified(response);
}
setEtagHeader(response, etag);
return writerForTopLevelObject(request, response, outputWriter -> DashboardRepresenter.toJSON(outputWriter, new DashboardFor(pipelineGroups, environments, userName, personalization.etag())));
}
Aggregations