public void update(String id, Long userId, CaseInsensitiveString pipelineToAdd) { PipelineSelections currentSelections = findOrCreateCurrentPipelineSelectionsFor(id, userId); if (currentSelections.ensurePipelineVisible(pipelineToAdd)) { pipelineRepository.saveSelectedPipelines(currentSelections); } }
public PipelineSelections load(String id, Long userId) { PipelineSelections pipelineSelections = loadByIdOrUserId(id, userId); if (pipelineSelections == null) { pipelineSelections = PipelineSelections.ALL; } return pipelineSelections; }
public String update(Request request, Response response) { String fromCookie = request.cookie(COOKIE_NAME); final Long userId = currentUserId(request); if (!Objects.equals(pipelineSelectionsService.load(fromCookie, userId).etag(), getIfMatch(request))) { throw HaltApiResponses.haltBecauseEtagDoesNotMatch(DATA_IS_OUT_OF_DATE); } Filters filters; try { filters = Filters.fromJson(request.body()); } catch (FilterValidationException | JsonParseException e) { throw HaltApiResponses.haltBecauseOfReason(e.getMessage()); } Long recordId = pipelineSelectionsService.save(fromCookie, userId, filters); if (!apiAuthenticationHelper.securityEnabled()) { response.cookie("/go", COOKIE_NAME, String.valueOf(recordId), ONE_YEAR, systemEnvironment.isSessionCookieSecure(), true); } response.status(OK); return format("{ \"contentHash\": \"%s\" }", pipelineSelectionsService.load(fromCookie, userId).etag()); }
public String show(Request request, Response response) { String fromCookie = request.cookie(COOKIE_NAME); PipelineSelections pipelineSelections = pipelineSelectionsService.load(fromCookie, currentUserId(request)); if (fresh(request, pipelineSelections.etag())) { return notModified(response); } setEtagHeader(response, pipelineSelections.etag()); PipelineSelectionResponse pipelineSelectionResponse = new PipelineSelectionResponse(pipelineSelections.viewFilters()); return PipelineSelectionsRepresenter.toJSON(pipelineSelectionResponse); }
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()) ) ); }
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()) ) ); }
public long save(String id, Long userId, Filters filters) { PipelineSelections pipelineSelections = findOrCreateCurrentPipelineSelectionsFor(id, userId); pipelineSelections.update(filters, clock.currentTime(), userId); return pipelineRepository.saveSelectedPipelines(pipelineSelections); }
private PipelineSelections findOrCreateCurrentPipelineSelectionsFor(String id, Long userId) { PipelineSelections pipelineSelections = loadByIdOrUserId(id, userId); if (pipelineSelections == null) { return new PipelineSelections(Filters.defaults(), clock.currentTime(), userId); } return pipelineSelections; }