package eu.dnetlib.server.adminpanel;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import eu.dnetlib.client.adminpanel.ActionService;
import eu.dnetlib.espas.gui.server.user.UserDAO;
import eu.dnetlib.espas.gui.shared.User;
import org.springframework.context.ApplicationContext;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.List;

@SuppressWarnings("serial")
@Transactional(readOnly = false)
public class ActionServiceImpl extends RemoteServiceServlet implements ActionService {
	
	private UserDAO userDAO;
	
	public void init(ServletConfig config) throws ServletException {
		
		super.init(config);
		ApplicationContext context = WebApplicationContextUtils
				.getWebApplicationContext(getServletContext());
		
		userDAO = (UserDAO) context.getBean("espas.gui.userDao");
	}

	@Override
	public int getActionCount() throws Exception {
		return getPendingDataProviderUsers().size();
	}

	@Override
	public List<User> getPendingDataProviderUsers() throws Exception {
		return userDAO.getPendingDataProviderUsers();
	}

}
