diff --git a/server/apib/admin/signature.apib b/server/apib/admin/signature.apib index a718810..50058dd 100644 --- a/server/apib/admin/signature.apib +++ b/server/apib/admin/signature.apib @@ -5,10 +5,13 @@ Update an army members signature image **Permission: 4** + Parameters + + userId: `5ab68d42f547ed304064e5f7` (string, required) - army members unique user id + Request (application/json) - {} + + + Attributes (object) + + Response 200 (application/json; charset=utf-8) diff --git a/server/apib/army-management/users.apib b/server/apib/army-management/users.apib index a0c33fd..73711ca 100644 --- a/server/apib/army-management/users.apib +++ b/server/apib/army-management/users.apib @@ -1,8 +1,9 @@ -### List Users [GET /users{?q,fractFilter,limit,offset}] +### List Users [GET /users{?q,fractFilter,squadId,decorationId,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 @@ -12,17 +13,15 @@ Get single army member information + `OPFOR` + `GLOBAL` - + squadId: `591470249e9fae286e008e31` (string, optional) - Field to filter by membership of certain squad + + squadId: `5aba54eaeadcce6332c6a774` (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 + + limit: 20 (number, optional) - Maximum number of users to return + Default: Infinity - + offset: 0 (number, optional) - Offset into result-set (useful for pagination) + + offset: 0 (number, optional) - Offset into result-set (useful for pagination) + Default: 0 @@ -40,6 +39,7 @@ Get single army member information Get single army member information + Parameters + + id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of army-member + Response 200 (application/json; charset=utf-8) diff --git a/server/apib/data_structures/_campaign.apib b/server/apib/data_structures/_campaign.apib index ea79121..7b3dc9a 100644 --- a/server/apib/data_structures/_campaign.apib +++ b/server/apib/data_structures/_campaign.apib @@ -1,4 +1,5 @@ # Campaign (object) + Campaign entity ## Properties @@ -9,8 +10,10 @@ Campaign entity + __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) ++ wars: WarWithPlayers (array[WarWithPlayers], required) diff --git a/server/apib/dev-doc.apib b/server/apib/dev-doc.apib index 206c6e6..cb5fcb3 100644 --- a/server/apib/dev-doc.apib +++ b/server/apib/dev-doc.apib @@ -16,56 +16,66 @@ FORMAT: 1A # Group Access +## Endpoints [/auth] + :[Gists](auth/signup.apib) :[Gists](auth/login.apib) # Group Admin +## Account [/account] + :[Gists](admin/account.apib) +## Commands [/cmd] + :[Gists](admin/signature.apib) -# Group Army Overview +# Group Army Management + +## Army [/overview] :[Gists](army-management/army.apib) -# Group Awardings +## Awardings [/awarding] :[Gists](army-management/awardings.apib) -# Group Campaigns - -:[Gists](statistics/campaigns.apib) - -# Group Decorations +## Decorations [/decorations] :[Gists](army-management/decorations.apib) -# Group Logs - -:[Gists](statistics/logs.apib) - -# Group Players - -:[Gists](statistics/players.apib) - -# Group Promotion +## Promotion [/promotions] :[Gists](army-management/promotions.apib) -# Group Ranks +## Ranks [/ranks] :[Gists](army-management/ranks.apib) -# Group Squads +## Squads [/squads] :[Gists](army-management/squads.apib) -# Group Users +## Users [/user] :[Gists](army-management/users.apib) -# Group Wars +# Group Statistics + +## Campaigns [/campaigns] + +:[Gists](statistics/campaigns.apib) + +## Logs [/logs] + +:[Gists](statistics/logs.apib) + +## Players [/players] + +:[Gists](statistics/players.apib) + +## Wars [/wars] :[Gists](statistics/wars.apib) diff --git a/server/apib/documentation.apib b/server/apib/documentation.apib deleted file mode 100644 index be10d7c..0000000 --- a/server/apib/documentation.apib +++ /dev/null @@ -1,1454 +0,0 @@ -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" -``` - -## 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 -