Exception handling.
This commit is contained in:
@@ -84,7 +84,13 @@ public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler {
|
||||
}
|
||||
};
|
||||
|
||||
_uriRequestHandler.handleRequest(uri, request, _objects, responseWriter, e);
|
||||
try {
|
||||
_uriRequestHandler.handleRequest(uri, request, _objects, responseWriter, e);
|
||||
} catch (HttpProcessingException exp) {
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +166,7 @@ public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler {
|
||||
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.valueOf(status));
|
||||
|
||||
if (headers != null) {
|
||||
for (Map.Entry<String, String> header: headers.entrySet())
|
||||
for (Map.Entry<String, String> header : headers.entrySet())
|
||||
response.setHeader(header.getKey(), header.getValue());
|
||||
}
|
||||
|
||||
@@ -184,7 +190,7 @@ public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler {
|
||||
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
|
||||
|
||||
if (headers != null) {
|
||||
for (Map.Entry<String, String> header: headers.entrySet())
|
||||
for (Map.Entry<String, String> header : headers.entrySet())
|
||||
response.setHeader(header.getKey(), header.getValue());
|
||||
}
|
||||
|
||||
|
||||
@@ -50,34 +50,29 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
try {
|
||||
if (uri.equals("/clearCache") && request.getMethod() == HttpMethod.GET) {
|
||||
clearCache(request, responseWriter);
|
||||
} else if (uri.equals("/shutdown") && request.getMethod() == HttpMethod.GET) {
|
||||
shutdown(request, responseWriter);
|
||||
} else if (uri.equals("/setMotd") && request.getMethod() == HttpMethod.POST) {
|
||||
setMotd(request, responseWriter);
|
||||
} else if (uri.equals("/previewSealedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
previewSealedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addSealedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
addSealedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/previewConstructedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
previewConstructedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addConstructedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
addConstructedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addItems") && request.getMethod() == HttpMethod.POST) {
|
||||
addItems(request, responseWriter);
|
||||
} else if (uri.equals("/addItemsToCollection") && request.getMethod() == HttpMethod.POST) {
|
||||
addItemsToCollection(request, responseWriter);
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
} catch (HttpProcessingException exp) {
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("/clearCache") && request.getMethod() == HttpMethod.GET) {
|
||||
clearCache(request, responseWriter);
|
||||
} else if (uri.equals("/shutdown") && request.getMethod() == HttpMethod.GET) {
|
||||
shutdown(request, responseWriter);
|
||||
} else if (uri.equals("/setMotd") && request.getMethod() == HttpMethod.POST) {
|
||||
setMotd(request, responseWriter);
|
||||
} else if (uri.equals("/previewSealedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
previewSealedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addSealedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
addSealedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/previewConstructedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
previewConstructedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addConstructedLeague") && request.getMethod() == HttpMethod.POST) {
|
||||
addConstructedLeague(request, responseWriter);
|
||||
} else if (uri.equals("/addItems") && request.getMethod() == HttpMethod.POST) {
|
||||
addItems(request, responseWriter);
|
||||
} else if (uri.equals("/addItemsToCollection") && request.getMethod() == HttpMethod.POST) {
|
||||
addItemsToCollection(request, responseWriter);
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void addItemsToCollection(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
@@ -90,7 +85,7 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
|
||||
Collection<CardCollection.Item> productItems = getProductItems(product);
|
||||
|
||||
Map<Player,CardCollection> playersCollection = _collectionManager.getPlayersCollection(collectionType);
|
||||
Map<Player, CardCollection> playersCollection = _collectionManager.getPlayersCollection(collectionType);
|
||||
|
||||
for (Map.Entry<Player, CardCollection> playerCollection : playersCollection.entrySet())
|
||||
_collectionManager.addItemsToPlayerCollection(true, reason, playerCollection.getKey(), createCollectionType(collectionType), productItems);
|
||||
@@ -184,172 +179,172 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
}
|
||||
|
||||
private void previewConstructedLeague(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
validateLeagueAdmin(request);
|
||||
validateLeagueAdmin(request);
|
||||
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String collectionType = getFormParameterSafely(postDecoder, "collectionType");
|
||||
String prizeMultiplier = getFormParameterSafely(postDecoder, "prizeMultiplier");
|
||||
List<String> formats = getFormMultipleParametersSafely(postDecoder, "format");
|
||||
List<String> serieDurations = getFormMultipleParametersSafely(postDecoder, "serieDuration");
|
||||
List<String> maxMatches = getFormMultipleParametersSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String collectionType = getFormParameterSafely(postDecoder, "collectionType");
|
||||
String prizeMultiplier = getFormParameterSafely(postDecoder, "prizeMultiplier");
|
||||
List<String> formats = getFormMultipleParametersSafely(postDecoder, "format");
|
||||
List<String> serieDurations = getFormMultipleParametersSafely(postDecoder, "serieDuration");
|
||||
List<String> maxMatches = getFormMultipleParametersSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.size());
|
||||
for (int i = 0; i < formats.size(); i++)
|
||||
sb.append("," + formats.get(i) + "," + serieDurations.get(i) + "," + maxMatches.get(i));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.size());
|
||||
for (int i = 0; i < formats.size(); i++)
|
||||
sb.append("," + formats.get(i) + "," + serieDurations.get(i) + "," + maxMatches.get(i));
|
||||
|
||||
String parameters = sb.toString();
|
||||
LeagueData leagueData = new NewConstructedLeagueData(parameters);
|
||||
String parameters = sb.toString();
|
||||
LeagueData leagueData = new NewConstructedLeagueData(parameters);
|
||||
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
|
||||
Document doc = documentBuilder.newDocument();
|
||||
Document doc = documentBuilder.newDocument();
|
||||
|
||||
final List<LeagueSerieData> series = leagueData.getSeries();
|
||||
final List<LeagueSerieData> series = leagueData.getSeries();
|
||||
|
||||
int end = series.get(series.size() - 1).getEnd();
|
||||
int end = series.get(series.size() - 1).getEnd();
|
||||
|
||||
Element leagueElem = doc.createElement("league");
|
||||
Element leagueElem = doc.createElement("league");
|
||||
|
||||
leagueElem.setAttribute("name", name);
|
||||
leagueElem.setAttribute("cost", String.valueOf(cost));
|
||||
leagueElem.setAttribute("start", String.valueOf(series.get(0).getStart()));
|
||||
leagueElem.setAttribute("end", String.valueOf(end));
|
||||
leagueElem.setAttribute("name", name);
|
||||
leagueElem.setAttribute("cost", String.valueOf(cost));
|
||||
leagueElem.setAttribute("start", String.valueOf(series.get(0).getStart()));
|
||||
leagueElem.setAttribute("end", String.valueOf(end));
|
||||
|
||||
for (LeagueSerieData serie : series) {
|
||||
Element serieElem = doc.createElement("serie");
|
||||
serieElem.setAttribute("type", serie.getName());
|
||||
serieElem.setAttribute("maxMatches", String.valueOf(serie.getMaxMatches()));
|
||||
serieElem.setAttribute("start", String.valueOf(serie.getStart()));
|
||||
serieElem.setAttribute("end", String.valueOf(serie.getEnd()));
|
||||
serieElem.setAttribute("format", _formatLibrary.getFormat(serie.getFormat()).getName());
|
||||
serieElem.setAttribute("collection", serie.getCollectionType().getFullName());
|
||||
serieElem.setAttribute("limited", String.valueOf(serie.isLimited()));
|
||||
for (LeagueSerieData serie : series) {
|
||||
Element serieElem = doc.createElement("serie");
|
||||
serieElem.setAttribute("type", serie.getName());
|
||||
serieElem.setAttribute("maxMatches", String.valueOf(serie.getMaxMatches()));
|
||||
serieElem.setAttribute("start", String.valueOf(serie.getStart()));
|
||||
serieElem.setAttribute("end", String.valueOf(serie.getEnd()));
|
||||
serieElem.setAttribute("format", _formatLibrary.getFormat(serie.getFormat()).getName());
|
||||
serieElem.setAttribute("collection", serie.getCollectionType().getFullName());
|
||||
serieElem.setAttribute("limited", String.valueOf(serie.isLimited()));
|
||||
|
||||
leagueElem.appendChild(serieElem);
|
||||
}
|
||||
|
||||
doc.appendChild(leagueElem);
|
||||
|
||||
responseWriter.writeResponse(doc);
|
||||
leagueElem.appendChild(serieElem);
|
||||
}
|
||||
|
||||
doc.appendChild(leagueElem);
|
||||
|
||||
responseWriter.writeResponse(doc);
|
||||
}
|
||||
|
||||
private void addSealedLeague(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
validateLeagueAdmin(request);
|
||||
validateLeagueAdmin(request);
|
||||
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String format = getFormParameterSafely(postDecoder, "format");
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String serieDuration = getFormParameterSafely(postDecoder, "serieDuration");
|
||||
String maxMatches = getFormParameterSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String format = getFormParameterSafely(postDecoder, "format");
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String serieDuration = getFormParameterSafely(postDecoder, "serieDuration");
|
||||
String maxMatches = getFormParameterSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
|
||||
String parameters = format + "," + start + "," + serieDuration + "," + maxMatches + "," + code + "," + name;
|
||||
LeagueData leagueData = new NewSealedLeagueData(parameters);
|
||||
List<LeagueSerieData> series = leagueData.getSeries();
|
||||
int leagueStart = series.get(0).getStart();
|
||||
int displayEnd = DateUtils.offsetDate(series.get(series.size() - 1).getEnd(), 2);
|
||||
String parameters = format + "," + start + "," + serieDuration + "," + maxMatches + "," + code + "," + name;
|
||||
LeagueData leagueData = new NewSealedLeagueData(parameters);
|
||||
List<LeagueSerieData> series = leagueData.getSeries();
|
||||
int leagueStart = series.get(0).getStart();
|
||||
int displayEnd = DateUtils.offsetDate(series.get(series.size() - 1).getEnd(), 2);
|
||||
|
||||
_leagueDao.addLeague(cost, name, code, leagueData.getClass().getName(), parameters, leagueStart, displayEnd);
|
||||
_leagueDao.addLeague(cost, name, code, leagueData.getClass().getName(), parameters, leagueStart, displayEnd);
|
||||
|
||||
_leagueService.clearCache();
|
||||
_leagueService.clearCache();
|
||||
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
}
|
||||
|
||||
private void previewSealedLeague(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
validateLeagueAdmin(request);
|
||||
validateLeagueAdmin(request);
|
||||
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String format = getFormParameterSafely(postDecoder, "format");
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String serieDuration = getFormParameterSafely(postDecoder, "serieDuration");
|
||||
String maxMatches = getFormParameterSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String format = getFormParameterSafely(postDecoder, "format");
|
||||
String start = getFormParameterSafely(postDecoder, "start");
|
||||
String serieDuration = getFormParameterSafely(postDecoder, "serieDuration");
|
||||
String maxMatches = getFormParameterSafely(postDecoder, "maxMatches");
|
||||
String name = getFormParameterSafely(postDecoder, "name");
|
||||
int cost = Integer.parseInt(getFormParameterSafely(postDecoder, "cost"));
|
||||
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
|
||||
String parameters = format + "," + start + "," + serieDuration + "," + maxMatches + "," + code + "," + name;
|
||||
LeagueData leagueData = new NewSealedLeagueData(parameters);
|
||||
String parameters = format + "," + start + "," + serieDuration + "," + maxMatches + "," + code + "," + name;
|
||||
LeagueData leagueData = new NewSealedLeagueData(parameters);
|
||||
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
|
||||
Document doc = documentBuilder.newDocument();
|
||||
Document doc = documentBuilder.newDocument();
|
||||
|
||||
final List<LeagueSerieData> series = leagueData.getSeries();
|
||||
final List<LeagueSerieData> series = leagueData.getSeries();
|
||||
|
||||
int end = series.get(series.size() - 1).getEnd();
|
||||
int end = series.get(series.size() - 1).getEnd();
|
||||
|
||||
Element leagueElem = doc.createElement("league");
|
||||
Element leagueElem = doc.createElement("league");
|
||||
|
||||
leagueElem.setAttribute("name", name);
|
||||
leagueElem.setAttribute("cost", String.valueOf(cost));
|
||||
leagueElem.setAttribute("start", String.valueOf(series.get(0).getStart()));
|
||||
leagueElem.setAttribute("end", String.valueOf(end));
|
||||
leagueElem.setAttribute("name", name);
|
||||
leagueElem.setAttribute("cost", String.valueOf(cost));
|
||||
leagueElem.setAttribute("start", String.valueOf(series.get(0).getStart()));
|
||||
leagueElem.setAttribute("end", String.valueOf(end));
|
||||
|
||||
for (LeagueSerieData serie : series) {
|
||||
Element serieElem = doc.createElement("serie");
|
||||
serieElem.setAttribute("type", serie.getName());
|
||||
serieElem.setAttribute("maxMatches", String.valueOf(serie.getMaxMatches()));
|
||||
serieElem.setAttribute("start", String.valueOf(serie.getStart()));
|
||||
serieElem.setAttribute("end", String.valueOf(serie.getEnd()));
|
||||
serieElem.setAttribute("format", _formatLibrary.getFormat(serie.getFormat()).getName());
|
||||
serieElem.setAttribute("collection", serie.getCollectionType().getFullName());
|
||||
serieElem.setAttribute("limited", String.valueOf(serie.isLimited()));
|
||||
for (LeagueSerieData serie : series) {
|
||||
Element serieElem = doc.createElement("serie");
|
||||
serieElem.setAttribute("type", serie.getName());
|
||||
serieElem.setAttribute("maxMatches", String.valueOf(serie.getMaxMatches()));
|
||||
serieElem.setAttribute("start", String.valueOf(serie.getStart()));
|
||||
serieElem.setAttribute("end", String.valueOf(serie.getEnd()));
|
||||
serieElem.setAttribute("format", _formatLibrary.getFormat(serie.getFormat()).getName());
|
||||
serieElem.setAttribute("collection", serie.getCollectionType().getFullName());
|
||||
serieElem.setAttribute("limited", String.valueOf(serie.isLimited()));
|
||||
|
||||
leagueElem.appendChild(serieElem);
|
||||
}
|
||||
leagueElem.appendChild(serieElem);
|
||||
}
|
||||
|
||||
doc.appendChild(leagueElem);
|
||||
doc.appendChild(leagueElem);
|
||||
|
||||
responseWriter.writeResponse(doc);
|
||||
responseWriter.writeResponse(doc);
|
||||
}
|
||||
|
||||
private void setMotd(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException, Exception {
|
||||
validateAdmin(request);
|
||||
validateAdmin(request);
|
||||
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
|
||||
String motd = getFormParameterSafely(postDecoder, "motd");
|
||||
String motd = getFormParameterSafely(postDecoder, "motd");
|
||||
|
||||
_hallServer.setMOTD(motd);
|
||||
_hallServer.setMOTD(motd);
|
||||
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
}
|
||||
|
||||
private void shutdown(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException {
|
||||
validateAdmin(request);
|
||||
validateAdmin(request);
|
||||
|
||||
QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri());
|
||||
boolean shutdown = Boolean.valueOf(getQueryParameterSafely(queryDecoder, "shutdown"));
|
||||
QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri());
|
||||
boolean shutdown = Boolean.valueOf(getQueryParameterSafely(queryDecoder, "shutdown"));
|
||||
|
||||
_hallServer.setShutdown(shutdown);
|
||||
_hallServer.setShutdown(shutdown);
|
||||
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
}
|
||||
|
||||
private void clearCache(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException {
|
||||
validateAdmin(request);
|
||||
validateAdmin(request);
|
||||
|
||||
_leagueService.clearCache();
|
||||
_tournamentService.clearCache();
|
||||
_leagueService.clearCache();
|
||||
_tournamentService.clearCache();
|
||||
|
||||
int before = _cacheManager.getTotalCount();
|
||||
int before = _cacheManager.getTotalCount();
|
||||
|
||||
_cacheManager.clearCaches();
|
||||
_cacheManager.clearCaches();
|
||||
|
||||
int after = _cacheManager.getTotalCount();
|
||||
int after = _cacheManager.getTotalCount();
|
||||
|
||||
responseWriter.writeHtmlResponse("Before: " + before + "<br>OK<br>After: " + after);
|
||||
responseWriter.writeHtmlResponse("Before: " + before + "<br>OK<br>After: " + after);
|
||||
}
|
||||
|
||||
private void validateAdmin(HttpRequest request) throws HttpProcessingException {
|
||||
|
||||
@@ -40,21 +40,14 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
try {
|
||||
if (uri.startsWith("/") && request.getMethod() == HttpMethod.GET) {
|
||||
getMessages(request, URLDecoder.decode(uri.substring(1)), responseWriter);
|
||||
} else if (uri.startsWith("/") && request.getMethod() == HttpMethod.POST) {
|
||||
postMessages(request, URLDecoder.decode(uri.substring(1)), responseWriter);
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
} catch (HttpProcessingException exp) {
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.startsWith("/") && request.getMethod() == HttpMethod.GET) {
|
||||
getMessages(request, URLDecoder.decode(uri.substring(1)), responseWriter);
|
||||
} else if (uri.startsWith("/") && request.getMethod() == HttpMethod.POST) {
|
||||
postMessages(request, URLDecoder.decode(uri.substring(1)), responseWriter);
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void postMessages(HttpRequest request, String room, ResponseWriter responseWriter) throws Exception {
|
||||
|
||||
@@ -74,8 +74,7 @@ public class CollectionRequestHandler extends LotroServerRequestHandler implemen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
try {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("") && request.getMethod() == HttpMethod.GET) {
|
||||
getCollectionTypes(request, responseWriter);
|
||||
} else if (uri.startsWith("/") && request.getMethod() == HttpMethod.POST) {
|
||||
@@ -85,11 +84,6 @@ public class CollectionRequestHandler extends LotroServerRequestHandler implemen
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
} catch (HttpProcessingException exp) {
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void getCollection(HttpRequest request, String collectionType, ResponseWriter responseWriter) throws Exception {
|
||||
|
||||
@@ -27,7 +27,7 @@ public class DeckRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("/list") && request.getMethod() == HttpMethod.GET) {
|
||||
listDecks(request, responseWriter);
|
||||
} else {
|
||||
@@ -35,29 +35,25 @@ public class DeckRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
}
|
||||
|
||||
private void listDecks(HttpRequest request, ResponseWriter responseWriter) {
|
||||
try {
|
||||
QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri());
|
||||
String participantId = getQueryParameterSafely(queryDecoder, "participantId");
|
||||
private void listDecks(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri());
|
||||
String participantId = getQueryParameterSafely(queryDecoder, "participantId");
|
||||
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
|
||||
List<String> names = new ArrayList<String>(_deckDao.getPlayerDeckNames(resourceOwner));
|
||||
Collections.sort(names);
|
||||
List<String> names = new ArrayList<String>(_deckDao.getPlayerDeckNames(resourceOwner));
|
||||
Collections.sort(names);
|
||||
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
Document doc = documentBuilder.newDocument();
|
||||
Element decksElem = doc.createElement("decks");
|
||||
for (String name : names) {
|
||||
Element deckElem = doc.createElement("deck");
|
||||
deckElem.appendChild(doc.createTextNode(name));
|
||||
decksElem.appendChild(deckElem);
|
||||
}
|
||||
doc.appendChild(decksElem);
|
||||
responseWriter.writeResponse(doc);
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
Document doc = documentBuilder.newDocument();
|
||||
Element decksElem = doc.createElement("decks");
|
||||
for (String name : names) {
|
||||
Element deckElem = doc.createElement("deck");
|
||||
deckElem.appendChild(doc.createTextNode(name));
|
||||
decksElem.appendChild(deckElem);
|
||||
}
|
||||
doc.appendChild(decksElem);
|
||||
responseWriter.writeResponse(doc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("") && request.getMethod() == HttpMethod.GET) {
|
||||
getHall(request, responseWriter);
|
||||
} else if (uri.equals("") && request.getMethod() == HttpMethod.POST) {
|
||||
@@ -81,8 +81,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
}
|
||||
|
||||
private void joinTable(HttpRequest request, String tableId, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void joinTable(HttpRequest request, String tableId, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
@@ -91,26 +90,18 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
_hallServer.joinTableAsPlayer(tableId, resourceOwner, deckName);
|
||||
responseWriter.writeResponse(null);
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void leaveTable(HttpRequest request, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void leaveTable(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
|
||||
_hallServer.leaveAwaitingTables(resourceOwner);
|
||||
responseWriter.writeResponse(null);
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void createTable(HttpRequest request, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void createTable(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
String format = getFormParameterSafely(postDecoder, "format");
|
||||
@@ -124,13 +115,9 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
} catch (HallException e) {
|
||||
responseWriter.writeResponse(marshalException(e));
|
||||
}
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void dropFromTournament(HttpRequest request, String tournamentId, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void dropFromTournament(HttpRequest request, String tournamentId, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
Player resourceOwner = getResourceOwnerSafely(request, participantId);
|
||||
@@ -138,13 +125,9 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
_hallServer.dropFromTournament(tournamentId, resourceOwner);
|
||||
|
||||
responseWriter.writeResponse(null);
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void joinQueue(HttpRequest request, String queueId, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void joinQueue(HttpRequest request, String queueId, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
String deckName = getFormParameterSafely(postDecoder, "deckName");
|
||||
@@ -157,13 +140,9 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
} catch (HallException e) {
|
||||
responseWriter.writeResponse(marshalException(e));
|
||||
}
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private void leaveQueue(HttpRequest request, String queueId, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void leaveQueue(HttpRequest request, String queueId, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
|
||||
@@ -172,9 +151,6 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
_hallServer.leaveQueue(queueId, resourceOwner);
|
||||
|
||||
responseWriter.writeResponse(null);
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private Document marshalException(HallException e) throws ParserConfigurationException {
|
||||
@@ -301,8 +277,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
}
|
||||
|
||||
private void updateHall(HttpRequest request, ResponseWriter responseWriter) {
|
||||
try {
|
||||
private void updateHall(HttpRequest request, ResponseWriter responseWriter) throws Exception {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String participantId = getFormParameterSafely(postDecoder, "participantId");
|
||||
int channelNumber = Integer.parseInt(getFormParameterSafely(postDecoder, "channelNumber"));
|
||||
@@ -314,12 +289,6 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
polledResource.process();
|
||||
else
|
||||
_longPollingSystem.appendLongPollingResource(polledResource);
|
||||
|
||||
} catch (HttpProcessingException exp) {
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
}
|
||||
|
||||
private class HallUpdateLongPollingResource implements LongPollingResource {
|
||||
|
||||
@@ -21,29 +21,25 @@ public class LoginRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
try {
|
||||
if (uri.equals("") && request.getMethod() == HttpMethod.POST) {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String login = getFormParameterSafely(postDecoder, "login");
|
||||
String password = getFormParameterSafely(postDecoder, "password");
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("") && request.getMethod() == HttpMethod.POST) {
|
||||
HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request);
|
||||
String login = getFormParameterSafely(postDecoder, "login");
|
||||
String password = getFormParameterSafely(postDecoder, "password");
|
||||
|
||||
Player player = _playerDao.loginUser(login, password);
|
||||
if (player != null) {
|
||||
if (player.getType().contains("u")) {
|
||||
responseWriter.writeResponse(null, logUserReturningHeaders(e, login));
|
||||
} else {
|
||||
responseWriter.writeError(403);
|
||||
}
|
||||
Player player = _playerDao.loginUser(login, password);
|
||||
if (player != null) {
|
||||
if (player.getType().contains("u")) {
|
||||
responseWriter.writeResponse(null, logUserReturningHeaders(e, login));
|
||||
} else {
|
||||
responseWriter.writeError(401);
|
||||
responseWriter.writeError(403);
|
||||
}
|
||||
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
responseWriter.writeError(401);
|
||||
}
|
||||
} catch (Exception exp) {
|
||||
responseWriter.writeError(500);
|
||||
|
||||
} else {
|
||||
responseWriter.writeError(404);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ public class RootUriRequestHandler implements UriRequestHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.startsWith(_webContextPath)) {
|
||||
_webRequestHandler.handleRequest(uri.substring(_webContextPath.length()), request, context, responseWriter, e);
|
||||
} else if (uri.equals("/gemp-lotr")) {
|
||||
|
||||
@@ -24,7 +24,7 @@ public class StatusRequestHandler extends LotroServerRequestHandler implements U
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals("") && request.getMethod() == HttpMethod.GET) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
|
||||
@@ -8,5 +8,5 @@ import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
|
||||
public interface UriRequestHandler {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e);
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class WebRequestHandler implements UriRequestHandler {
|
||||
private String _root = ApplicationConfiguration.getProperty("web.folder");
|
||||
|
||||
@Override
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, MessageEvent e) throws Exception {
|
||||
if (uri.equals(""))
|
||||
uri = "index.html";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user