Wired delivery service into Hall and Collection RequestHandlers.
This commit is contained in:
@@ -17,5 +17,5 @@ public interface ResponseWriter {
|
|||||||
|
|
||||||
public void writeResponse(Document document);
|
public void writeResponse(Document document);
|
||||||
|
|
||||||
public void writeResponse(Document document, Map<String, String> addCookies);
|
public void writeResponse(Document document, Map<String, String> addHeaders);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,7 +141,10 @@ public class CollectionRequestHandler extends LotroServerRequestHandler implemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
responseWriter.writeResponse(doc);
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
processDeliveryServiceNotification(request, headers);
|
||||||
|
|
||||||
|
responseWriter.writeResponse(doc, headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CardCollection constructCollection(Player player, String collectionType) {
|
private CardCollection constructCollection(Player player, String collectionType) {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import javax.xml.parsers.DocumentBuilder;
|
|||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class HallRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
public class HallRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||||
@@ -284,7 +285,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
|||||||
|
|
||||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||||
|
|
||||||
HallUpdateLongPollingResource polledResource = new HallUpdateLongPollingResource(resourceOwner, channelNumber, responseWriter);
|
HallUpdateLongPollingResource polledResource = new HallUpdateLongPollingResource(request, resourceOwner, channelNumber, responseWriter);
|
||||||
if (polledResource.isChanged())
|
if (polledResource.isChanged())
|
||||||
polledResource.process();
|
polledResource.process();
|
||||||
else
|
else
|
||||||
@@ -292,11 +293,13 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class HallUpdateLongPollingResource implements LongPollingResource {
|
private class HallUpdateLongPollingResource implements LongPollingResource {
|
||||||
|
private HttpRequest _request;
|
||||||
private Player _resourceOwner;
|
private Player _resourceOwner;
|
||||||
private int _channelNumber;
|
private int _channelNumber;
|
||||||
private ResponseWriter _responseWriter;
|
private ResponseWriter _responseWriter;
|
||||||
|
|
||||||
private HallUpdateLongPollingResource(Player resourceOwner, int channelNumber, ResponseWriter responseWriter) {
|
private HallUpdateLongPollingResource(HttpRequest request, Player resourceOwner, int channelNumber, ResponseWriter responseWriter) {
|
||||||
|
_request = request;
|
||||||
_resourceOwner = resourceOwner;
|
_resourceOwner = resourceOwner;
|
||||||
_channelNumber = channelNumber;
|
_channelNumber = channelNumber;
|
||||||
_responseWriter = responseWriter;
|
_responseWriter = responseWriter;
|
||||||
@@ -332,7 +335,11 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
|||||||
hall.setAttribute("currency", String.valueOf(_collectionManager.getPlayerCollection(_resourceOwner, "permanent").getCurrency()));
|
hall.setAttribute("currency", String.valueOf(_collectionManager.getPlayerCollection(_resourceOwner, "permanent").getCurrency()));
|
||||||
|
|
||||||
doc.appendChild(hall);
|
doc.appendChild(hall);
|
||||||
_responseWriter.writeResponse(doc);
|
|
||||||
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
processDeliveryServiceNotification(_request, headers);
|
||||||
|
|
||||||
|
_responseWriter.writeResponse(doc, headers);
|
||||||
} catch (HttpProcessingException exp) {
|
} catch (HttpProcessingException exp) {
|
||||||
_responseWriter.writeError(exp.getStatus());
|
_responseWriter.writeError(exp.getStatus());
|
||||||
} catch (Exception exp) {
|
} catch (Exception exp) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.async.handler;
|
|||||||
|
|
||||||
import com.gempukku.lotro.async.HttpProcessingException;
|
import com.gempukku.lotro.async.HttpProcessingException;
|
||||||
import com.gempukku.lotro.async.LoggedUserHolder;
|
import com.gempukku.lotro.async.LoggedUserHolder;
|
||||||
|
import com.gempukku.lotro.collection.TransferDAO;
|
||||||
import com.gempukku.lotro.db.PlayerDAO;
|
import com.gempukku.lotro.db.PlayerDAO;
|
||||||
import com.gempukku.lotro.game.Player;
|
import com.gempukku.lotro.game.Player;
|
||||||
import org.jboss.netty.channel.MessageEvent;
|
import org.jboss.netty.channel.MessageEvent;
|
||||||
@@ -25,16 +26,24 @@ import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.SET_COOKIE;
|
|||||||
public class LotroServerRequestHandler {
|
public class LotroServerRequestHandler {
|
||||||
protected PlayerDAO _playerDao;
|
protected PlayerDAO _playerDao;
|
||||||
protected LoggedUserHolder _loggedUserHolder;
|
protected LoggedUserHolder _loggedUserHolder;
|
||||||
|
private TransferDAO _transferDAO;
|
||||||
|
|
||||||
public LotroServerRequestHandler(Map<Type, Object> context) {
|
public LotroServerRequestHandler(Map<Type, Object> context) {
|
||||||
_playerDao = extractObject(context, PlayerDAO.class);
|
_playerDao = extractObject(context, PlayerDAO.class);
|
||||||
_loggedUserHolder = extractObject(context, LoggedUserHolder.class);
|
_loggedUserHolder = extractObject(context, LoggedUserHolder.class);
|
||||||
|
_transferDAO = extractObject(context, TransferDAO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isTest() {
|
private boolean isTest() {
|
||||||
return Boolean.valueOf(System.getProperty("test"));
|
return Boolean.valueOf(System.getProperty("test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected final void processDeliveryServiceNotification(HttpRequest request, Map<String, String> headersToAdd) {
|
||||||
|
String logged = _loggedUserHolder.getLoggedUser(request);
|
||||||
|
if (logged != null && _transferDAO.hasUndeliveredPackages(logged))
|
||||||
|
headersToAdd.put("Delivery-Service-Package", "true");
|
||||||
|
}
|
||||||
|
|
||||||
protected final Player getResourceOwnerSafely(HttpRequest request, String participantId) throws HttpProcessingException {
|
protected final Player getResourceOwnerSafely(HttpRequest request, String participantId) throws HttpProcessingException {
|
||||||
String loggedUser = _loggedUserHolder.getLoggedUser(request);
|
String loggedUser = _loggedUserHolder.getLoggedUser(request);
|
||||||
if (isTest() && loggedUser == null)
|
if (isTest() && loggedUser == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user