/** Create manual issue */ public Result<DefaultIssue> create(Map<String, String> params) { Result<DefaultIssue> result = Result.of(); try { // mandatory parameters String componentKey = params.get("component"); if (StringUtils.isBlank(componentKey)) { result.addError("Component is not set"); } RuleKey ruleKey = null; String rule = params.get("rule"); if (StringUtils.isBlank(rule)) { result.addError(Result.Message.ofL10n("issue.manual.missing_rule")); } else { ruleKey = RuleKey.parse(rule); } if (result.ok()) { DefaultIssue issue = issueService.createManualIssue( componentKey, ruleKey, RubyUtils.toInteger(params.get("line")), params.get("message"), params.get("severity"), RubyUtils.toDouble(params.get("effortToFix")), UserSession.get()); result.set(issue); } } catch (Exception e) { result.addError(e.getMessage()); } return result; }
private void checkProject(String projectParam, Result<ActionPlan> result) { if (Strings.isNullOrEmpty(projectParam)) { result.addError(Result.Message.ofL10n(Validation.CANT_BE_EMPTY_MESSAGE, PROJECT_PARAM)); } else { ResourceDto project = resourceDao.getResource(ResourceQuery.create().setKey(projectParam)); if (project == null) { result.addError( Result.Message.ofL10n("action_plans.errors.project_does_not_exist", projectParam)); } } }
private void checkMandatorySizeParameter( String value, String paramName, Integer size, Result result) { checkMandatoryParameter(value, paramName, result); if (!Strings.isNullOrEmpty(value) && value.length() > size) { result.addError(Result.Message.ofL10n(Validation.IS_TOO_LONG_MESSAGE, paramName, size)); } }
private void updateResult(Result result, Machine machine) { int completed = 0, failed = 0, notExecuted = 0, incomplete = 0; for (Context context : machine.getContexts()) { switch (context.getExecutionStatus()) { case COMPLETED: { completed++; } break; case FAILED: { failed++; } break; case NOT_EXECUTED: { notExecuted++; } break; case EXECUTING: { incomplete++; } } } result.setCompletedCount(completed); result.setFailedCount(failed); result.setNotExecutedCount(notExecuted); result.setIncompleteCount(incomplete); for (MachineException exception : getFailures()) { result.addError(getStackTrace(exception.getCause())); } }
private Date checkAndReturnDeadline(String deadLineParam, Result<ActionPlan> result) { Date deadLine = null; if (!Strings.isNullOrEmpty(deadLineParam)) { try { deadLine = RubyUtils.toDate(deadLineParam); Date today = new Date(); if (deadLine != null && deadLine.before(today) && !org.apache.commons.lang.time.DateUtils.isSameDay(deadLine, today)) { result.addError(Result.Message.ofL10n("action_plans.date_cant_be_in_past")); } } catch (SonarException e) { result.addError(Result.Message.ofL10n("errors.is_not_valid", "date")); } } return deadLine; }
public Result<Issue> executeAction(String issueKey, String actionKey) { Result<Issue> result = Result.of(); try { result.set(actionService.execute(issueKey, actionKey, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
private Result<ActionPlan> createResultForExistingActionPlan(String actionPlanKey) { Result<ActionPlan> result = Result.of(); if (findActionPlan(actionPlanKey) == null) { result.addError( Result.Message.ofL10n( ACTION_PLANS_ERRORS_ACTION_PLAN_DOES_NOT_EXIST_MESSAGE, actionPlanKey)); } return result; }
public Result<IssueComment> editComment(String commentKey, String newText) { Result<IssueComment> result = Result.of(); try { result.set(commentService.editComment(commentKey, newText, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
public Result<IssueComment> addComment(String issueKey, String text) { Result<IssueComment> result = Result.of(); try { result.set(commentService.addComment(issueKey, text, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
public Result<Issue> plan(String issueKey, @Nullable String actionPlanKey) { Result<Issue> result = Result.of(); try { result.set(issueService.plan(issueKey, actionPlanKey, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
public Result<Issue> setSeverity(String issueKey, String severity) { Result<Issue> result = Result.of(); try { result.set(issueService.setSeverity(issueKey, severity, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
public Result<Issue> doTransition(String issueKey, String transitionKey) { Result<Issue> result = Result.of(); try { result.set(issueService.doTransition(issueKey, transitionKey, UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
public Result<Issue> assign(String issueKey, @Nullable String assignee) { Result<Issue> result = Result.of(); try { result.set( issueService.assign( issueKey, StringUtils.defaultIfBlank(assignee, null), UserSession.get())); } catch (Exception e) { result.addError(e.getMessage()); } return result; }
@VisibleForTesting Result<ActionPlan> createActionPlanResult( Map<String, String> parameters, @Nullable DefaultActionPlan existingActionPlan) { Result<ActionPlan> result = Result.of(); String name = parameters.get(NAME_PARAM); String description = parameters.get(DESCRIPTION_PARAM); String deadLineParam = parameters.get("deadLine"); String projectParam = parameters.get(PROJECT_PARAM); checkMandatorySizeParameter(name, NAME_PARAM, 200, result); checkOptionalSizeParameter(description, DESCRIPTION_PARAM, 1000, result); // Can only set project on creation if (existingActionPlan == null) { checkProject(projectParam, result); } Date deadLine = checkAndReturnDeadline(deadLineParam, result); // TODO move this check in the service, on creation and update if (!Strings.isNullOrEmpty(projectParam) && !Strings.isNullOrEmpty(name) && isActionPlanNameAvailable(existingActionPlan, name, projectParam)) { result.addError(Result.Message.ofL10n("action_plans.same_name_in_same_project")); } if (result.ok()) { DefaultActionPlan actionPlan = DefaultActionPlan.create(name) .setDescription(description) .setUserLogin(UserSession.get().login()) .setDeadLine(deadLine); // Can only set project on creation if (existingActionPlan == null) { actionPlan.setProjectKey(projectParam); } else { actionPlan.setProjectKey(existingActionPlan.projectKey()); } result.set(actionPlan); } return result; }
public Result<ActionPlan> updateActionPlan(String key, Map<String, String> parameters) { DefaultActionPlan existingActionPlan = (DefaultActionPlan) actionPlanService.findByKey(key, UserSession.get()); if (existingActionPlan == null) { Result<ActionPlan> result = Result.of(); result.addError( Result.Message.ofL10n(ACTION_PLANS_ERRORS_ACTION_PLAN_DOES_NOT_EXIST_MESSAGE, key)); return result; } else { Result<ActionPlan> result = createActionPlanResult(parameters, existingActionPlan); if (result.ok()) { DefaultActionPlan actionPlan = (DefaultActionPlan) result.get(); actionPlan.setKey(existingActionPlan.key()); actionPlan.setUserLogin(existingActionPlan.userLogin()); result.set(actionPlanService.update(actionPlan, UserSession.get())); } return result; } }
private void checkMandatoryParameter(String value, String paramName, Result result) { if (Strings.isNullOrEmpty(value)) { result.addError(Result.Message.ofL10n(Validation.CANT_BE_EMPTY_MESSAGE, paramName)); } }