79 lines
6.2 KiB
Markdown
79 lines
6.2 KiB
Markdown
# Monster Trading Card Game
|
|
Created by *Georg Reisinger*
|
|
* RestServer von https://github.com/DerGeorg/RESTServer
|
|
* MTCG Git Repo https://github.com/DerGeorg/SWE1-MTCG
|
|
* JavaDoc online auf: http://mtcg.dergeorg.at
|
|
* Postgres Server läuft auf einem Raspberry Pi 4 --> http://postgres.dergeorg.at
|
|
* User Table
|
|
* *Alle User die in MTCG registriert sind*
|
|
* User_cards Table
|
|
* *Alle Cards der User*
|
|
* User_deck Table
|
|
* *Deck der User*
|
|
* Battle Table
|
|
* *Battle Einladungen*
|
|
* Battle_log Table
|
|
* *Nach beendetem battle wird hier das Log gespeichert*
|
|
* Package Table
|
|
* *Alle Packages die die User bekommen können*
|
|
* Card Table
|
|
* *Alle Cards die in dem Spiel verwendet werden*
|
|
* *Typ der Card wird automatisch in Card und Element Typ getrennt*
|
|
* Trading Table
|
|
* *Alle aktiven Trading deals*
|
|
## Protokoll
|
|
*Um für Testzwecke die DB zu leeren, die Route DELETE /db/all beachten. Setzt die DB zurück und erstellt alle Tabellen neu.*
|
|
#### 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
|
|
#### GET
|
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
|
|--------------------|------------------------------------|-----------|-------------------------|------------------------------------------------------|
|
|
| /cards | show all acquired cards | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
| /deck | show deck | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
| /deck?format=plain | show deck different representation | / | Card names Array | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
| /users/{username} | get user | / | User Object | --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" |
|
|
| /tradings | get trading deals | / | List TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
#### POST
|
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
|
|------------------------|---------------------------|--------------------------------------|---------------------|------------------------------------------------------|
|
|
| /users | create user | Username, Password | User Object | / |
|
|
| /sessions | login user | Username, Password | login token | / |
|
|
| /packages | create package | [ID, Name, Damage]x5 | Package Object | --header "Authorization: Basic admin-mtcgToken" |
|
|
| /transactions/packages | acquire packages kienboec | / | Package Object | --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/{TradeID} | Do Trade | CardID | New Card Object | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
#### PUT
|
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
|
|-------------------|----------------|------------------|--------------|------------------------------------------------------|
|
|
| /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" |
|
|
#### DELETE
|
|
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|
|
|---------------------|---------------------|-----------|--------|------------------------------------------------------|
|
|
| /tradings/{TradeID} | delete trading deal | / | / | --header "Authorization: Basic kienboec-mtcgToken" |
|
|
| /db/all | Reset DB + Recreate | / | / |--header "Authorization: Basic admin-mtcgToken" |
|
|
## Insomnia Requests
|
|
Basierend auf dem [Curl Script](https://github.com/DerGeorg/SWE1-MTCG/blob/master/curl.bat) habe ich die Requests in Insomnia erstellt.
|
|
[Öffne insomnia.json](https://github.com/DerGeorg/SWE1-MTCG/blob/master/insomnia.json)
|
|
## UML
|
|
* [UML.png](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.png)
|
|
* [UML.svg](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.svg)
|
|

|