private boolean shouldApplyCoreProjectConfiguration(ProjectCreationData projectCreationData) { ProjectTemplateKey projectTemplateKey = projectCreationData.getProjectTemplateKey(); return projectTemplateKey == null || StringUtils.isEmpty(projectTemplateKey.getKey()); }
private ProjectCreationData overrideProjectTypeUsingTypeFromProjectTemplate(final ProjectCreationData projectCreationData) { return ofNullable(projectCreationData.getProjectTemplateKey()) .flatMap(projectTemplateManager::getProjectTemplate) .map(template -> new ProjectCreationData.Builder().from(projectCreationData).withType(template.getProjectTypeKey()).build()) .orElseGet(() -> projectCreationData); }
private void notifyHandlersOfProjectCreated(ApplicationUser user, Project newProject, CreateProjectValidationResult result) { final ProjectCreatedData.Builder projectCreatedData = new ProjectCreatedData.Builder().withProject(newProject); Optional.ofNullable(result.getProjectCreationData().getProjectTemplateKey()).ifPresent(projectCreatedData::withProjectTemplateKey); result.getExistingProjectId().ifPresent(projectCreatedData::withExistingProjectId); boolean notificationWasSuccessful = projectCreateNotifier.notifyAllHandlers(projectCreatedData.build()); if (!notificationWasSuccessful) { deleteProject(user, new DeleteProjectValidationResult(ErrorCollections.empty(), newProject)); throw new RuntimeException("An error occurred while notifying that a project was created"); } }
public Builder from(ProjectCreationData data) { this.name = data.getName(); this.key = data.getKey(); this.description = data.getDescription(); this.projectTypeKey = data.getProjectTypeKey(); this.projectTemplateKey = data.getProjectTemplateKey(); this.lead = data.getLead(); this.url = data.getUrl(); this.assigneeType = data.getAssigneeType(); this.avatarId = data.getAvatarId(); return this; }
@Override public boolean isValidAllProjectData(JiraServiceContext serviceContext, ProjectCreationData projectCreationData) { final ErrorCollection errorCollection = ErrorCollections.empty(); final I18nHelper i18nHelper = serviceContext.getI18nBean(); isValidRequiredProjectData(getServiceContext(serviceContext.getLoggedInApplicationUser(), errorCollection), projectCreationData); validateProjectUrl(projectCreationData.getUrl(), errorCollection, i18nHelper); validateProjectAssigneeType(projectCreationData.getAssigneeType(), errorCollection, i18nHelper); validateAvatarId(projectCreationData.getAvatarId(), projectManager.getProjectObjByKey(projectCreationData.getKey()), errorCollection, i18nHelper); validateProjectTemplate(projectCreationData.getProjectTemplateKey(), errorCollection, i18nHelper); if (errorCollection.hasAnyErrors()) { serviceContext.getErrorCollection().addErrorCollection(errorCollection); return false; } return true; }