Readme.md + UML + db/all (reset+recreate)
This commit is contained in:
parent
514ac3553f
commit
e590ccd3e0
41
README.md
41
README.md
@ -1,8 +1,5 @@
|
|||||||
# Monster Trading Card Game
|
# Monster Trading Card Game
|
||||||
|
|
||||||
Created by *Georg Reisinger*
|
Created by *Georg Reisinger*
|
||||||
|
|
||||||
## Protocol
|
|
||||||
* RestServer von https://github.com/DerGeorg/RESTServer
|
* RestServer von https://github.com/DerGeorg/RESTServer
|
||||||
* MTCG Git Repo https://github.com/DerGeorg/SWE1-MTCG
|
* MTCG Git Repo https://github.com/DerGeorg/SWE1-MTCG
|
||||||
* JavaDoc online auf: http://mtcg.dergeorg.at
|
* JavaDoc online auf: http://mtcg.dergeorg.at
|
||||||
@ -24,9 +21,24 @@ Created by *Georg Reisinger*
|
|||||||
* *Typ der Card wird automatisch in Card und Element Typ getrennt*
|
* *Typ der Card wird automatisch in Card und Element Typ getrennt*
|
||||||
* Trading Table
|
* Trading Table
|
||||||
* *Alle aktiven Trading deals*
|
* *Alle aktiven Trading deals*
|
||||||
|
## Protokoll
|
||||||
|
#### Cards
|
||||||
|
* Card Type (z.B. FireSpell) wird zu ElementTyp(Fire) und CardType(Spell) aufgespalten
|
||||||
|
* Alle Cards sind in der Cards Tabelle gespeichert
|
||||||
|
* Wenn ein User Cards acquired, dann wird das passende package gelöscht und die Cards in seine user_card Table geschrieben
|
||||||
|
#### Deck
|
||||||
|
* Die Deckkarten werden in der Tabelle User_deck gespeichert
|
||||||
|
* Wird eine Card getradet, die im Deck ist, so wird das Deck des Users zurückgesetzt
|
||||||
|
* Wird ein Battle begonnen, dann muss der user 4 cards im deck haben.
|
||||||
|
#### Battle
|
||||||
|
* Beginnt ein User ein Battle und ist der erste, so wird in der Battle tabelle eine "Einladung" erstellt.
|
||||||
|
Die Einladung besteht aus: **Username, Userdeck, Battleid**
|
||||||
|
* Beginnt ein 2. User ein Battle, so sieht er das in der Battle Tabelle ein Spiel ohne 2. spieler ist, und kann beitreten.
|
||||||
|
#### Score & Stats
|
||||||
|
* Score zeigt das Ergebnis des letzten spieles an
|
||||||
|
* Stats zeigt die Ergebnisse aller vergangen Spiele
|
||||||
## API Beschreibung
|
## API Beschreibung
|
||||||
### GET
|
#### GET
|
||||||
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
||||||
|--------------------|------------------------------------|-----------|-------------------------|------------------------------------------------------|
|
|--------------------|------------------------------------|-----------|-------------------------|------------------------------------------------------|
|
||||||
| /cards | show all acquired cards | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /cards | show all acquired cards | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
@ -36,7 +48,7 @@ Created by *Georg Reisinger*
|
|||||||
| /stats | get stats about all battles | / | All battle Logs | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /stats | get stats about all battles | / | All battle Logs | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
| /score | get score, about last battle | / | Last Battle Log | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /score | get score, about last battle | / | Last Battle Log | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
| /tradings | get trading deals | / | List TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /tradings | get trading deals | / | List TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
### POST
|
#### POST
|
||||||
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
||||||
|------------------------|---------------------------|--------------------------------------|---------------------|------------------------------------------------------|
|
|------------------------|---------------------------|--------------------------------------|---------------------|------------------------------------------------------|
|
||||||
| /users | create user | Username, Password | User Object | / |
|
| /users | create user | Username, Password | User Object | / |
|
||||||
@ -46,20 +58,19 @@ Created by *Georg Reisinger*
|
|||||||
| /battles | Battle | / | Anweisungen String | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /battles | Battle | / | Anweisungen String | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
| /tradings | create tradingdeal | Id, CardToTrade, Type, MinimumDamage | TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /tradings | create tradingdeal | Id, CardToTrade, Type, MinimumDamage | TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
| /tradings/{TradeID} | Do Trade | CardID | New Card Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /tradings/{TradeID} | Do Trade | CardID | New Card Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
### PUT
|
#### PUT
|
||||||
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
||||||
|-------------------|----------------|------------------|--------------|------------------------------------------------------|
|
|-------------------|----------------|------------------|--------------|------------------------------------------------------|
|
||||||
| /deck | configure deck | [ID, ID, ID, ID] | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /deck | configure deck | [ID, ID, ID, ID] | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
| /users/{username} | / | Name, Bio, Image | User Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /users/{username} | / | Name, Bio, Image | User Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
### DELETE
|
#### DELETE
|
||||||
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
||||||
|---------------------|---------------------|-----------|--------|------------------------------------------------------|
|
|---------------------|---------------------|-----------|--------|------------------------------------------------------|
|
||||||
| /tradings/{TradeID} | delete trading deal | / | / | --header "Authorization: Basic kienboec-mtcgToken" |
|
| /tradings/{TradeID} | delete trading deal | / | / | --header "Authorization: Basic kienboec-mtcgToken" |
|
||||||
|
## Insomnia Requests
|
||||||
## Zeit
|
Basierend auf dem [Curl Script]((https://github.com/DerGeorg/SWE1-MTCG/blob/master/curl.bat)) habe ich die Requests in Insomnia erstellt.
|
||||||
5 Tage x 6 Stunden = 30 Stunden
|
[Öffne insomnia.json](https://github.com/DerGeorg/SWE1-MTCG/blob/master/insomnia.json)
|
||||||
|
|
||||||
## UML
|
## UML
|
||||||
*UML2021.png*
|
* [UML.png](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.png)
|
||||||
http://dergeorg.at/mtcg/UML2021.png
|
* [UML.svg](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.svg)
|
||||||

|

|
BIN
UML2021.png
BIN
UML2021.png
Binary file not shown.
Before Width: | Height: | Size: 16 MiB After Width: | Height: | Size: 16 MiB |
3405
UML2021.svg
Normal file
3405
UML2021.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 251 KiB |
1
insomnia.json
Normal file
1
insomnia.json
Normal file
File diff suppressed because one or more lines are too long
@ -67,11 +67,9 @@ public class Battle {
|
|||||||
System.out.println("Card 1: " + c1.getElementTyp() + c1.getCardType() + "\nCard 2: " + c2.getElementTyp() + c2.getCardType());
|
System.out.println("Card 1: " + c1.getElementTyp() + c1.getCardType() + "\nCard 2: " + c2.getElementTyp() + c2.getCardType());
|
||||||
//GLEICHER TYP Monster
|
//GLEICHER TYP Monster
|
||||||
if (!c1.getCardType().name().equalsIgnoreCase("SPELL") && !c2.getCardType().name().equalsIgnoreCase("SPELL")) {
|
if (!c1.getCardType().name().equalsIgnoreCase("SPELL") && !c2.getCardType().name().equalsIgnoreCase("SPELL")) {
|
||||||
System.out.println("Same Monster");
|
|
||||||
//Check ob eine der beiden Carten ein Dragon ist
|
//Check ob eine der beiden Carten ein Dragon ist
|
||||||
if ((c1.getCardType().name().equalsIgnoreCase("DRAGON") && !c2.getCardType().name().equalsIgnoreCase("DRAGON") || (!c1.getCardType().name().equalsIgnoreCase("DRAGON") && c2.getCardType().name().equalsIgnoreCase("DRAGON")))) {
|
if ((c1.getCardType().name().equalsIgnoreCase("DRAGON") && !c2.getCardType().name().equalsIgnoreCase("DRAGON") || (!c1.getCardType().name().equalsIgnoreCase("DRAGON") && c2.getCardType().name().equalsIgnoreCase("DRAGON")))) {
|
||||||
//Eine der Karten is Dragon
|
//Eine der Karten is Dragon
|
||||||
System.out.println("Eine ist ein dragon");
|
|
||||||
Card dragon;
|
Card dragon;
|
||||||
int dragonOwner;
|
int dragonOwner;
|
||||||
if (c1.getCardType().name().equalsIgnoreCase("DRAGON")) {
|
if (c1.getCardType().name().equalsIgnoreCase("DRAGON")) {
|
||||||
@ -81,19 +79,16 @@ public class Battle {
|
|||||||
dragon = c2;
|
dragon = c2;
|
||||||
dragonOwner = 2;
|
dragonOwner = 2;
|
||||||
} else {
|
} else {
|
||||||
System.out.println("KEIN DRAGON GEFUNDEN");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ((c1.getCardType().name().equalsIgnoreCase("GOBLIN") && !c2.getCardType().name().equalsIgnoreCase("GOBLIN") || (!c1.getCardType().name().equalsIgnoreCase("GOBLIN") && c2.getCardType().name().equalsIgnoreCase("GOBLIN")))) {
|
if ((c1.getCardType().name().equalsIgnoreCase("GOBLIN") && !c2.getCardType().name().equalsIgnoreCase("GOBLIN") || (!c1.getCardType().name().equalsIgnoreCase("GOBLIN") && c2.getCardType().name().equalsIgnoreCase("GOBLIN")))) {
|
||||||
//Eine der Karten ist Goblin
|
//Eine der Karten ist Goblin
|
||||||
System.out.println("Andere ist ein goblin");
|
|
||||||
Card goblin;
|
Card goblin;
|
||||||
if (c1.getCardType().name().equalsIgnoreCase("GOBLIN")) {
|
if (c1.getCardType().name().equalsIgnoreCase("GOBLIN")) {
|
||||||
goblin = c1;
|
goblin = c1;
|
||||||
} else if (c2.getCardType().name().equalsIgnoreCase("GOBLIN")) {
|
} else if (c2.getCardType().name().equalsIgnoreCase("GOBLIN")) {
|
||||||
goblin = c2;
|
goblin = c2;
|
||||||
} else {
|
} else {
|
||||||
System.out.println("KEIN GOBLIN GEFUNDEN");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (dragon.getDamage() > goblin.getDamage()) {
|
if (dragon.getDamage() > goblin.getDamage()) {
|
||||||
@ -110,12 +105,9 @@ public class Battle {
|
|||||||
this.scorePlayer2 += 3;
|
this.scorePlayer2 += 3;
|
||||||
}
|
}
|
||||||
this.log.add("Player " + dragonOwner + " gewinnt!\nDrache ist stärker! Drache: " + dragon.getDamage() + " vs Goblin: " + goblin.getDamage() + "\nPlayer 1 score: " + scorePlayer1 + "\nPlayer 2 score: " + scorePlayer2);
|
this.log.add("Player " + dragonOwner + " gewinnt!\nDrache ist stärker! Drache: " + dragon.getDamage() + " vs Goblin: " + goblin.getDamage() + "\nPlayer 1 score: " + scorePlayer1 + "\nPlayer 2 score: " + scorePlayer2);
|
||||||
} else {
|
|
||||||
System.out.println("DRAW: Drache zu schwach um anzugreifen und GOBLIN zu feige.");
|
|
||||||
}
|
}
|
||||||
} else if ((c1.getCardType().name().equalsIgnoreCase("ELF") && c1.getElementTyp().name().equalsIgnoreCase("FIRE") && !c2.getCardType().name().equalsIgnoreCase("ELF") || (!c1.getCardType().name().equalsIgnoreCase("ELF") && c2.getElementTyp().name().equalsIgnoreCase("FIRE") && c2.getCardType().name().equalsIgnoreCase("ELF")))) {
|
} else if ((c1.getCardType().name().equalsIgnoreCase("ELF") && c1.getElementTyp().name().equalsIgnoreCase("FIRE") && !c2.getCardType().name().equalsIgnoreCase("ELF") || (!c1.getCardType().name().equalsIgnoreCase("ELF") && c2.getElementTyp().name().equalsIgnoreCase("FIRE") && c2.getCardType().name().equalsIgnoreCase("ELF")))) {
|
||||||
//Eine der Karten ist der Fire Elf die andere Karte ist der drache
|
//Eine der Karten ist der Fire Elf die andere Karte ist der drache
|
||||||
System.out.println("Andere ist ein elf");
|
|
||||||
Card fireelf;
|
Card fireelf;
|
||||||
if (dragonOwner == 1) {
|
if (dragonOwner == 1) {
|
||||||
fireelf = c2;
|
fireelf = c2;
|
||||||
@ -145,7 +137,6 @@ public class Battle {
|
|||||||
|
|
||||||
//Checkt ob eine der beiden karten ein wizzard ist und der andere ein ork
|
//Checkt ob eine der beiden karten ein wizzard ist und der andere ein ork
|
||||||
} else if ((c1.getCardType().name().equalsIgnoreCase("WIZZARD") && c2.getCardType().name().equalsIgnoreCase("ORK") || (c2.getCardType().name().equalsIgnoreCase("WIZZARD") && c1.getCardType().name().equalsIgnoreCase("ORK")))) {
|
} else if ((c1.getCardType().name().equalsIgnoreCase("WIZZARD") && c2.getCardType().name().equalsIgnoreCase("ORK") || (c2.getCardType().name().equalsIgnoreCase("WIZZARD") && c1.getCardType().name().equalsIgnoreCase("ORK")))) {
|
||||||
System.out.println("Eine wizzard Andere ist ein ork");
|
|
||||||
Card wizzard = null;
|
Card wizzard = null;
|
||||||
Card ork = null;
|
Card ork = null;
|
||||||
int wizzardOwner = 0;
|
int wizzardOwner = 0;
|
||||||
@ -184,7 +175,6 @@ public class Battle {
|
|||||||
|
|
||||||
if (c1.getCardType().name().equalsIgnoreCase("KNIGHT") || c2.getCardType().name().equalsIgnoreCase("KNIGHT")) {
|
if (c1.getCardType().name().equalsIgnoreCase("KNIGHT") || c2.getCardType().name().equalsIgnoreCase("KNIGHT")) {
|
||||||
//Mixed mit "Spezialeffekt" KNIGHT
|
//Mixed mit "Spezialeffekt" KNIGHT
|
||||||
System.out.println("Spell und knight");
|
|
||||||
Card knight = null, other = null;
|
Card knight = null, other = null;
|
||||||
int knightOwner = 0;
|
int knightOwner = 0;
|
||||||
if (c1.getCardType().name().equalsIgnoreCase("KNIGHT")) {
|
if (c1.getCardType().name().equalsIgnoreCase("KNIGHT")) {
|
||||||
@ -254,7 +244,6 @@ public class Battle {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
////PURE SPELL & mixed mit elementen
|
////PURE SPELL & mixed mit elementen
|
||||||
System.out.println("Spell und mixed mit elementen");
|
|
||||||
//Player 1 Damage berechnen
|
//Player 1 Damage berechnen
|
||||||
damagePlayer1 = calculateEffectiveness(c1, c2);
|
damagePlayer1 = calculateEffectiveness(c1, c2);
|
||||||
//P2 damage
|
//P2 damage
|
||||||
@ -267,7 +256,6 @@ public class Battle {
|
|||||||
p2win(c1, c2);
|
p2win(c1, c2);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Damage konnte nicht berechnet werden");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +267,7 @@ public class Battle {
|
|||||||
this.deckPlayer1 = new Cards(this.d1);
|
this.deckPlayer1 = new Cards(this.d1);
|
||||||
this.deckPlayer2 = new Cards(this.d2);
|
this.deckPlayer2 = new Cards(this.d2);
|
||||||
}else{
|
}else{
|
||||||
System.out.println("Einer der Spieler hat zu wenige Karten im Deck");
|
System.err.println("Einer der Spieler hat zu wenige Karten im Deck");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -30,19 +30,22 @@ public class DBConnection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Erstellt alle Tabellen die für den Betrieb der Software bennötigt werden
|
* Erstellt alle Tabellen die für den Betrieb der Software bennötigt werden
|
||||||
|
* @return True bei erfolg, sonst error
|
||||||
*/
|
*/
|
||||||
public void init() {
|
public boolean init() {
|
||||||
PostgresHelper.executeUpdateMessage("CREATE TABLE IF NOT EXISTS USERS (username TEXT PRIMARY KEY NOT NULL, nachname TEXT NOT NULL, email TEXT NOT NULL, password TEXT NOT NULL, bio TEXT, image TEXT, coins integer default 20 not null)", "User Table created");
|
ArrayList<Boolean> errors = new ArrayList<>();
|
||||||
PostgresHelper.executeUpdate("CREATE TABLE IF NOT EXISTS CARD(NAME TEXT not null,DAMAGE FLOAT not null,ELEMENTTYP TEXT not null,CARDTYPE TEXT not null, PRIMARY KEY (\"name\"));");
|
errors.add(PostgresHelper.executeUpdateMessage("CREATE TABLE IF NOT EXISTS USERS (username TEXT PRIMARY KEY NOT NULL, nachname TEXT NOT NULL, email TEXT NOT NULL, password TEXT NOT NULL, bio TEXT, image TEXT, coins integer default 20 not null)", "User Table created"));
|
||||||
PostgresHelper.executeUpdateMessage("create unique index IF NOT EXISTS card_name_uindex on CARD (NAME);", "Card Table created");
|
errors.add(PostgresHelper.executeUpdate("CREATE TABLE IF NOT EXISTS CARD(NAME TEXT not null,DAMAGE FLOAT not null,ELEMENTTYP TEXT not null,CARDTYPE TEXT not null, PRIMARY KEY (\"name\"));"));
|
||||||
PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS package(\"ID\" varchar(255) not null,name varchar(255) not null constraint name references card, i serial not null constraint package_i primary key );", "Package Table created");
|
errors.add(PostgresHelper.executeUpdateMessage("create unique index IF NOT EXISTS card_name_uindex on CARD (NAME);", "Card Table created"));
|
||||||
PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS user_cards(username TEXT not null constraint user_cards_users_username_fk references users,name text not null, gesperrt boolean not null);", "UserCards Table created");
|
errors.add(PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS package(\"ID\" varchar(255) not null,name varchar(255) not null constraint name references card, i serial not null constraint package_i primary key );", "Package Table created"));
|
||||||
PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS user_deck(username text not null constraint user_deck_users_username_fk references users,cardname text not null);", "UserDeck Table created");
|
errors.add(PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS user_cards(username TEXT not null constraint user_cards_users_username_fk references users,name text not null, gesperrt boolean not null);", "UserCards 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");
|
errors.add(PostgresHelper.executeUpdateMessage("create table IF NOT EXISTS user_deck(username text not null constraint user_deck_users_username_fk references users,cardname text not null);", "UserDeck Table created"));
|
||||||
PostgresHelper.executeUpdate("create table if not exists battle(usernamecreator text not null constraint battle_users_username_fk references users,usernameplayer text constraint battle_users_username_fk_2 references users, battleid serial, deckcreator text not null);");
|
errors.add(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 unique index if not exists battle_battleid_uindex on battle (battleid);", "Battle Table created");
|
errors.add(PostgresHelper.executeUpdate("create table if not exists battle(usernamecreator text not null constraint battle_users_username_fk references users,usernameplayer text constraint battle_users_username_fk_2 references users, battleid serial, deckcreator text not null);"));
|
||||||
PostgresHelper.executeUpdate("create table IF NOT EXISTS battle_log(id int not null constraint battle_log_pk primary key, playerone text not null,playertwo text not null,playeronescore text not null,playertwoscore text not null,log varchar(10485760));");
|
errors.add(PostgresHelper.executeUpdateMessage("create unique index if not exists battle_battleid_uindex on battle (battleid);", "Battle Table created"));
|
||||||
PostgresHelper.executeUpdateMessage("create unique index IF NOT EXISTS battle_log_id_uindex on battle_log (id);", "Battle_lgo Table created");
|
errors.add(PostgresHelper.executeUpdate("create table IF NOT EXISTS battle_log(id int not null constraint battle_log_pk primary key, playerone text not null,playertwo text not null,playeronescore text not null,playertwoscore text not null,log varchar(10485760));"));
|
||||||
|
errors.add(PostgresHelper.executeUpdateMessage("create unique index IF NOT EXISTS battle_log_id_uindex on battle_log (id);", "Battle_lgo Table created"));
|
||||||
|
return !errors.contains(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,7 +63,6 @@ public class DBConnection {
|
|||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
id = rs.getInt("id");
|
id = rs.getInt("id");
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
System.out.println("BATTLE ID: " + id);
|
|
||||||
battleIds.add(id + "");
|
battleIds.add(id + "");
|
||||||
}else {
|
}else {
|
||||||
return null;
|
return null;
|
||||||
@ -90,10 +92,7 @@ public class DBConnection {
|
|||||||
//noinspection LoopStatementThatDoesntLoop
|
//noinspection LoopStatementThatDoesntLoop
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
id = rs.getInt("max");
|
id = rs.getInt("max");
|
||||||
System.out.println("select max(id) from battle_log where playerone = '" + username + "' or playerone = '" + username + "';");
|
|
||||||
System.out.println("PREEEE IF ID: " + id);
|
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
System.out.println("LAST BATTLE ID: " + id);
|
|
||||||
return id;
|
return id;
|
||||||
}else {
|
}else {
|
||||||
return -1;
|
return -1;
|
||||||
@ -139,7 +138,6 @@ public class DBConnection {
|
|||||||
map.put("id", id+"");
|
map.put("id", id+"");
|
||||||
return map;
|
return map;
|
||||||
}else{
|
}else{
|
||||||
System.out.println("GET BATTLE LOG WAS EMPTY");
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,10 @@ public class Main {
|
|||||||
* @param args Nicht Verwendet
|
* @param args Nicht Verwendet
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new DBConnection().init();
|
if (!new DBConnection().init()) {
|
||||||
|
System.err.println("DB init failed");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
System.out.println("\n\nStarte Server auf Port " + port + "\n\n");
|
System.out.println("\n\nStarte Server auf Port " + port + "\n\n");
|
||||||
new Main(port);
|
new Main(port);
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import at.reisinger.obj.*;
|
|||||||
import at.reisinger.obj.Package;
|
import at.reisinger.obj.Package;
|
||||||
import at.reisinger.server.DBConnection;
|
import at.reisinger.server.DBConnection;
|
||||||
import at.reisinger.server.helper.JsonHelper;
|
import at.reisinger.server.helper.JsonHelper;
|
||||||
|
import at.reisinger.server.helper.PostgresHelper;
|
||||||
import at.reisinger.server.helper.ResponseHelper;
|
import at.reisinger.server.helper.ResponseHelper;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
@ -59,14 +60,10 @@ public class Response {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
if (login()) {
|
|
||||||
deleteMethodes();
|
deleteMethodes();
|
||||||
} else {
|
|
||||||
sendResponse("Login Error", "401");
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sendResponse("", "405");
|
sendResponse(cmd + " not found!", "405");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,7 +166,7 @@ public class Response {
|
|||||||
sendResponse("Login Error", "401");
|
sendResponse("Login Error", "401");
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
sendResponse("", "204");
|
sendResponse(this.url + " not found!", "404");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -425,7 +422,6 @@ public class Response {
|
|||||||
openBattle.setDeckPlayer2(deck);
|
openBattle.setDeckPlayer2(deck);
|
||||||
if(new DBConnection().delBattleEinladung(openBattle.getId() + "")) {
|
if(new DBConnection().delBattleEinladung(openBattle.getId() + "")) {
|
||||||
if (openBattle.doFight()){
|
if (openBattle.doFight()){
|
||||||
System.out.println(JsonHelper.objToJson(openBattle.getLog().size()));
|
|
||||||
if (new DBConnection().addBattleLog(openBattle.getId() + "", openBattle.getPlayer1().getName(), openBattle.getPlayer2().getName(), openBattle.getScorePlayer1() + "", openBattle.getScorePlayer2() + "", openBattle.getLog().toString())) {
|
if (new DBConnection().addBattleLog(openBattle.getId() + "", openBattle.getPlayer1().getName(), openBattle.getPlayer2().getName(), openBattle.getScorePlayer1() + "", openBattle.getScorePlayer2() + "", openBattle.getLog().toString())) {
|
||||||
if (new DBConnection().delDeck(openBattle.getPlayer1().getCredentials().getUsername()) && new DBConnection().delDeck(openBattle.getPlayer2().getCredentials().getUsername())) {
|
if (new DBConnection().delDeck(openBattle.getPlayer1().getCredentials().getUsername()) && new DBConnection().delDeck(openBattle.getPlayer2().getCredentials().getUsername())) {
|
||||||
//DEL OLD DECK CARDS
|
//DEL OLD DECK CARDS
|
||||||
@ -500,7 +496,7 @@ public class Response {
|
|||||||
sendResponse("Login Error", "401");
|
sendResponse("Login Error", "401");
|
||||||
}
|
}
|
||||||
} else{
|
} else{
|
||||||
sendResponse("", "405");
|
sendResponse(this.url + " not found!", "404");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -563,6 +559,8 @@ public class Response {
|
|||||||
}else{
|
}else{
|
||||||
sendResponse(Objects.requireNonNull(deckIds).size() + " von 4 Karten sind im Deck.","500");
|
sendResponse(Objects.requireNonNull(deckIds).size() + " von 4 Karten sind im Deck.","500");
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
sendResponse(this.url + " not found!", "404");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,10 +568,10 @@ public class Response {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Alle Delete Methoden, siehe API beschreibung für genauere details
|
* Alle Delete Methoden, siehe API beschreibung für genauere details
|
||||||
* Nur für angemeldete user erreichbar
|
|
||||||
*/
|
*/
|
||||||
private void deleteMethodes(){
|
private void deleteMethodes(){
|
||||||
if (this.url.startsWith("/tradings")) {
|
if (this.url.startsWith("/tradings")) {
|
||||||
|
if(login()) {
|
||||||
String tradeid = this.url.substring(this.url.lastIndexOf('/') + 1);
|
String tradeid = this.url.substring(this.url.lastIndexOf('/') + 1);
|
||||||
ArrayList<TradingDeal> allTradingDeals = new DBConnection().getAllTradingDeals();
|
ArrayList<TradingDeal> allTradingDeals = new DBConnection().getAllTradingDeals();
|
||||||
TradingDeal tr = null;
|
TradingDeal tr = null;
|
||||||
@ -594,7 +592,25 @@ public class Response {
|
|||||||
sendResponse("", "500");
|
sendResponse("", "500");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
sendResponse("Login Error", "401");
|
||||||
|
}
|
||||||
|
}else if (this.url.startsWith("/db/all")) {
|
||||||
|
if(basicAuth("admin", "istrator", this.authString)) {
|
||||||
|
if (!PostgresHelper.executeUpdate("drop table user_deck;drop table trading;drop table battle;drop table battle_log;drop table user_cards;drop table package;drop table card;drop table users;")) {
|
||||||
|
if (!new DBConnection().init()) {
|
||||||
|
sendResponse("DB init failed", "500");
|
||||||
|
} else {
|
||||||
|
sendResponse("DB deleted & recreated", "205");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
sendResponse("DB drop error", "500");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
sendResponse("Login Error", "401");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
sendResponse(this.url + " not found!", "404");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user