All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.imunity.furms.ui.views.user_settings.projects.ProjectGridModelMapper Maven / Gradle / Ivy

There is a newer version: 4.3.1
Show newest version
/*
 * Copyright (c) 2020 Bixbit s.c. All rights reserved.
 * See LICENSE file for licensing information.
 */

package io.imunity.furms.ui.views.user_settings.projects;

import io.imunity.furms.api.applications.ProjectApplicationsService;
import io.imunity.furms.api.projects.ProjectService;
import io.imunity.furms.domain.projects.Project;
import io.imunity.furms.domain.projects.ProjectId;

import java.util.Set;
import java.util.stream.Collectors;

import static io.imunity.furms.ui.views.user_settings.projects.UserStatus.ACTIVE;
import static io.imunity.furms.ui.views.user_settings.projects.UserStatus.NOT_ACTIVE;
import static io.imunity.furms.ui.views.user_settings.projects.UserStatus.REQUESTED;

class ProjectGridModelMapper {
	private final ProjectService projectService;
	private final ProjectApplicationsService projectApplicationsService;

	ProjectGridModelMapper(ProjectService projectService, ProjectApplicationsService projectApplicationsService) {
		this.projectService = projectService;
		this.projectApplicationsService = projectApplicationsService;
	}

	Set map(Set projects){
		Set projectsIds = projectApplicationsService.findAllAppliedProjectsIdsForCurrentUser();
		Set usersProjectIds = projectService.getUsersProjectIds();

		return projects.stream()
			.map(project -> ProjectGridModel.builder()
				.id(project.getId())
				.communityId(project.getCommunityId())
				.name(project.getName())
				.description(project.getDescription())
				.status(
					usersProjectIds.contains(project.getId()) ? ACTIVE :
						projectsIds.contains(project.getId()) ? REQUESTED :
							NOT_ACTIVE
				)
				.build()
			).collect(Collectors.toSet());
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy