SessionService.java 1.8 KB
package etunicorn.service;

import etunicorn.entity.Personne;
import etunicorn.entity.Session;
import etunicorn.repository.PersonneRepository;
import etunicorn.repository.SessionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;

/**
 * etunicorn-server
 * Copyright © 2017 Le Club Info Polytech Lille
 * Tous droits réservés
 */
@Service("sessionService")
public class SessionService {
    @Autowired
    private SessionRepository sessionRepository;
    @Autowired
    private PersonneRepository personneRepository;

    public SessionService() {
    }

    public Session getSession(HttpServletRequest request) {
        String token = request.getHeader("Authorization");
        return getSession(token);
    }

    public Session getSession(String token) {
        if (token == null) {
            return null;
        } else {
            Session session = sessionRepository.findByToken(token);
            if (session == null) {
                return null;
            } else {
                if (session.getValidity().compareTo(new Date()) < 0) {
                    return null;
                } else {
                    // Vérifie si la personne est toujours dans la base de données
                    Personne personne = personneRepository.findById(session.getPersonne().getId());
                    if (personne == null) {
                        return null;
                    } else {
                        return session;
                    }
                }
            }
        }
    }

    public Session createSession(Personne personne) {
        Session session = new Session(personne);
        sessionRepository.save(session);
        return session;
    }

}