1455 lines
46 KiB
Plaintext
1455 lines
46 KiB
Plaintext
FORMAT: 1A
|
|
|
|
# Operation Pandora Trigger Command Center API Documentation
|
|
|
|
# Data Structures
|
|
|
|
# Proposer (object)
|
|
Representation of an app user who proposed an awarding or a promotion
|
|
|
|
## Properties
|
|
|
|
+ _id: `5abf5064861d950f157c4a09` (string, required) - unique id of the app user
|
|
+ username: `hardiready` (string, required) - username of the app user
|
|
+ squad: `591470249e9fae286e308e41` (string, required) - squad id associated with the app user
|
|
|
|
# AppUser (Proposer)
|
|
An app user instance with populated squad
|
|
|
|
## Properties
|
|
+ activated: true (boolean, required) - account activation status
|
|
+ password: `$1s23$1$H7dl7RTFZUBIBNUZ213IIOUasdNEI571sMuzXmzi4` (string, required) - password hash value
|
|
+ permission: 1 (number, required) - permission level
|
|
+ secret: `I like tacos` (string, required) - secret used for account activation comparison
|
|
+ squad (Squad, required, nullable) - squad the app user is responsible for
|
|
+ timestamp: `2017-08-02T07:48:56.378Z` (string, required) - creation timestamp
|
|
+ updatedAt: `2017-08-02T08:07:20.929Z` (string, required) - version timestamp
|
|
+ __v: 3 (number, required) - version number
|
|
|
|
# UpdateAppUser (Proposer)
|
|
An app user instance for PATCH updating
|
|
|
|
## Properties
|
|
+ activated: true (boolean, optional) - account activation status
|
|
+ password: `$1s23$1$H7dl7RTFZUBIBNUZ213IIOUasdNEI571sMuzXmzi4` (string, optional) - password hash value
|
|
+ permission: 1 (number, optional) - permission level
|
|
+ secret: `I like tacos` (string, optional) - secret used for account activation comparison
|
|
+ squad: `5abe166f8b7488392a623f12` (string, optional) - id of squad the app user is responsible for
|
|
|
|
# Fraction (object)
|
|
Single fraction object
|
|
|
|
## Properties
|
|
+ squads (array[ArmySquad], required) - Array containing all squads of the fraction, sorted by 'sortingNumber'
|
|
+ memberCount: 1 (number, required) - sum of fraction members in all squads
|
|
|
|
|
|
# ArmySquad (object)
|
|
A single squad as appearing in the army overview
|
|
|
|
## Properties
|
|
+ _id: `59146e6aef2ad810623ed519` (string, required) - the unique id of the squad
|
|
+ name: `Führungsstab` (string, required) - the squad display name
|
|
+ members (array[ArmyMember], required) - List of participants being member in this squad
|
|
+ memberCount: 1 (number, required) - Number of members the squad has
|
|
|
|
|
|
# ArmyMember (object)
|
|
Unique member in a army squad
|
|
|
|
## Properties
|
|
|
|
+ _id: `5918d2ca574b0b16820a0b28` (string, required) - unique id of the army member
|
|
+ username: `Jagernaut` (string, required) - display name of the army member
|
|
+ rank: `General` (string, required) - display name of the rank which is assigned to this army member
|
|
|
|
# Login (object)
|
|
User related entity for creating a token using application credentials
|
|
|
|
## Properties
|
|
|
|
+ username: `testuser` (string, required) - username of the app-user
|
|
+ password: `password` (string, required) - password of the app-user
|
|
|
|
# LoginResponse (object)
|
|
Response object on successful token creation
|
|
|
|
## Properties
|
|
|
|
+ _id: `593d632772d35225232bcabb` (string, required) - the unique id of the app-user
|
|
+ username: `kallek` (string, required) - the username of the app-user
|
|
+ permission: 3 (number, required)- the permission level of the app-user (0 - user, 1 - sql, 2 - hl, 3 - maintainer, 4 - admin)
|
|
+ squad (Squad, required) - squad the app-user is member of
|
|
+ token: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1OTNkNWUzZjcyZDM1MjI1MjIyYmNhYmEiLCJpYXQiOjE1MjEzOTQ5NDYsImV4cCI6MTUyMzgxNDE0Nn0.vOAwA5--qrx8BglhyGZWVYx7LeuRKOHH0NQXmHFNhIQ` (string,required) - generated access token
|
|
+ tokenExpireDate: `2018-04-15T17:42:25.050Z` (string,required) - expiration date of the token
|
|
|
|
|
|
# Registration (object)
|
|
User related entity for reflecting membership to another resource (groups, material databases)
|
|
|
|
## Properties
|
|
|
|
+ username: `kallek` (string, required) - the username of the app-user
|
|
+ password: `password` (string, required) - password of the app-user
|
|
+ secret: `random secret text` (string, required) - secret used for sign-up identification in connection with board usage
|
|
|
|
# Awarding (object)
|
|
Awarding associating a decoration to a user
|
|
|
|
## Properties
|
|
+ _id: `591ca81c1ee62711cfc19002` (string, required) - unique id of the awarding
|
|
+ confirmed: 1 (number, required) - status of the awarding request (0 - in progress, 1 - approved, 2 - rejected)
|
|
+ date: `2017-05-17T19:44:24.926Z` (string, required) - date when the awarding was requested
|
|
+ decorationId: `591c81981ee62711cfc18f4a` (string, required) - id of decoration that is given with the awarding
|
|
+ reason: `war dabei` (string, required) - reason for giving the awarding
|
|
+ proposer: 593d5e3f72d35225222bcaba (string, required) - id of app user who requested this awarding
|
|
+ timestamp: `2017-05-17T19:44:28.751Z` (string, required) - creation date
|
|
+ updatedAt: `"2017-05-17T19:44:28.751Z` (string, required) - version date
|
|
+ userId: `5918d2ca574b0b1d820a0b24` (string, required) - the unique id of the user who got this awarding
|
|
+ __v: 0 (number, required) - version number
|
|
|
|
|
|
# AwardingPopulated (Awarding)
|
|
Awarding with populated decoration, proposer and army-user
|
|
|
|
## Properties
|
|
+ proposer (Proposer, required) - app user who requested this awarding
|
|
+ decorationId (Decoration, required) - populated decoration object that is given with the awarding
|
|
+ userId (User, required) - populated user who gets this awarding
|
|
|
|
# Campaign (object)
|
|
Campaign entity
|
|
|
|
## Properties
|
|
+ _id:`5abd55ea9e30a76bfef747d6` (string, required) - unique id of the campaign
|
|
+ title: `Ein Kessel Buntes` (string, required) - display title of the campaign
|
|
+ timestamp: `2017-05-17T19:44:28.751Z` (string, required) - creation date
|
|
+ updatedAt: `"2017-05-17T19:44:28.751Z` (string, required) - version date
|
|
+ __v: 0 (number, required) - version number
|
|
|
|
#WarCampaign (object)
|
|
Cmpaign entity with attached War collection
|
|
## Properties
|
|
+ _id: `5abd55ea9e30a76bfef747d6` (string, required) - unique id of the campaign
|
|
+ title: `Ein Kessel Buntes` (string, required) - display title of the campaign
|
|
+ wars (array[WarWithPlayers], requied)
|
|
|
|
# Decoration (object)
|
|
|
|
A decoration representing a ribbon or medal
|
|
|
|
## Properties
|
|
|
|
+ _id: `591c81981ee62711cfc18f4a` (string, required) - unique id of the decoration
|
|
+ description: `Verliehen an alle Teilnehmer der ArmA3-Kampagne "Sturm über der Ägäis" im Jahr 2016` (string, required) - description expressing what the decoration should be given for
|
|
+ fraction: `GLOBAL` (string, required) - enum expressing the fraction in which the decoration is given
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
+ isMedal: false (boolean, required) - show if decoration is medal or ribbon
|
|
+ name: `OPT4 pt.1 - "Sturm über der Ägäis"` (string, required) - display name of the decoration
|
|
+ sortingNumber: 10 (number, required) - sorting number for lists
|
|
+ timestamp: `2017-05-17T17:00:08.684Z` (string, required) - creation timestamp
|
|
+ updatedAt: `2018-01-13T09:57:50.827Z` (string, required) - version timestamp
|
|
+ __v: 2 (number, required) - version number
|
|
|
|
# Log (object)
|
|
## Properties
|
|
+ _id: `` (string, required) - log entry id
|
|
+ war: `` (string, required) - warId
|
|
+ time: `` (string, required) - logging timestamp
|
|
+ __v: 0 (number, required) - object version number
|
|
|
|
# LogPoints (Log)
|
|
## Properties
|
|
+ ptBlufor: 2 (number, required) - standings for BLUFOR
|
|
+ ptOpfor: 4 (number, required) - standings for OPFOR
|
|
+ fraction: `OPFOR` (enum, required) - dominating fraction
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `NONE`
|
|
|
|
#LogBudget (Log)
|
|
## Properties
|
|
+ oldBudget: 400000 (number, required) - budget before buy action
|
|
+ newBudget: 380000 (number, required) - budget after buy action
|
|
+ fraction: `BLUFOR` (enum, required) - buying fraction
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
|
|
#LogFlag (Log)
|
|
## Properties
|
|
+ player: `HardiReady` (string, required) - name of player who captured/secured flag
|
|
+ capture: true (boolean, required) - true if flag was captured, false if it was secured
|
|
+ flagFraction: `BLUFOR` (enum, required) - fraction who owns the flag
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
|
|
#LogKill (Log)
|
|
## Properties
|
|
+ shooter: `HardiReady` (string, required) - name of player who made the kill
|
|
+ target: `KalleK` (string, required) - name of player which got killed
|
|
+ friendlyFire: true (boolean, required) - true if it was a friendly fire kill, false if it was a normal kill
|
|
+ fraction: `BLUFOR` (enum, required) - fraction of shooter
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `NONE`
|
|
+ shooterVehicle: `FV-720 Mora` (string, optional) - vehicle in whiock the shooting player sat
|
|
+ targetVehicle: `Ifrit-GMG` (string, optional) - vehicle in which the target player sat
|
|
+ magazine: `30 mm APFSDS` (string, optional) - magazine name used to execute the kill
|
|
|
|
#LogRespawn (Log)
|
|
## Properties
|
|
+ player: `radical1976` (string, required) - name of the player who respawns
|
|
|
|
#LogRevive (Log)
|
|
## Properties
|
|
+ medic: `radical1976` (string, required) - name of the player who revives/stabilizes
|
|
+ patient: `HardiReady` (string, required) - name of the player who is revived/stabilized
|
|
+ stabilized: false (boolean, required) - false if it is a revive, true if it is stabilizing
|
|
+ fraction: `BLUFOR` (enum, required) - fraction of the medic
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
|
|
#LogTransport (Log)
|
|
## Properties
|
|
+ driver: `radical1976` (string, required) - name of the vehicle driver/pilot
|
|
+ passenger: `radical1976` (string, required) - name of the passenger being transported
|
|
+ distance: 2435 (number, required) - distance of transport in meters
|
|
+ fraction: `BLUFOR` (enum, required) - fraction of the driver
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
|
|
#LogVehicle (Log)
|
|
## Properties
|
|
+ shooter: `HardiReady` (string, required) - name of player who shot the vehicle
|
|
+ additionalShooter: [`[GNC]Paolo`, `Dominik`] (array[string], required) - additional crew members of shooter vehicle
|
|
+ target: `T-100` (string, required) - name of the vehicle
|
|
+ fraction: `BLUFOR` (enum, required) - fraction of the shooter
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `NONE`
|
|
+ vehicleClass: `LIGHT` (enum, required) - class of shot vehicle
|
|
+ Members
|
|
+ `LIGHT`
|
|
+ `HEAVY`
|
|
+ `AIR`
|
|
+ `UNKNOWN`
|
|
+ shooterVehicle: `FV-720 Mora` (string, optional) - vehicle in whiock the shooting player sat
|
|
+ magazine: `30 mm APFSDS` (string, optional) - magazine name used to execute the kill
|
|
|
|
# BasicPlayer (object)
|
|
|
|
Basic player statistic information object
|
|
|
|
##Properties
|
|
+ name: `Jagernaut` (string, required) - the displayed username of the army member
|
|
+ fraction: `OPFOR` (string, required) - fraction of the player
|
|
+ kill: 5 (number, required) - sum of kills
|
|
+ friendlyFire: 0 (number, required) - sum of friendly fire kills
|
|
+ vehicleLight: 1 (number, required) - sum of light vehicle kills
|
|
+ vehicleHeavy: 1 (number, required) - sum of heavy vehicle kills
|
|
+ vehicleAir: 0 (number, required) - sum of air vehicle kills
|
|
+ death: 3 (number, required) - sum of deaths
|
|
+ respawn: 2 (number, required) - sum of respawns
|
|
+ flagTouch: 1 (number, required) - sum of flag captures
|
|
+ revive: 0 (number, required) - sum of revives
|
|
|
|
|
|
# WarPlayer (BasicPlayer)
|
|
A player campaign statistics object
|
|
|
|
## Properties
|
|
+ _id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member
|
|
+ warId: `5abf65ae3fc5fa349ffd5ca3` (string, required) - war in which this player took part
|
|
+ steamUUID: `76561192214911200` (string, required) - unique ID for STEAM platform account
|
|
+ sort: 1 (number, required) - sorting number calculated by (kill + revive + flagTouch - friendlyFire - death - respawn)
|
|
+ timestamp: `2018-02-24T01:01:25.825Z` - the entity creation timestamp
|
|
+ updatedAt: `2018-02-24T01:01:25.825Z` - the version timestamp
|
|
+ __v: 0 (number, required) - the version number of the object
|
|
|
|
|
|
# HighscorePlayer (BasicPlayer)
|
|
A player object as resturned for the highscore arrays
|
|
|
|
## Properties
|
|
+ num: 1
|
|
|
|
# Promotion (object)
|
|
Representation of a promotion request for a army member
|
|
|
|
## Properties
|
|
+ _id: `5as7d05dcb90ce4da68c4f5f` (string, required) - unique id of the promotion request
|
|
+ confirmed: 0 (number, required) - number representing status of the promotion (0 - in progress, 1 - approved, 2 - rejected)
|
|
+ newRankLvl: 14 (number, required)- new rank level that is requested in this promotion
|
|
+ oldRankLvl: 10 (number, required)- old rank level of the user
|
|
+ proposer: `5abf5064861d950f157c4a09` (string, required) - id of app user who requested the promotion
|
|
+ timestamp: `2018-03-25T18:54:21.609Z` (string, required) - creation timestamp
|
|
+ updatedAt: `2018-03-25T18:54:21.609Z` (string, required) - version timestamp
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - id of army member the promotion is requested for
|
|
+ __v: 0 (number, required) - version number of promotion instance
|
|
|
|
# PromotionPopulated (object)
|
|
Promotion with populated proposer and army member
|
|
|
|
## Properties
|
|
+ proposer (Proposer, required) - app user who requested the promotion
|
|
+ userId (User, required) - populated user instance of user the promotion is requested for
|
|
|
|
# Rank (object)
|
|
|
|
A rank that can be applied to army members by level/fraction
|
|
|
|
## Properties
|
|
+ _id: `591469c9ef4a6810623ed4ea` (string, required) - the unique id of the rank
|
|
+ name: `Gefreiter` (string, required) - display name of the rank
|
|
+ fraction: `BLUFOR` (enum, required) - enum expressing the fraction in which the decoration is given
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
+ level: 1 (number, required) - rank level
|
|
+ updatedAt: `2017-09-20T20:25:29.995Z` (string, required) - the version timestamp
|
|
+ timestamp: `2017-05-11T13:40:25.051Z` (string, required) - the creation timestamp
|
|
+ __v: 1 (number, required) - version number
|
|
|
|
# Squad (object)
|
|
|
|
A Squad entity
|
|
|
|
## Properties
|
|
|
|
+ _id: `591470249e9fae286e008e31` (string, required) - the unique id of the squad
|
|
+ sortingNumber: 30 (number, required) - the number for orders in lists of squads
|
|
+ updatedAt: `2017-05-31T20:43:07.165Z` (string, required) - version timestamp
|
|
+ timestamp: `2017-05-11T14:07:32.471Z` (string, required) - creation timestamp
|
|
+ name: `Alpha` (string, required) - display name of the squad
|
|
+ fraction: `BLUFOR` (string, required) - fraction the squad is part of
|
|
+ __v: 2 (number, required) - version number
|
|
|
|
# User (object)
|
|
A participant managed in the system
|
|
|
|
## Properties
|
|
+ _id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member
|
|
+ username: `Jagernaut` (string, required) - the displayed username of the army member
|
|
+ rankLvl: 22 (number, required) - rank level representing the rank
|
|
+ squadId: `591470249e9fae286e008e31` (string, required, nullable) - id of squad which the army member is part of
|
|
+ updatedAt: `2018-02-24T01:01:25.825Z` - the version timestamp
|
|
+ __v: 35 (number, required) - the version number of the object
|
|
|
|
# UserPopulated (User)
|
|
User object with populated squad
|
|
|
|
## Properties
|
|
+ squadId (Squad, required) - populated squad which the army member is part of
|
|
|
|
# UserInclTimestamp (User)
|
|
A participant managed in the system, incl. creation timestamp
|
|
|
|
## Properties
|
|
+ timestamp: 2018-01-20T12:11:23.125Z (string, required) - instance creation timestamp
|
|
|
|
# War (object)
|
|
A war as used in statistics
|
|
|
|
## Properties
|
|
+ _id: `5ab68d41f537ed304064e5f7` (string, required) - unique id of the war
|
|
+ title: `Battle No.1` (string, required) - the display neme of the war
|
|
+ date: `2018-02-24T20:01:25.825Z` (string, required) - war start timestamp
|
|
+ endDate: `2018-02-24T22:31:26.855Z` (string, required) - war end timestamp
|
|
+ ptBlufor: 11 (number, required) - final points fraction Blufor
|
|
+ ptOpfor: 12 (number, required) - final points fraction Opfor
|
|
+ playersBlufor: 36 (number, required) - player count of fraction Blufor
|
|
+ playersOpfor: 34 (number, required) - player count of fraction opfor
|
|
+ campaign: `5abd55ea9e30a76bfef747d6` (string, required) - uniquer id of the campaign in which the war was played
|
|
+ budgetBlufor: 3900000 (number, required) - start budget of fraction Blufor
|
|
+ budgetOpfor: 4100000 (number, required) - start budget of fraction Opfor
|
|
+ endBudgetBlufor: 924000 (number, required) - end budget of fraction Blufor
|
|
+ endBudgetOpfor: 12400 (number, required) - end budget of fraction Opfor
|
|
+ timestamp: `2018-02-24T01:01:25.825Z` (string, required) - creation date
|
|
+ updatedAt: `2018-02-24T01:01:25.825Z` (string, required) - the version timestamp
|
|
+ __v: 0 (number, required) - the version number of the object
|
|
|
|
# WarWithPlayers (War)
|
|
A war response object on creation
|
|
|
|
## Properties
|
|
+ players (array[WarPlayer], required) - collection of all participating players with their statistics
|
|
|
|
# Group General Introduction
|
|
|
|
## Location
|
|
|
|
The API can only be accessed via HTTPS in the cloud instance.
|
|
|
|
You can reach the API for the cloud instance at
|
|
|
|
```
|
|
https://cc.noarch.de/api/
|
|
```
|
|
|
|
Local installations can access the API using the respective domain with the path `/api/` appended.
|
|
|
|
So if your server is reachable at `https://cc.myserver.lan` the API endpoint is located at
|
|
|
|
```
|
|
# Note: `/api/` is appended to the locale installation server url
|
|
|
|
https://cc.myserver.lan/api/
|
|
```
|
|
|
|
## Authentication
|
|
|
|
Requests to most of the API endpoints have to be authenticated using an API token which is received after successfully providing your application credentials to the API.
|
|
|
|
Once acquired the token has to be provided in the ``X-Access-Token`` header of every request that requires authentication.
|
|
|
|
The following example illustrates how to provide the token when using `curl`
|
|
|
|
|
|
```
|
|
# via Authorization header
|
|
|
|
> curl -H "X-Access-Token: $CC_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>
|
|
```
|
|
|
|
## Permission Levels
|
|
|
|
The permission level is resolved by the API token you send, which resolves the specific app user information.
|
|
|
|
Endpoints that require a certain permission level to be accessed, mention the **minimum** required permission level in the description.
|
|
|
|
::: note
|
|
Permission Levels:
|
|
|
|
0 - User
|
|
|
|
1 - Squadlead
|
|
|
|
2 - High Command
|
|
|
|
3 - Maintainer
|
|
|
|
4 - Administrator
|
|
:::
|
|
|
|
## Timezones & Date Format
|
|
|
|
**Date Format**
|
|
|
|
In general the API returns and expects dates & times in the ISO 8601 format.
|
|
For example: `2017-02-27T17:05:33.155Z` for a time or `2017-02-27` for a date.
|
|
|
|
**Timezone**
|
|
|
|
The default timezone returned will be the UTC timezone
|
|
|
|
# Group File Resources
|
|
|
|
The running express server instance saves entity related files like squad logos and statistic logs on the file system.
|
|
In the original MEAN application they are served in the `/resource` path of the application server.
|
|
|
|
The following examples show where those files are located, to be accessed on the cloud instance.
|
|
|
|
## Images
|
|
**Decoration Image**
|
|
|
|
`https://cc.noarch.de/resource/decoration/{decorationId}.png`
|
|
|
|
**Rank Image**
|
|
|
|
`https://cc.noarch.de/resource/rank/{rankId}.png`
|
|
|
|
**Signature Image**
|
|
|
|
`https://cc.noarch.de/resource/signature/{userId}.png`
|
|
|
|
**Squad Logo**
|
|
|
|
`https://cc.noarch.de/resource/squad/{squadId}.png`
|
|
|
|
## Log-Files
|
|
|
|
**Sanitized Log File**
|
|
|
|
`https://cc.noarch.de/resource/logs/{warId}/clean.log`
|
|
|
|
**Original Uploaded Log File**
|
|
|
|
`https://cc.noarch.de/resource/logs/{warId}/war.log`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Group Access
|
|
|
|
### Sign up - Create account [POST /authenticate/signup]
|
|
|
|
Create a new application user account.
|
|
|
|
+ Request Create Account (application/json)
|
|
|
|
+ Attributes (Registration)
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes
|
|
|
|
+ message: `User successfully created` (string, required)
|
|
|
|
### Login - Generate Token [POST /authenticate]
|
|
|
|
Generate a token which can be used to make API requests.
|
|
|
|
+ Request Generate Token (application/json)
|
|
|
|
+ Attributes (Login)
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (LoginResponse)
|
|
|
|
# Group Admin
|
|
|
|
### List App Users [GET /account]
|
|
|
|
List all app users, ordered by username
|
|
|
|
**Permission: 4**
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[AppUser], fixed-type)
|
|
|
|
|
|
### Update App User [PATCH /account/{id}]
|
|
|
|
Update an app user, identified by its id
|
|
|
|
**Permission: 4**
|
|
|
|
+ Parameters
|
|
+ id: `5abf5064861d950f157c4a09` (string, required) - unique id of app user
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes (UpdateAppUser)
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (AppUser, fixed-type)
|
|
|
|
|
|
### Delete App User [DELETE /account/{id}]
|
|
|
|
**Permission: 4**
|
|
|
|
Delete an app user
|
|
|
|
+ Parameters
|
|
+ id: `5ac0de67b5edc7771c027b94` (string, required) - unique id of app user
|
|
|
|
+ Response 204
|
|
|
|
### Update signature image [POST /cmd/createSignature/{userId}]
|
|
|
|
Update an army members signature image
|
|
|
|
**Permission: 4**
|
|
|
|
+ Parameters
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - army members unique user id
|
|
|
|
+ Request (application/json)
|
|
{}
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes
|
|
+ status: `success` (string, required) - action result message
|
|
|
|
# Group Army Overview
|
|
|
|
### Get Army Overview [GET /overview]
|
|
|
|
Get bundled army, squad and member data for the participating fractions
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[Fraction])
|
|
|
|
# Group Awardings
|
|
|
|
### Get Awardings [GET /awardings{?userId,inProgress,fractFilter,squadId}]
|
|
|
|
List all awardings
|
|
|
|
+ Parameters
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, optional)
|
|
specific army member Id to show the awardings for
|
|
|
|
+ inProgress: false (boolean, optional)
|
|
true to filter by awarding state 'in progress'
|
|
|
|
+ Default: false
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional)
|
|
Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ squadId: `5aba54eaeadcce6332c6a774` (string, optional)
|
|
unique id of the squad
|
|
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[AwardingPopulated], fixed-type)
|
|
|
|
### Create Awarding [POST /awardings]
|
|
|
|
Create a new awarding which is immediatly assigned to the user
|
|
|
|
**Permission: 2**
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member to give award
|
|
+ decorationId: `5abd3dff6e6a0334d95b8ba0` (string, required) - unique id of the decoration
|
|
+ reason: `Good boy` (string, required) - reason for giving the awarding
|
|
+ proposer: `5ab68ceef547ed304064e5f6` (string, required) - app user id, who requested this awarding
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Awarding, fixed-type)
|
|
|
|
### Create Awarding Proposal [POST /request/award]
|
|
|
|
Create a new awarding proposal, that needs to be approved by higher permission level user to take effect
|
|
|
|
**Permission: 1**
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member to give award
|
|
+ decorationId: `5abd3dff6e6a0334d95b8ba0` (string, required) - unique id of the decoration
|
|
+ reason: `Good boy` (string, required) - reason for giving the awarding
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Awarding, fixed-type)
|
|
|
|
# Group Campaigns
|
|
|
|
### Get Campaigns [GET /campaigns]
|
|
|
|
Get all campaigns information
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[Campaign], fixed-type)
|
|
|
|
### Get Campaign [GET /campaigns/{id}]
|
|
|
|
Get single campaign information
|
|
|
|
+ Parameters
|
|
+ id: `5abd55ea9e30a76bfef747d6` (string, required) - unique id of campaign
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Campaign, fixed-type)
|
|
|
|
### Get Campaign Containing Specific War [GET /campaigns/with/war/{warId}]
|
|
|
|
Get a single campaign, containing a specific war
|
|
|
|
+ Parameters
|
|
+ warId: `5abf65ae3fc5fa349ffd5ca3` (string, required) - unique id of war that has to be part of campaign
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Campaign, fixed-type)
|
|
|
|
|
|
### Create Campaign [POST /campaigns]
|
|
|
|
Create a new campaign
|
|
|
|
**Permission: 3**
|
|
|
|
+ Request Create new army member (application/json)
|
|
|
|
+ Attributes
|
|
+ title: `Return To Kessel In A Schmelz` (string, required) - display name of the campaign
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Campaign, fixed-type)
|
|
|
|
### Update Campaign [PATCH /campaigns/{id}]
|
|
|
|
Update a campaign, identified by its id
|
|
|
|
**Permission: 3**
|
|
|
|
+ Parameters
|
|
+ id: `5abd55ea9e32a76afef777d6` (string, required) - unique id of campaign
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ _id: `5abd55ea9e32a76afef777d6` (string, required) - unique id of campaign
|
|
+ title: `Operation Pandora` (string, optional) - display name of the campaign
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Campaign, fixed-type)
|
|
|
|
### Delete Campaign [DELETE /campaigns/{id}]
|
|
|
|
Delete a campaign
|
|
|
|
**Permission: 3**
|
|
|
|
+ Parameters
|
|
+ id: `5abd58989e30a76bfef747e6` (string, required) - unique id of campaign
|
|
|
|
+ Response 204
|
|
|
|
|
|
# Group Decorations
|
|
|
|
### List Decorations [GET /decorations{?q,fractFilter}]
|
|
|
|
List all decorations
|
|
|
|
+ Parameters
|
|
+ q: `tapferkeit` (string, optional)
|
|
Filter string for the partial decoration name
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional)
|
|
Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[Decoration], fixed-type)
|
|
|
|
|
|
### Get Decoration [GET /decorations/{id}]
|
|
|
|
Retrieve single decoration data
|
|
|
|
+ Parameters
|
|
+ id: `5abd3dff6e6a0334d95b8ba0` (string, required) - unique id of the decoration to fetch
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Decoration, fixed-type)
|
|
|
|
### Create Decoration [POST /decorations]
|
|
|
|
Create a new decoration
|
|
|
|
**Permission: 2**
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
Super medal 2000
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
OPFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="description"
|
|
Content-Type: text/plain
|
|
|
|
For good performance in a battle
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="isMedal"
|
|
Content-Type: text/plain
|
|
|
|
true
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Decoration, fixed-type)
|
|
|
|
### Update Decoration [PATCH /decorations/{id}]
|
|
|
|
Update decoration, identified by its id
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abeb420b987672bb1ede643` (string, required) - unique id of the decoration
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
Super medal 2000
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
OPFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="description"
|
|
Content-Type: text/plain
|
|
|
|
For good performance in a battle
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="sortingNumber"
|
|
Content-Type: text/plain
|
|
|
|
2
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Decoration, fixed-type)
|
|
|
|
### Delete Decoration [DELETE /decorations/{id}]
|
|
|
|
Delete a decoration
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abeb43cb987672bb1ede644` (string, required) - unique id of the decoration
|
|
|
|
+ Response 204
|
|
|
|
# Group Logs
|
|
|
|
### Get War Logs [GET /logs/{warId}]
|
|
|
|
Ge the combined log object, containing all events in collections, for a single war
|
|
|
|
+ Parameters
|
|
+ warId: `5abf65ae3fc5fa349ffd5ca3` (string, required) - unique id of the war
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes
|
|
+ points (array[LogPoints], required)
|
|
+ budget (array[LogBudget], required)
|
|
+ respawn (array[LogRespawn], required)
|
|
+ revive (array[LogRevive], required)
|
|
+ kill (array[LogKill], required)
|
|
+ vehicle (array[LogVehicle], required)
|
|
+ transport (array[LogTransport], required)
|
|
+ flag (array[LogFlag], required)
|
|
|
|
# Group Players
|
|
|
|
### Get Player Highscore [GET /players/ranking/{campaignId}]
|
|
|
|
List highscores for player statistics over all wars of a certain campaign.
|
|
Every highscore player object contains a field *sum*, representing its order number in the collection
|
|
|
|
+ Parameters
|
|
+ campaignId: `5abd55ea9e30a76bfef747d6` (string, required) - unique id of the campaign
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes
|
|
+ kill (array[HighscorePlayer],required) - player highscore for kill
|
|
+ death (array[HighscorePlayer],required) - player highscore for death
|
|
+ friendlyFire (array[HighscorePlayer],required) - player highscore for friendly fire
|
|
+ vehicleLight (array[HighscorePlayer],required) - player highscore for light vehicle
|
|
+ vehicleHeavy (array[HighscorePlayer],required) - player highscore for heavy vehicle
|
|
+ vehicleAir (array[HighscorePlayer],required) - player highscore for air vehicle
|
|
+ revive (array[HighscorePlayer],required) - player highscore for revive
|
|
+ respawn (array[HighscorePlayer],required) - player highscore for respawn
|
|
+ flagTouch (array[HighscorePlayer],required) - player highscore for flag captures
|
|
|
|
|
|
### Get Player Campaign Statistics [GET /players/single/{campaignId}/{playerSteamId}]
|
|
|
|
Get statistics for a single player for all wars of a campaign he took part at
|
|
|
|
+ Parameters
|
|
+ campaignId: `5abd55ea9e30a76bfef747d6` (string, required) - unique id of the campaign
|
|
+ playerSteamId: `76561198050321490` (string, required) - STEAM application unique user id of player
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes
|
|
+ name: `Pumarang` (string, required) - latest used playername
|
|
+ campaign (Campaign,required) - campaign reflected from request is
|
|
+ players (array[WarPlayer],required) - collection of player instances in the campaign
|
|
|
|
# Group Promotion
|
|
|
|
### List Promotions [GET /request/promotion{?squadId,inProgress,fractFilter}]
|
|
|
|
List all promotion requests
|
|
|
|
+ Parameters
|
|
+ squadId: `591470249e9fae286e008e31` (string, optional)
|
|
specific squad Id to show the promotion requests for
|
|
|
|
+ inProgress: false (boolean, optional)
|
|
true to filter by promotion state 'in progress'
|
|
|
|
+ Default: false
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional)
|
|
Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[PromotionPopulated])
|
|
|
|
### Create Promotion Proposal [POST /request/promotion]
|
|
|
|
Create a new proposal for a promotion, that needs to be approved by higher permission level user to take effect
|
|
|
|
**Permission: 1**
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - id of the army member to promote
|
|
+ oldRankLvl: 0 (number, required) - previous rank level
|
|
+ newRankLvl: 5 (number, required) - new rank level to apply
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Promotion, fixed-type)
|
|
|
|
|
|
### Update Promotion Proposal [PATCH /request/promotion/{id}]
|
|
|
|
Update the promotion proposal
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abf50d9861d950f157c4a0a` (string, required) - unique id of the promotion
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ _id: `5abf50d9861d950f157c4a0a` (string, optional) - id of the promotion proposal
|
|
+ userId: `5ab68d42f547ed304064e5f7` (string, optional) - id of the army member to promote
|
|
+ proposer: `5abf5064861d950f157c4a09` (string, optional) - id of the proposing app user
|
|
+ oldRankLvl: 0 (number, optional) - previous rank level
|
|
+ newRankLvl: 5 (number, optional) - new rank level to apply
|
|
+ confirmed: 1 (number, optional) confirmation status of the promotion (0 - in progress, 1 - approved & applied, 2 - rejected) \nThis automatically applies the *newRankLvl*value as new rank level to the target user when confirmed = 1
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Promotion, fixed-type)
|
|
|
|
# Group Ranks
|
|
|
|
### List Ranks [GET /ranks{?q,fractFilter}]
|
|
|
|
List all ranks
|
|
|
|
+ Parameters
|
|
+ q: `Gefr` (string, optional) - filter string which filters for partial rank name
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional)
|
|
Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[Rank], fixed-type)
|
|
|
|
|
|
### Get Rank [GET /ranks/{id}]
|
|
|
|
Retrieve single rank data
|
|
|
|
+ Parameters
|
|
+ id: `5aba5504eadcce6332c6a775` (string, required) - unique id of the rank to fetch
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Rank, fixed-type)
|
|
|
|
### Create Rank [POST /ranks]
|
|
|
|
Create a new rank
|
|
|
|
**Permission: 2**
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
Obergefreiter
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
BLUFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="level"
|
|
Content-Type: text/plain
|
|
|
|
2
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Rank, fixed-type)
|
|
|
|
### Update Rank [PATCH /ranks/{id}]
|
|
|
|
Update rank, identified by its id
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abeb23995cf43205225710b` (string, required) - unique id of the rank
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
Stabsunteroffizier
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
BLUFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="level"
|
|
Content-Type: text/plain
|
|
|
|
10
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Rank, fixed-type)
|
|
|
|
### Delete Rank [DELETE /ranks/{id}]
|
|
|
|
Delete a rank
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abeb1b995cf43205225710a` (string, required) - unique id of the rank
|
|
|
|
+ Response 204
|
|
|
|
# Group Squads
|
|
|
|
### List Squads [GET /squads{?q,fractFilter}]
|
|
|
|
Get single army member information
|
|
|
|
+ Parameters
|
|
+ q: `alpha` (string, optional) - filter string which filters for partial squadname
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional)
|
|
Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[Squad], fixed-type)
|
|
|
|
### Get Squad [GET /squads/{id}]
|
|
|
|
Get single squad information
|
|
|
|
+ Parameters
|
|
+ id: `5aba54eaeadcce6332c6a774` (string, required) - unique id of the squad
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Squad, fixed-type)
|
|
|
|
### Create Squad [POST /squads]
|
|
|
|
Create a new squad
|
|
|
|
**Permission: 2**
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
Delta
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
BLUFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Squad, fixed-type)
|
|
|
|
### Update Squad [PATCH /squads/{id}]
|
|
|
|
Update squad, identified by its id
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abe166f8b7488392a623f12` (string, required) - unique id of the squad
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="name"
|
|
Content-Type: text/plain
|
|
|
|
test-CSAT
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="fraction"
|
|
Content-Type: text/plain
|
|
|
|
OPFOR
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="sortingNumber"
|
|
Content-Type: text/plain
|
|
|
|
3
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="image"; filename="image.png"
|
|
Content-Type: image/png
|
|
Content-Transfer-Encoding: base64
|
|
|
|
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
|
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
|
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
|
-----BOUNDARY--
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (Squad, fixed-type)
|
|
|
|
### Delete Squad [DELETE /squads/{id}]
|
|
|
|
Delete a squad
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abe16f98b7488392a623f17` (string, required) - unique id of the squad
|
|
|
|
+ Response 204
|
|
|
|
# Group Users
|
|
|
|
### List Users [GET /users{?q,fractFilter,limit,offset}]
|
|
|
|
Get single army member information
|
|
|
|
+ Parameters
|
|
+ q: `hardi` (string, optional) - filter string which filters for partial username
|
|
|
|
+ fractFilter: `BLUFOR` (enum[string], optional) - Field to filter by fraction
|
|
|
|
+ Members
|
|
+ `BLUFOR`
|
|
+ `OPFOR`
|
|
+ `GLOBAL`
|
|
|
|
+ squadId: `591470249e9fae286e008e31` (string, optional) - Field to filter by membership of certain squad
|
|
|
|
+ decorationId: `5abd3dff6e6a0334d95b8ba0` (string, optional) - Field to filter by ownership of certain decoration
|
|
|
|
+ limit: 20 (number, optional)
|
|
Maximum number of users to return
|
|
|
|
+ Default: Infinity
|
|
|
|
+ offset: 0 (number, optional)
|
|
Offset into result-set (useful for pagination)
|
|
|
|
+ Default: 0
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Headers
|
|
|
|
X-Total-Count: 1
|
|
|
|
+ Attributes (array[UserPopulated], fixed-type)
|
|
|
|
|
|
### Get User [GET /users/{id}]
|
|
|
|
Get single army member information
|
|
|
|
+ Parameters
|
|
+ id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of army-member
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (UserPopulated, fixed-type)
|
|
|
|
|
|
### Create User [POST /users]
|
|
|
|
Create a new army member
|
|
|
|
**Permission: 2**
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ username: `[GNC]Paolo` (string, required) - display name of the user
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (UserInclTimestamp, fixed-type)
|
|
|
|
### Update User [PUT /users/{id}]
|
|
|
|
Update an army member, identified by its id
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abd4780396bc0487068be0e` (string, required) - unique id of army-member
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ _id: `5abd4780396bc0487068be0e` (string, required) - unique id of army-member
|
|
+ username: `Paolo` (string, optional) - display name of the user
|
|
+ rankLvl: 22 (number, optional) - rank level representing the rank
|
|
+ squadId: `591470249e9fae286e008e31` (string, optional) - squadId of squad which army member is part of
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (User, fixed-type)
|
|
|
|
|
|
### Delete User [DELETE /users/{id}]
|
|
|
|
Delete an army member
|
|
|
|
**Permission: 2**
|
|
|
|
+ Parameters
|
|
+ id: `5abd4780396bc0487068be0e` (string, required) - unique id of army-member
|
|
|
|
+ Response 204
|
|
|
|
# Group Wars
|
|
|
|
### List Wars [GET /wars{?campaignId}]
|
|
|
|
List all wars
|
|
|
|
+ Parameters
|
|
+ campaignId: `5abd55ea9e30a76bfef747d6` (string, optional) - show only wars from campaign with this id
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (array[War], fixed-type)
|
|
|
|
### Get War [GET /wars/{id}]
|
|
|
|
Retrieve single war data
|
|
|
|
+ Parameters
|
|
+ id: `5abf65ae3fc5fa349ffd5ca3` (string, required) - unique id of the war to fetch
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (WarWithPlayers, fixed-type)
|
|
|
|
|
|
### Create War [POST /wars]
|
|
|
|
Create a new war
|
|
|
|
**Permission: 3**
|
|
|
|
*NOTE: First line of the log file sent should be NOT beginning of actual game logs! This might result in unparsable line.*
|
|
|
|
+ Request (multipart/form-data; boundary=---BOUNDARY)
|
|
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="title"
|
|
Content-Type: text/plain
|
|
|
|
Battle XY
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="campaign"
|
|
Content-Type: text/plain
|
|
|
|
5abd55ea9e30a76bfef747d6
|
|
-----BOUNDARY
|
|
Content-Disposition: form-data; name="log"; filename="war_2018_log.rpt"
|
|
Content-Type: text/plain
|
|
|
|
\
|
|
2018/03/20, 20:05:43 "[OPT] (Budget) LOG: 0:00:00 --- Startbudget: NATO 4.5355e+006 - CSAT 4.22125e+006"
|
|
2018/03/20, 20:06:45 "[OPT] (Budget) LOG: 0:01:02 --- NATO alt: 4.5355e+006 - neu: 4.1955e+006 - Differenz: -340000"
|
|
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Saxe (WEST) von: Selbstverschulden."
|
|
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Pumarang (WEST) von: Saxe (WEST)."
|
|
2018/03/20, 20:10:13 "[OPT] (Budget) LOG: 0:04:30 --- CSAT alt: 2.38425e+006 - neu: 2.32425e+006 - Differenz: -60000"
|
|
2018/03/20, 20:10:38 "[OPT] (Respawn) LOG: 0:04:55 --- Spieler: Pumarang - Kosten: 3000"
|
|
2018/03/20, 20:15:54 "[OPT] (Punkte) LOG: 0:10:11 --- Kein Dominator (NATO 0 | CSAT 0)"
|
|
2018/03/20, 20:17:51 "[OPT] (Abschuss) LOG: 0:12:08 --- patze (EAST) von: Wiesl (WEST)."
|
|
2018/03/20, 20:18:20 "[OPT] (Fahne) LOG: 0:12:37 --- CSAT Flagge erobert von Wiesl"
|
|
2018/03/20, 20:18:38 "[OPT] (Abschuss) LOG: 0:12:55 --- Nicolas (WEST) von: Wiesl (WEST)."
|
|
2018/03/20, 20:18:59 "[OPT] (Punkte) LOG: 0:13:16 --- NATO +1 (NATO 1 | CSAT 0)"
|
|
2018/03/20, 20:19:38 "[OPT] (Fahne) LOG: 0:13:56 --- CSAT Flagge gesichert von ALASTOR"
|
|
2018/03/20, 20:22:18 "[OPT] (Abschuss) LOG: 0:16:35 --- Fahrzeug: Hunter-HMG (OPT_NATO) von: Murda]X[ (EAST)."
|
|
2018/03/20, 20:37:19 "[OPT] (Transport) LOG: 0:31:36 --- Dominik (WEST) wurde von Ponykloete (WEST) eingeflogen (8666.94 m)"
|
|
2018/03/20, 20:41:27 "[OPT] (Revive) LOG: 0:35:44 --- Bodochecker (EAST) wurde von ALASTOR (EAST) stabilisiert."
|
|
2018/03/20, 20:41:35 "[OPT] (Revive) LOG: 0:35:52 --- Andi-de (WEST) wurde von Wiesl (WEST) wiederbelebt."
|
|
2018/03/20, 22:35:43 "[OPT] (Mission) LOG: 2:30:00 --- Missionzeit abgelaufen"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Pumarang (WEST), PUID 76561198050321485"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Mercurat (WEST), PUID 76561198278842491"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- KalleK (EAST), PUID 76561197977676036"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- MAPster (EAST), PUID 76561198009882133"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- LyrikEmu (WEST), PUID 76561198218910400"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Philipp (EAST), PUID 76561198041792069"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Wiesl (WEST), PUID 76561198059648090"
|
|
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Murda]X[ (EAST), PUID 76561197971121630"
|
|
2018/03/20, 22:35:43 "[OPT] (Budget) LOG: 2:30:00 --- Endbudget: (NATO 1997000 | CSAT 512000)"
|
|
2018/03/20, 22:35:43 "[OPT] (Punkte) LOG: 2:30:00 --- Endpunktestand: (NATO 34 | CSAT 25)"
|
|
-----BOUNDARY--
|
|
|
|
+ Response 201 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (War, fixed-type)
|
|
|
|
### Update War [PATCH /wars/{id}]
|
|
|
|
Update a war, identified by its id
|
|
|
|
**Permission: 3**
|
|
|
|
+ Parameters
|
|
+ id: `5abf65ae2df5fa349ffd5ca3` (string, required) - unique id of campaign
|
|
|
|
+ Request (application/json)
|
|
|
|
+ Attributes
|
|
+ _id: `5abf65ae2df5fa349ffd5ca3` (string, required) - unique id of war
|
|
+ title: `Final Touchdown` (string, optional) - display name of the war
|
|
+ date: `2017-05-11T20:00:00.471Z` (string, optional) - starting date
|
|
+ endDate: `2017-05-12T00:30:32.471Z` (string, optional) - end date
|
|
+ ptBlufor: 5 (number, optional) - points Blufor
|
|
+ ptOpfor: 5 (number, optional) - points Opfor
|
|
+ playersBlufor: 20 (number, optional) - number of players Blufor
|
|
+ playersOpfor: 20 (number, optional) - number of players Opfor
|
|
+ budgetBlufor: 3000000 (number, optional) - start budget Blufor
|
|
+ budgetOpfor: 3000000 (number, optional) - start budget Opfor
|
|
+ endBudgetBlufor: 10000 (number, optional) - end budget Blufor
|
|
+ endBudgetOpfor: 12000 (number, optional) - end budget Opfor
|
|
|
|
+ Response 200 (application/json; charset=utf-8)
|
|
|
|
+ Attributes (War, fixed-type)
|
|
|
|
### Delete War [DELETE /wars/{id}]
|
|
|
|
Delete a war
|
|
|
|
**Permission: 3**
|
|
|
|
+ Parameters
|
|
+ id: `5abf65d83fc5fa349ffd5cbb` (string, required) - unique id of the war
|
|
|
|
+ Response 204
|
|
|