Package org.ops4j.pax.exam.sample2.service

Source Code of org.ops4j.pax.exam.sample2.service.UserService

/*
* Copyright 2012 Harald Wellmann
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/
package org.ops4j.pax.exam.sample2.service;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.ops4j.pax.exam.sample2.model.Movie;
import org.ops4j.pax.exam.sample2.model.Rating;
import org.ops4j.pax.exam.sample2.model.User;
import org.ops4j.pax.exam.sample2.movieimport.MovieDbException;

@Stateless
public class UserService {

    @PersistenceContext
    private EntityManager em;

    public User findByLogin(String login) {
        return em.find(User.class, login);
    }

    public long getNumUsers() {
        String jpql = "select count(u) from User u";
        return em.createQuery(jpql, Long.class).getSingleResult();
    }

    public User authenticate(String login, String password) {
        User user = em.find(User.class, login);
        if (user != null) {
            if (password.equals(user.getPassword())) {
                return user;
            }
        }
        return null;
    }

    public User register(String login, String name, String password) {
        if (findByLogin(login) != null) {
            throw new MovieDbException("login is already taken");
        }
        User user = new User();
        user.setId(login);
        user.setName(name);
        user.setPassword(password);
        em.persist(user);
        return user;
    }

    public Rating rate(User user, Movie movie, int stars, String comment) {
        Rating rating = new Rating();
        rating.setUser(user);
        rating.setMovie(movie);
        rating.setStars(stars);
        rating.setComment(comment);
        em.persist(rating);
        return rating;
    }

    public void addFriend(User user, String friendLogin) {
        User friend = findByLogin(friendLogin);
        if (friend != null && !friend.equals(user)) {
            user.getFriends().add(friend);
        }
    }

    public boolean areFriends(User currentUser, User otherUser) {
        return currentUser.getFriends().contains(otherUser);
    }
}
TOP

Related Classes of org.ops4j.pax.exam.sample2.service.UserService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.