/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pl.semtox.bemyeye.server;

import java.security.Principal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import pl.semtox.bemyeye.api.StreamAPI;
import pl.semtox.bemyeye.server.model.Stream;
import pl.semtox.bemyeye.server.model.User;

/**
 * @author Semtox
 */
public class Watch {
    private static final Logger log;
    
    private User user;
    
    static {
        log = Logger.getLogger(Watch.class.getName());
    }
    
    public Watch(){
    }

    public void init(HttpServletRequest req){
        HttpSession session = req.getSession();
        user = (User)session.getAttribute(SecurityFilter.USER_ATTR);
        log.log(Level.INFO, "Watch.init({0}) from {1}", new Object[]{user, req.getRemoteAddr()});
    }

    public Stream getStream(HttpServletRequest req){
        int id = -1;
        String tmp = req.getParameter("stream");
        if (tmp != null)
            id = Integer.parseInt(tmp);
        
        Stream s = StreamAPI.findByIdAndViewer(id, user);
        if (s == null)
            s = StreamAPI.findByIdAndViewer(0, user);
        
        log.log(Level.INFO, "getStream({0}) = {1}", new Object[]{id, s});
        
        return s;
    }
    
    public User getUser(){
        return user;
    }
}
