Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
2c9242e45c | |||
8e44e37804 | |||
3e8003ab50 | |||
6b8f84a262 | |||
7b2ecd3bf0 |
@ -39,6 +39,48 @@ public class DBConnection {
|
|||||||
PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS trading(username text not null constraint trading_users_username_fk references users,id text not null constraint trading_pk primary key, cardtotrade text not null constraint trading_card_name_fk references card, mindamage float not null,reqcardtype text not null,reqelement text not null);", "Trading Table created");
|
PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS trading(username text not null constraint trading_users_username_fk references users,id text not null constraint trading_pk primary key, cardtotrade text not null constraint trading_card_name_fk references card, mindamage float not null,reqcardtype text not null,reqelement text not null);", "Trading Table created");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updated den Lock einer user card
|
||||||
|
* @param name Name der Card
|
||||||
|
* @param lock Zustand des Locks
|
||||||
|
* @return true bei erfolg, sonst false
|
||||||
|
*/
|
||||||
|
public boolean updateCardLock(String name, boolean lock){
|
||||||
|
return PostgresHelper.executeUpdate("Update user_cards set gesperrt = " + lock + " where name = \'" + name + "\';");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüft ob eine Card für das Deck gesperrt ist
|
||||||
|
* @param name Name der Card die zu prüfen ist
|
||||||
|
* @return True falls gesperrt, ansonst false
|
||||||
|
* @throws SQLException Locked Cards konnten nicht aus der DB geholt werden
|
||||||
|
*/
|
||||||
|
public boolean getCardLock(String name) throws SQLException {
|
||||||
|
this.c = PostgresHelper.con();
|
||||||
|
ArrayList<TradingDeal> tradingDeals = new ArrayList<TradingDeal>();
|
||||||
|
boolean locked = false;
|
||||||
|
stmt = this.c.createStatement();
|
||||||
|
ResultSet rs = stmt.executeQuery("select gesperrt from user_cards where name = \'" + name + "\';");
|
||||||
|
while (rs.next()) {
|
||||||
|
locked = rs.getBoolean("gesperrt");
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
stmt.close();
|
||||||
|
this.c.close();
|
||||||
|
System.out.println("Trading Deals pulled successfully");
|
||||||
|
return locked;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Löscht einen Trading Deal aus der Datenbank
|
||||||
|
* @param id Id des deals der gelöscht werden soll
|
||||||
|
* @return True bei erfolg, sonst false
|
||||||
|
*/
|
||||||
|
public boolean deleteTradingDeal(String id){
|
||||||
|
return PostgresHelper.executeUpdate("delete from trading where id = \'" + id + "\';");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fügt der DB einen Trading deal hinzu
|
* Fügt der DB einen Trading deal hinzu
|
||||||
* @param username User der den Trade hinzufügt
|
* @param username User der den Trade hinzufügt
|
||||||
@ -110,6 +152,16 @@ public class DBConnection {
|
|||||||
* @return True bei erfolg, sonst false
|
* @return True bei erfolg, sonst false
|
||||||
*/
|
*/
|
||||||
public boolean setDeck(String username, List<String> deck){
|
public boolean setDeck(String username, List<String> deck){
|
||||||
|
for (String st :deck) {
|
||||||
|
try {
|
||||||
|
if(getCardLock(st)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} catch (SQLException throwables) {
|
||||||
|
throwables.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!delDeck(username)){
|
if (!delDeck(username)){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -457,6 +509,7 @@ public class DBConnection {
|
|||||||
* @return Null bei error
|
* @return Null bei error
|
||||||
*/
|
*/
|
||||||
public Card getCardFromID(String id){
|
public Card getCardFromID(String id){
|
||||||
|
System.out.println(id);
|
||||||
Connection b = PostgresHelper.con();
|
Connection b = PostgresHelper.con();
|
||||||
Card toreturn = null;
|
Card toreturn = null;
|
||||||
try {
|
try {
|
||||||
|
@ -54,6 +54,22 @@ public class TradingDeal {
|
|||||||
this(id, cardToTrade, EnumHelper.stringToElementType(type), requiredMinDamage, EnumHelper.stringToCardType(type), username);
|
this(id, cardToTrade, EnumHelper.stringToElementType(type), requiredMinDamage, EnumHelper.stringToCardType(type), username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt die ID des Trading deals
|
||||||
|
* @return Id des Trading Deals
|
||||||
|
*/
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die id des TradingDeals
|
||||||
|
* @param id Id des TradingDeals
|
||||||
|
*/
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holt den usernamen
|
* Holt den usernamen
|
||||||
* @return Der username als String
|
* @return Der username als String
|
||||||
|
@ -129,6 +129,20 @@ public class Response {
|
|||||||
} else {
|
} else {
|
||||||
sendError("500");
|
sendError("500");
|
||||||
}
|
}
|
||||||
|
}else if(this.url.startsWith("/tradings")) {
|
||||||
|
ArrayList<TradingDeal> allDeals = new DBConnection().getAllTradingDeals();
|
||||||
|
if(allDeals != null && !allDeals.isEmpty()){
|
||||||
|
String json = JsonHelper.objToJson(allDeals);
|
||||||
|
if(json != null && json != ""){
|
||||||
|
sendResponse(json, "200");
|
||||||
|
}else{
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sendError("204");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,36 +276,46 @@ public class Response {
|
|||||||
String id = (String)map.get("Id");
|
String id = (String)map.get("Id");
|
||||||
String cardtotrade = (String)map.get("CardToTrade");
|
String cardtotrade = (String)map.get("CardToTrade");
|
||||||
String type = (String)map.get("Type");
|
String type = (String)map.get("Type");
|
||||||
double mindamage = (double)map.get("MinimumDamage");
|
double mindamage = Double.parseDouble(map.get("MinimumDamage") + "");
|
||||||
ArrayList<String> cardname = new ArrayList<String>();
|
String username = basicAuthGetUsername(this.authString);
|
||||||
cardname.add(cardtotrade);
|
if (username != null) {
|
||||||
Cards cards = new DBConnection().getCardsFromIDList(cardname);
|
Card cardtoTradeC = new DBConnection().getCardFromID(cardtotrade);
|
||||||
Card cardtoTradeC = null;
|
System.out.println("CARD TO TRAD: " + cardtoTradeC.getName());
|
||||||
if (cards != null){
|
if (cardtoTradeC != null) {
|
||||||
cardtoTradeC = cards.getCards().get(0);
|
TradingDeal tradingDeal = new TradingDeal(id, cardtoTradeC, mindamage, type, username);
|
||||||
if (cardtoTradeC != null){
|
if (tradingDeal != null) {
|
||||||
TradingDeal tradingDeal = new TradingDeal(id, cardtoTradeC, mindamage, type, basicAuthGetUsername(this.authString));
|
|
||||||
if (tradingDeal != null){
|
|
||||||
String tradingJson = JsonHelper.objToJson(tradingDeal);
|
String tradingJson = JsonHelper.objToJson(tradingDeal);
|
||||||
if (tradingDeal != null){
|
if (tradingDeal != null) {
|
||||||
//DB Trading deal add
|
ArrayList<String> deckCards = new DBConnection().getDeck(username);
|
||||||
// Lock Card for deck
|
if (deckCards != null) {
|
||||||
//Wenn card im deck, dann del aus deck
|
if (deckCards.contains(cardtotrade)) {
|
||||||
//new DBConnection().;
|
new DBConnection().delDeck(username);
|
||||||
|
}
|
||||||
|
if(new DBConnection().addTradingdeal(tradingDeal.getUsername(), tradingDeal.getId(), tradingDeal.getRequiredMinDamage(), tradingDeal.getRequiredCardType().name(), tradingDeal.getRequiredElementType().name(), tradingDeal.getCardToTrade().getName())){
|
||||||
|
if(new DBConnection().updateCardLock(tradingDeal.getCardToTrade().getName(), true)){
|
||||||
|
sendResponse(JsonHelper.objToJson(tradingDeal), "201");
|
||||||
|
}else{
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
sendResponse(tradingJson, "201");
|
sendResponse(tradingJson, "201");
|
||||||
}else{
|
} else {
|
||||||
sendError("500");
|
sendError("500");
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
sendError("500");
|
sendError("500");
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
sendError("500");
|
sendError("500");
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
sendError("500");
|
sendError("500");
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
sendError("401");
|
sendError("401");
|
||||||
}
|
}
|
||||||
@ -381,7 +405,28 @@ public class Response {
|
|||||||
* @throws JsonProcessingException Fehler beim de-/serialisieren
|
* @throws JsonProcessingException Fehler beim de-/serialisieren
|
||||||
*/
|
*/
|
||||||
private void deleteMethodes(){
|
private void deleteMethodes(){
|
||||||
if (this.url.startsWith("/messages")) {
|
if (this.url.startsWith("/tradings")) {
|
||||||
|
String tradeid = this.url.substring(this.url.lastIndexOf('/') + 1);
|
||||||
|
System.out.println("Format in /tradings/{tradingid}: " + tradeid);
|
||||||
|
ArrayList<TradingDeal> allTradingDeals = new DBConnection().getAllTradingDeals();
|
||||||
|
TradingDeal tr = null;
|
||||||
|
if (allTradingDeals != null && !allTradingDeals.isEmpty()) {
|
||||||
|
for (TradingDeal i : allTradingDeals) {
|
||||||
|
if (i.getId().equals(tradeid)) {
|
||||||
|
tr = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tr != null) {
|
||||||
|
if (new DBConnection().deleteTradingDeal(tradeid)) {
|
||||||
|
if (new DBConnection().updateCardLock(tr.getCardToTrade().getName(), false))
|
||||||
|
sendResponse("", "204");
|
||||||
|
} else {
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sendError("500");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user