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

io.imunity.furms.ui.notifications.InvitationNotificationProducer 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.notifications;

import io.imunity.furms.api.invitations.InviteeService;
import io.imunity.furms.ui.user_context.ViewMode;
import io.imunity.furms.ui.views.user_settings.invitations.InvitationsView;
import org.springframework.stereotype.Component;

import java.util.Optional;
import java.util.stream.Stream;

import static io.imunity.furms.ui.utils.VaadinTranslator.getTranslation;

@Component
class InvitationNotificationProducer implements NotificationProducer{
	private final InviteeService inviteeService;

	InvitationNotificationProducer(InviteeService inviteeService) {
		this.inviteeService = inviteeService;
	}

	@Override
	public Stream findAllCurrentUserNotifications() {
		return inviteeService.findAllByCurrentUser().stream()
			.map(invitation ->
				NotificationBarElement.builder()
					.text(getTranslation(
						"notifications.new.invitation",
						Optional.ofNullable(invitation.resourceName).map(name -> "'" + name + "'").orElse("") +
							" " +
							getTranslation("view.user-settings.invitations.grid.invitation.resource.type." + invitation.resourceId.type) +
							" " +
							getTranslation("view.user-settings.invitations.grid.invitation.role." + invitation.role.unityRoleValue)
					))
					.viewMode(ViewMode.USER)
					.redirect(InvitationsView.class)
					.build()
			);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy