private static Ce.Task formatActivity(CeActivityDto dto, DtoCache cache, @Nullable String scannerContext, List<String> warnings) { Ce.Task.Builder builder = Ce.Task.newBuilder(); String organizationKey = cache.getOrganizationKey(dto.getComponentUuid()); ofNullable(organizationKey).ifPresent(builder::setOrganization); builder.setId(dto.getUuid()); builder.setStatus(Ce.TaskStatus.valueOf(dto.getStatus().name())); builder.setType(dto.getTaskType()); builder.setLogs(false); ofNullable(dto.getComponentUuid()).ifPresent(uuid -> setComponent(builder, uuid, cache).setComponentId(uuid)); String analysisUuid = dto.getAnalysisUuid(); ofNullable(analysisUuid).ifPresent(builder::setAnalysisId); setBranchOrPullRequest(builder, dto.getUuid(), cache); ofNullable(analysisUuid).ifPresent(builder::setAnalysisId); cache.getUser(dto.getSubmitterUuid()).ifPresent(user -> builder.setSubmitterLogin(user.getLogin())); builder.setSubmittedAt(formatDateTime(new Date(dto.getSubmittedAt()))); ofNullable(dto.getStartedAt()).map(DateUtils::formatDateTime).ifPresent(builder::setStartedAt); ofNullable(dto.getExecutedAt()).map(DateUtils::formatDateTime).ifPresent(builder::setExecutedAt); ofNullable(dto.getExecutionTimeMs()).ifPresent(builder::setExecutionTimeMs); ofNullable(dto.getErrorMessage()).ifPresent(builder::setErrorMessage); ofNullable(dto.getErrorStacktrace()).ifPresent(builder::setErrorStacktrace); ofNullable(dto.getErrorType()).ifPresent(builder::setErrorType); ofNullable(scannerContext).ifPresent(builder::setScannerContext); builder.setHasScannerContext(dto.isHasScannerContext()); builder.setWarningCount(dto.getWarningCount()); warnings.forEach(builder::addWarnings); return builder.build(); }
@Override public void handle(Request wsRequest, Response wsResponse) throws Exception { String taskUuid = wsRequest.mandatoryParam(PARAM_TASK_UUID); try (DbSession dbSession = dbClient.openSession(false)) { Ce.TaskResponse.Builder wsTaskResponse = Ce.TaskResponse.newBuilder(); Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskUuid); if (queueDto.isPresent()) { Optional<ComponentDto> component = loadComponent(dbSession, queueDto.get().getComponentUuid()); checkPermission(component); wsTaskResponse.setTask(wsTaskFormatter.formatQueue(dbSession, queueDto.get())); } else { CeActivityDto ceActivityDto = WsUtils.checkFoundWithOptional(dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), "No activity found for task '%s'", taskUuid); Optional<ComponentDto> component = loadComponent(dbSession, ceActivityDto.getComponentUuid()); checkPermission(component); Set<AdditionalField> additionalFields = AdditionalField.getFromRequest(wsRequest); maskErrorStacktrace(ceActivityDto, additionalFields); wsTaskResponse.setTask( wsTaskFormatter.formatActivity(dbSession, ceActivityDto, extractScannerContext(dbSession, ceActivityDto, additionalFields), extractWarnings(dbSession, ceActivityDto, additionalFields))); } writeProtobuf(wsTaskResponse.build(), wsRequest, wsResponse); } }
@Override public void handle(Request wsRequest, Response wsResponse) throws Exception { String taskUuid = wsRequest.mandatoryParam(PARAM_TASK_UUID); try (DbSession dbSession = dbClient.openSession(false)) { Ce.TaskResponse.Builder wsTaskResponse = Ce.TaskResponse.newBuilder(); Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskUuid); if (queueDto.isPresent()) { com.google.common.base.Optional<ComponentDto> component = loadComponent(dbSession, queueDto.get().getComponentUuid()); checkPermission(component); wsTaskResponse.setTask(wsTaskFormatter.formatQueue(dbSession, queueDto.get())); } else { CeActivityDto ceActivityDto = WsUtils.checkFoundWithOptional(dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), "No activity found for task '%s'", taskUuid); com.google.common.base.Optional<ComponentDto> component = loadComponent(dbSession, ceActivityDto.getComponentUuid()); checkPermission(component); Set<AdditionalField> additionalFields = AdditionalField.getFromRequest(wsRequest); maskErrorStacktrace(ceActivityDto, additionalFields); wsTaskResponse.setTask( wsTaskFormatter.formatActivity(dbSession, ceActivityDto, extractScannerContext(dbSession, ceActivityDto, additionalFields))); } writeProtobuf(wsTaskResponse.build(), wsRequest, wsResponse); } }
private static Ce.Task formatActivity(CeActivityDto dto, DtoCache cache, @Nullable String scannerContext) { Ce.Task.Builder builder = Ce.Task.newBuilder(); String organizationKey = cache.getOrganizationKey(dto.getComponentUuid()); setNullable(organizationKey, builder::setOrganization); builder.setId(dto.getUuid()); builder.setStatus(Ce.TaskStatus.valueOf(dto.getStatus().name())); builder.setType(dto.getTaskType()); builder.setLogs(false); setNullable(dto.getComponentUuid(), uuid -> setComponent(builder, uuid, cache).setComponentId(uuid)); String analysisUuid = dto.getAnalysisUuid(); setNullable(analysisUuid, builder::setAnalysisId); setBranchOrPullRequest(builder, dto.getUuid(), cache); setNullable(analysisUuid, builder::setAnalysisId); cache.getUser(dto.getSubmitterUuid()).ifPresent(user -> builder.setSubmitterLogin(user.getLogin())); builder.setSubmittedAt(formatDateTime(new Date(dto.getSubmittedAt()))); setNullable(dto.getStartedAt(), builder::setStartedAt, DateUtils::formatDateTime); setNullable(dto.getExecutedAt(), builder::setExecutedAt, DateUtils::formatDateTime); setNullable(dto.getExecutionTimeMs(), builder::setExecutionTimeMs); setNullable(dto.getErrorMessage(), builder::setErrorMessage); setNullable(dto.getErrorStacktrace(), builder::setErrorStacktrace); setNullable(dto.getErrorType(), builder::setErrorType); setNullable(scannerContext, builder::setScannerContext); builder.setHasScannerContext(dto.isHasScannerContext()); return builder.build(); }