Simplifying adding product to leagues and player collections.

This commit is contained in:
marcins78@gmail.com
2012-01-03 18:14:06 +00:00
parent 0b5e27dbb2
commit b74dd973a3
2 changed files with 38 additions and 41 deletions

View File

@@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -68,16 +69,16 @@ public class AdminResource extends AbstractResource {
@FormParam("type") String type,
@FormParam("start") int start,
@FormParam("end") int end,
@FormParam("packCollection") String packCollection,
@FormParam("product") String product,
@Context HttpServletRequest request) throws Exception {
validateAdmin(request);
DefaultCardCollection collection = new DefaultCardCollection();
List<String> packs = getItems(packCollection);
for (String pack : packs)
collection.addItem(pack, 1);
DefaultCardCollection leagueCollection = new DefaultCardCollection();
Map<String, Integer> productItems = getProductItems(product);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
leagueCollection.addItem(productItem.getKey(), productItem.getValue());
_leagueDao.addLeague(name, type, collection, start, end);
_leagueDao.addLeague(name, type, leagueCollection, start, end);
return "OK";
}
@@ -104,8 +105,7 @@ public class AdminResource extends AbstractResource {
@POST
public String addLeagueProduct(
@FormParam("leagueType") String leagueType,
@FormParam("packProduct") String packProduct,
@FormParam("cardProduct") String cardProduct,
@FormParam("product") String product,
@FormParam("skipBaseCollection") String skipBaseCollection,
@Context HttpServletRequest request) throws Exception {
validateAdmin(request);
@@ -116,21 +116,15 @@ public class AdminResource extends AbstractResource {
DefaultCardCollection items = new DefaultCardCollection();
List<String> packs = getItems(packProduct);
List<String> cards = getItems(cardProduct);
for (String pack : packs)
items.addItem(pack, 1);
for (String card : cards)
items.addItem(card, 1);
Map<String, Integer> productItems = getProductItems(product);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
items.addItem(productItem.getKey(), productItem.getValue());
if (skipBaseCollection == null || !skipBaseCollection.equals("true")) {
MutableCardCollection baseCollection = league.getBaseCollection();
for (String pack : packs)
baseCollection.addItem(pack, 1);
for (String card : cards)
baseCollection.addItem(card, 1);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
baseCollection.addItem(productItem.getKey(), productItem.getValue());
_leagueDao.setBaseCollectionForLeague(league, baseCollection);
}
@@ -138,10 +132,8 @@ public class AdminResource extends AbstractResource {
for (Map.Entry<Integer, MutableCardCollection> playerCollection : playerCollections.entrySet()) {
int playerId = playerCollection.getKey();
MutableCardCollection collection = playerCollection.getValue();
for (String pack : packs)
collection.addItem(pack, 1);
for (String card : cards)
collection.addItem(card, 1);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
collection.addItem(productItem.getKey(), productItem.getValue());
Player player = _playerDao.getPlayer(playerId);
_collectionDao.setCollectionForPlayer(player, leagueType, collection);
_deliveryService.addPackage(player, leagueType, items);
@@ -154,21 +146,16 @@ public class AdminResource extends AbstractResource {
@POST
public String addItems(
@FormParam("collectionType") String collectionType,
@FormParam("packProduct") String packProduct,
@FormParam("cardProduct") String cardProduct,
@FormParam("product") String product,
@FormParam("players") String players,
@Context HttpServletRequest request) throws Exception {
validateAdmin(request);
DefaultCardCollection items = new DefaultCardCollection();
List<String> packs = getItems(packProduct);
List<String> cards = getItems(cardProduct);
for (String pack : packs)
items.addItem(pack, 1);
for (String card : cards)
items.addItem(card, 1);
Map<String, Integer> productItems = getProductItems(product);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
items.addItem(productItem.getKey(), productItem.getValue());
List<String> playerNames = getItems(players);
@@ -176,10 +163,8 @@ public class AdminResource extends AbstractResource {
Player player = _playerDao.getPlayer(playerName);
MutableCardCollection collection = getPlayerCollection(player, collectionType);
for (String pack : packs)
collection.addItem(pack, 1);
for (String card : cards)
collection.addItem(card, 1);
for (Map.Entry<String, Integer> productItem : productItems.entrySet())
collection.addItem(productItem.getKey(), productItem.getValue());
_collectionDao.setCollectionForPlayer(player, collectionType, collection);
_deliveryService.addPackage(player, collectionType, items);
}
@@ -204,6 +189,20 @@ public class AdminResource extends AbstractResource {
return result;
}
private Map<String, Integer> getProductItems(String values) {
Map<String, Integer> result = new HashMap<String, Integer>();
for (String item : values.split("\n")) {
item = item.trim();
if (item.length() > 0) {
final String[] itemSplit = item.split("x", 2);
if (itemSplit.length != 2)
throw new RuntimeException("Unable to parse the items");
result.put(itemSplit[1].trim(), Integer.parseInt(itemSplit[0].trim()));
}
}
return result;
}
private League getLeagueByType(String leagueType) {
for (League league : _leagueDao.getActiveLeagues())
if (league.getType().equals(leagueType))

View File

@@ -20,7 +20,7 @@
Format: <input type="text" name="format"><br/>
Start: <input type="text" name="start"><br/>
End: <input type="text" name="end"><br/>
Packs: <textarea rows="5" cols="20" name="packCollection"></textarea><br/>
Product: <textarea rows="5" cols="20" name="product"></textarea><br/>
<input type="submit" value="Add league">
</form>
@@ -40,8 +40,7 @@
<form method="POST" action="server/admin/addLeagueProduct">
Type: <input type="text" name="leagueType"><br/>
Packs: <textarea rows="5" cols="20" name="packProduct"></textarea><br/>
Cards: <textarea rows="5" cols="20" name="cardProduct"></textarea><br/>
Product: <textarea rows="5" cols="20" name="product"></textarea><br/>
Skip base collection: <input type="checkbox" name="skipBaseCollection" value="true"/><br/>
<input type="submit" value="Add product">
</form>
@@ -52,8 +51,7 @@
<form method="POST" action="server/admin/addItems">
Type: <input type="text" name="collectionType"><br/>
Packs: <textarea rows="5" cols="20" name="packProduct"></textarea><br/>
Cards: <textarea rows="5" cols="20" name="cardProduct"></textarea><br/>
Product: <textarea rows="5" cols="20" name="product"></textarea><br/>
Players: <textarea rows="5" cols="20" name="players"></textarea><br/>
<input type="submit" value="Add items">
</form>