Files
Athou_commafeed/src/main/java/com/commafeed/frontend/servlet/CustomCssServlet.java

59 lines
1.7 KiB
Java
Raw Normal View History

2014-08-11 05:51:44 +02:00
package com.commafeed.frontend.servlet;
import java.io.IOException;
2014-08-17 14:16:30 +02:00
import javax.inject.Inject;
import javax.inject.Singleton;
2014-08-11 05:51:44 +02:00
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.hibernate.SessionFactory;
import com.commafeed.backend.dao.UnitOfWork;
import com.commafeed.backend.dao.UserSettingsDAO;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.frontend.SessionHelper;
import com.google.common.base.Optional;
2014-08-11 05:51:44 +02:00
@SuppressWarnings("serial")
2014-08-17 14:16:30 +02:00
@RequiredArgsConstructor(onConstructor = @__({ @Inject }))
@Singleton
2014-08-11 05:51:44 +02:00
public class CustomCssServlet extends HttpServlet {
private final SessionFactory sessionFactory;
private final UserSettingsDAO userSettingsDAO;
@Override
2014-08-15 15:20:21 +02:00
protected void doGet(final HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/css");
2014-08-15 15:20:21 +02:00
final Optional<User> user = new UnitOfWork<Optional<User>>(sessionFactory) {
@Override
protected Optional<User> runInSession() throws Exception {
return new SessionHelper(req).getLoggedInUser();
2014-08-15 15:20:21 +02:00
}
}.run();
if (!user.isPresent()) {
2014-08-11 05:51:44 +02:00
return;
}
UserSettings settings = new UnitOfWork<UserSettings>(sessionFactory) {
@Override
protected UserSettings runInSession() {
return userSettingsDAO.findByUser(user.get());
2014-08-11 05:51:44 +02:00
}
}.run();
2014-08-12 16:05:57 +02:00
if (settings == null || settings.getCustomCss() == null) {
return;
}
2014-08-11 05:51:44 +02:00
resp.getWriter().write(settings.getCustomCss());
}
}