diff --git a/docs/openapi.md b/docs/openapi.md new file mode 100644 index 0000000..7bc6ab0 --- /dev/null +++ b/docs/openapi.md @@ -0,0 +1,1857 @@ +--- +title: OpenAPI v1.0 +language_tabs: + - javascript: JavaScript +language_clients: + - javascript: request. +toc_footers: [] +includes: [] +search: true +highlight_theme: darkula +headingLevel: 2 + +--- + + + +

OpenAPI v1.0

+ +> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu. + +Base URLs: + +* https://tone.sleepycat.date/v1 + +# Authentication + +- HTTP Authentication, scheme: basic + +

Default

+ +## post-servers-register + + + +> Code samples + +```javascript +const inputBody = '{ + "name": "string", + "description": "string", + "auth_port": 8081 +}'; +const headers = { + 'Content-Type':'application/json', + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/servers/register', +{ + method: 'POST', + body: inputBody, + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`POST /servers/register` + +Register a server on Tone API. +The server needs to be online on masterserver and reacheable by Tone. + +> Body parameter + +```json +{ + "name": "string", + "description": "string", + "auth_port": 8081 +} +``` + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|object|false|none| +|» name|body|string|true|The name of your server as it appears on Northstar| +|» description|body|string|true|The description of your server as it appears on Northstar| +|» auth_port|body|integer(uri)|true|In most cases, this is the IP address of your server with the TCP port you forwarded| + +> Example responses + +> 201 Response + +```json +{ + "id": 0, + "token": "string" +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created|Inline| +|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None| + +

Response Schema

+ +Status Code **201** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» id|integer|false|none|none| +|» token|string|false|none|none| + + + +

server

+ +Everything about servers + +## post-servers-serverId + + + +> Code samples + +```javascript + +fetch('https://tone.sleepycat.date/v1/servers/{serverId}', +{ + method: 'POST' + +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`POST /servers/{serverId}` + +Used to test auth + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|serverId|path|string|true|none| + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|None| +|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None| + + + +## post-kills + + + +> Code samples + +```javascript +const inputBody = '{ + "tone_version": "string", + "match_id": "string", + "game_mode": "string", + "map": "string", + "game_time": "14:15:22Z", + "player_count": 0, + "attacker_name": "string", + "attacker_id": 0, + "attacker_current_weapon": "string", + "attacker_current_weapon_mods": 0, + "attacker_weapon_1": "string", + "attacker_weapon_1_mods": 0, + "attacker_weapon_2": "string", + "attacker_weapon_2_mods": 0, + "attacker_weapon_3": "string", + "attacker_weapon_3_mods": 0, + "attacker_offhand_weapon_1": 0, + "attacker_offhand_weapon_2": 0, + "victim_name": "string", + "victim_id": 0, + "victim_current_weapon": "string", + "victim_current_weapon_mods": 0, + "victim_weapon_1": "string", + "victim_weapon_1_mods": 0, + "victim_weapon_2": "string", + "victim_weapon_2_mods": 0, + "victim_weapon_3": "string", + "victim_weapon_3_mods": 0, + "victim_offhand_weapon_1": 0, + "victim_offhand_weapon_2": 0, + "cause_of_death": "string", + "distance": 0 +}'; +const headers = { + 'Content-Type':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/servers/{serverId}/kills', +{ + method: 'POST', + body: inputBody, + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`POST /servers/{serverId}/kills` + +*Post kills* + +Allows a Northstar server to record kills on the database + +> Body parameter + +```json +{ + "tone_version": "string", + "match_id": "string", + "game_mode": "string", + "map": "string", + "game_time": "14:15:22Z", + "player_count": 0, + "attacker_name": "string", + "attacker_id": 0, + "attacker_current_weapon": "string", + "attacker_current_weapon_mods": 0, + "attacker_weapon_1": "string", + "attacker_weapon_1_mods": 0, + "attacker_weapon_2": "string", + "attacker_weapon_2_mods": 0, + "attacker_weapon_3": "string", + "attacker_weapon_3_mods": 0, + "attacker_offhand_weapon_1": 0, + "attacker_offhand_weapon_2": 0, + "victim_name": "string", + "victim_id": 0, + "victim_current_weapon": "string", + "victim_current_weapon_mods": 0, + "victim_weapon_1": "string", + "victim_weapon_1_mods": 0, + "victim_weapon_2": "string", + "victim_weapon_2_mods": 0, + "victim_weapon_3": "string", + "victim_weapon_3_mods": 0, + "victim_offhand_weapon_1": 0, + "victim_offhand_weapon_2": 0, + "cause_of_death": "string", + "distance": 0 +} +``` + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[Kill](#schemakill)|false|none| +|serverId|path|string|true|none| + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created|None| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None| +|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None| + + + +

weapon

+ +Everything about weapons + +## get-weapon-list + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/weapons/', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /weapons/` + +*List Weapons* + +> Example responses + +> 200 Response + +```json +[ + { + "id": "string", + "name": "Kraber", + "description": "string", + "image": "https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png" + } +] +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|*anonymous*|[[Weapon](#schemaweapon)]|false|none|none| +|» Weapon|[Weapon](#schemaweapon)|false|none|none| +|»» id|[WeaponID](#schemaweaponid)|true|none|none| +|»» name|string|false|none|none| +|»» description|string|false|none|none| +|»» image|string(uri)|false|none|none| + + + +

map

+ +Everything about maps + +## get-map-list + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/maps/', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /maps/` + +*List Maps* + +> Example responses + +> 200 Response + +```json +[ + { + "id": "string", + "name": "Angel City", + "description": "string", + "image": "https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg" + } +] +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|*anonymous*|[[Map](#schemamap)]|false|none|none| +|» Map|[Map](#schemamap)|false|none|none| +|»» id|[MapID](#schemamapid)|true|none|none| +|»» name|string|false|none|none| +|»» description|string|false|none|none| +|»» image|string(uri)|false|none|none| + + + +

client

+ +## get-server-list + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/client/servers/', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /client/servers/` + +*Get Server list* + +> Example responses + +> 200 Response + +```json +[ + { + "id": 1, + "name": "fvnknoots 7v7" + } +] +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|*anonymous*|[[Server](#schemaserver)]|false|none|none| +|» Server|[Server](#schemaserver)|false|none|none| +|»» id|integer|false|none|none| +|»» name|string|false|none|none| + + + +## get-player-list-for-server + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/client/servers/{serverId}/players', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /client/servers/{serverId}/players` + +*List Players for Server* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|serverId|path|string|true|none| + +> Example responses + +> OK + +```json +{ + "2250487322": { + "kills": "16", + "deaths": "3" + }, + "2264540539": { + "kills": "0", + "deaths": "3" + }, + "2275398718": { + "kills": "28", + "deaths": "36" + }, + "2279483655": { + "kills": "124", + "deaths": "80" + }, + "2293751643": { + "kills": "88", + "deaths": "122" + }, + "2317053736": { + "kills": "3", + "deaths": "6" + }, + "2365696799": { + "kills": "69", + "deaths": "64" + }, + "2369053412": { + "kills": "1", + "deaths": "4" + }, + "2372259449": { + "kills": "2", + "deaths": "8" + }, + "2383354003": { + "kills": "8", + "deaths": "8" + }, + "2394254742": { + "kills": "31", + "deaths": "19" + }, + "2420152141": { + "kills": "52", + "deaths": "34" + }, + "2434511212": { + "kills": "2", + "deaths": "9" + }, + "2459505766": { + "kills": "31", + "deaths": "17" + }, + "2480498234": { + "kills": "60", + "deaths": "26" + }, + "2547349226": { + "kills": "2", + "deaths": "1" + }, + "2651468854": { + "kills": "37", + "deaths": "27" + }, + "2789001756": { + "kills": "1", + "deaths": "3" + }, + "2793671940": { + "kills": "1", + "deaths": "10" + }, + "2808303632": { + "kills": "9", + "deaths": "14" + }, + "1004339478890": { + "kills": "209", + "deaths": "75" + }, + "1009631167271": { + "kills": "152", + "deaths": "79" + }, + "1010859553275": { + "kills": "152", + "deaths": "95" + }, + "1013394101159": { + "kills": "146", + "deaths": "157" + }, + "1008532828425": { + "kills": "120", + "deaths": "160" + }, + "1005930844007": { + "kills": "116", + "deaths": "71" + }, + "1008777336129": { + "kills": "113", + "deaths": "62" + }, + "1006452683408": { + "kills": "89", + "deaths": "118" + }, + "1009306948106": { + "kills": "79", + "deaths": "77" + }, + "1001539583158": { + "kills": "77", + "deaths": "54" + }, + "1008553404453": { + "kills": "74", + "deaths": "41" + }, + "1000785195758": { + "kills": "71", + "deaths": "97" + }, + "1012146561597": { + "kills": "70", + "deaths": "67" + }, + "1008048039568": { + "kills": "69", + "deaths": "43" + }, + "1006792160784": { + "kills": "64", + "deaths": "84" + }, + "1000243552229": { + "kills": "64", + "deaths": "82" + }, + "1002847919723": { + "kills": "63", + "deaths": "42" + }, + "1006547511738": { + "kills": "59", + "deaths": "29" + }, + "1008296544768": { + "kills": "56", + "deaths": "63" + }, + "1010475004425": { + "kills": "53", + "deaths": "28" + }, + "1009683708233": { + "kills": "53", + "deaths": "127" + }, + "1007916824452": { + "kills": "52", + "deaths": "38" + }, + "1005789878582": { + "kills": "50", + "deaths": "41" + }, + "1000208553932": { + "kills": "48", + "deaths": "40" + }, + "1011886375716": { + "kills": "47", + "deaths": "27" + }, + "1010766135749": { + "kills": "45", + "deaths": "56" + }, + "1009353300588": { + "kills": "44", + "deaths": "18" + }, + "1000563596599": { + "kills": "44", + "deaths": "47" + }, + "1008076070452": { + "kills": "42", + "deaths": "33" + }, + "1000170397365": { + "kills": "41", + "deaths": "33" + }, + "1007384912695": { + "kills": "41", + "deaths": "55" + }, + "1009289344839": { + "kills": "40", + "deaths": "91" + }, + "1002547370637": { + "kills": "40", + "deaths": "21" + }, + "1008848730302": { + "kills": "40", + "deaths": "78" + }, + "1002965199684": { + "kills": "39", + "deaths": "40" + }, + "1008704914497": { + "kills": "38", + "deaths": "21" + }, + "1000680732650": { + "kills": "38", + "deaths": "21" + }, + "1009020277340": { + "kills": "37", + "deaths": "43" + }, + "1009001081875": { + "kills": "37", + "deaths": "57" + }, + "1002862920668": { + "kills": "34", + "deaths": "26" + }, + "1007927614255": { + "kills": "34", + "deaths": "61" + }, + "1007344081350": { + "kills": "32", + "deaths": "54" + }, + "1000689836348": { + "kills": "30", + "deaths": "24" + }, + "1002365588355": { + "kills": "28", + "deaths": "32" + }, + "1000599975674": { + "kills": "28", + "deaths": "18" + }, + "1009981913274": { + "kills": "26", + "deaths": "16" + }, + "1003950824662": { + "kills": "26", + "deaths": "13" + }, + "1000474582791": { + "kills": "26", + "deaths": "32" + }, + "1007213425353": { + "kills": "26", + "deaths": "44" + }, + "1009295548275": { + "kills": "25", + "deaths": "41" + }, + "1007246486495": { + "kills": "23", + "deaths": "26" + }, + "1012332759108": { + "kills": "22", + "deaths": "21" + }, + "1004355057125": { + "kills": "21", + "deaths": "54" + }, + "1010246320749": { + "kills": "21", + "deaths": "23" + }, + "1009763674601": { + "kills": "19", + "deaths": "21" + }, + "1000991748686": { + "kills": "19", + "deaths": "14" + }, + "1003495333189": { + "kills": "19", + "deaths": "32" + }, + "1012863344924": { + "kills": "19", + "deaths": "28" + }, + "1005030069502": { + "kills": "18", + "deaths": "24" + }, + "1011188414213": { + "kills": "17", + "deaths": "13" + }, + "1006943687079": { + "kills": "17", + "deaths": "28" + }, + "1000314539111": { + "kills": "17", + "deaths": "13" + }, + "1007803613856": { + "kills": "12", + "deaths": "19" + }, + "1006068335533": { + "kills": "12", + "deaths": "16" + }, + "1009495187105": { + "kills": "10", + "deaths": "6" + }, + "1009388895366": { + "kills": "9", + "deaths": "41" + }, + "1007511112791": { + "kills": "8", + "deaths": "11" + }, + "1004230608953": { + "kills": "7", + "deaths": "6" + }, + "1009058558981": { + "kills": "7", + "deaths": "8" + }, + "1009752496386": { + "kills": "7", + "deaths": "35" + }, + "1007983554545": { + "kills": "7", + "deaths": "4" + }, + "1012165044680": { + "kills": "6", + "deaths": "4" + }, + "1011679847131": { + "kills": "6", + "deaths": "11" + }, + "1009810188385": { + "kills": "6", + "deaths": "6" + }, + "1003340724325": { + "kills": "5", + "deaths": "2" + }, + "1000250176837": { + "kills": "4", + "deaths": "4" + }, + "1006902817643": { + "kills": "4", + "deaths": "8" + }, + "1000436348239": { + "kills": "4", + "deaths": "3" + }, + "1011584031432": { + "kills": "4", + "deaths": "6" + }, + "1013302746779": { + "kills": "4", + "deaths": "10" + }, + "1002319733641": { + "kills": "3", + "deaths": "8" + }, + "1008766563524": { + "kills": "3", + "deaths": "5" + }, + "1010590824824": { + "kills": "3", + "deaths": "6" + }, + "1014450712715": { + "kills": "3", + "deaths": "15" + }, + "1011819105616": { + "kills": "3", + "deaths": "11" + }, + "1013339742185": { + "kills": "3", + "deaths": "11" + }, + "1007720444069": { + "kills": "3", + "deaths": "6" + }, + "1010050271094": { + "kills": "3", + "deaths": "9" + }, + "1008220179508": { + "kills": "3", + "deaths": "17" + }, + "1008335546916": { + "kills": "3", + "deaths": "7" + }, + "1008176168711": { + "kills": "3", + "deaths": "10" + }, + "1007793002161": { + "kills": "3", + "deaths": "14" + }, + "1009137965834": { + "kills": "2", + "deaths": "9" + }, + "1012089978411": { + "kills": "2", + "deaths": "10" + }, + "1003566577430": { + "kills": "2", + "deaths": "9" + }, + "1006446444857": { + "kills": "2", + "deaths": "1" + }, + "1009129948330": { + "kills": "2", + "deaths": "2" + }, + "1009320303734": { + "kills": "2", + "deaths": "4" + }, + "1011425349538": { + "kills": "2", + "deaths": "7" + }, + "1000082780513": { + "kills": "2", + "deaths": "28" + }, + "1009059593350": { + "kills": "2", + "deaths": "12" + }, + "1008930859124": { + "kills": "2", + "deaths": "3" + }, + "1011062416507": { + "kills": "2", + "deaths": "15" + }, + "1008322047749": { + "kills": "1", + "deaths": "5" + }, + "1010909176351": { + "kills": "1", + "deaths": "3" + }, + "1009015699732": { + "kills": "1", + "deaths": "9" + }, + "1010938099750": { + "kills": "1", + "deaths": "10" + }, + "1009920857596": { + "kills": "1", + "deaths": "3" + }, + "1001248580325": { + "kills": "1", + "deaths": "2" + }, + "1003395331672": { + "kills": "1", + "deaths": "0" + }, + "1008850794164": { + "kills": "1", + "deaths": "1" + }, + "1002970526901": { + "kills": "1", + "deaths": "10" + }, + "1009585427210": { + "kills": "0", + "deaths": "7" + }, + "1010044829720": { + "kills": "0", + "deaths": "2" + }, + "1010302326976": { + "kills": "0", + "deaths": "2" + }, + "1011336094869": { + "kills": "0", + "deaths": "1" + }, + "1010890839674": { + "kills": "0", + "deaths": "2" + }, + "1003009344333": { + "kills": "0", + "deaths": "2" + }, + "1010690831586": { + "kills": "0", + "deaths": "1" + }, + "1012016676172": { + "kills": "0", + "deaths": "3" + }, + "1010958615370": { + "kills": "0", + "deaths": "1" + }, + "1010804831845": { + "kills": "0", + "deaths": "4" + }, + "1014036958511": { + "kills": "0", + "deaths": "5" + }, + "1013377950364": { + "kills": "0", + "deaths": "3" + }, + "1003516913859": { + "kills": "0", + "deaths": "2" + }, + "1005317405570": { + "kills": "0", + "deaths": "1" + }, + "1010373048502": { + "kills": "0", + "deaths": "1" + }, + "1000319933061": { + "kills": "0", + "deaths": "2" + }, + "1013284789566": { + "kills": "0", + "deaths": "4" + }, + "1000180555075": { + "kills": "0", + "deaths": "5" + }, + "1004519819956": { + "kills": "0", + "deaths": "1" + }, + "1008082281599": { + "kills": "0", + "deaths": "2" + }, + "1009413737635": { + "kills": "0", + "deaths": "1" + }, + "1003853474628": { + "kills": "0", + "deaths": "4" + }, + "1013146253403": { + "kills": "0", + "deaths": "5" + }, + "1010845289697": { + "kills": "0", + "deaths": "4" + }, + "1007170712677": { + "kills": "0", + "deaths": "3" + }, + "1011747811565": { + "kills": "0", + "deaths": "3" + }, + "1008770977823": { + "kills": "0", + "deaths": "1" + }, + "1006338144987": { + "kills": "0", + "deaths": "1" + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» [id]|object|false|none|none| +|»» kills|integer|false|none|none| +|»» deaths|integer|false|none|none| +|»» last_seen|string(date-time)|false|none|none| +|»» first_seen|string(date-time)|false|none|none| +|»» max_kill_distance|number|false|none|none| +|»» avg_kill_distance|number|false|none|none| + + + +## get-weapons-report-for-server + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/client/servers/{serverId}/weapons', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /client/servers/{serverId}/weapons` + +*Get Weapon report for server* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|serverId|path|string|true|none| + +> Example responses + +> OK + +```json +{ + "sniper": { + "kills": "1180", + "avg_kill_distance": "806", + "max_kill_distance": "3454" + }, + "wingman_n": { + "kills": "831", + "avg_kill_distance": "608", + "max_kill_distance": "2834" + }, + "mastiff": { + "kills": "425", + "avg_kill_distance": "318", + "max_kill_distance": "1570" + }, + "epg": { + "kills": "386", + "avg_kill_distance": "468", + "max_kill_distance": "3023" + }, + "semipistol": { + "kills": "196", + "avg_kill_distance": "370", + "max_kill_distance": "1104" + }, + "thermite_grenade": { + "kills": "142", + "avg_kill_distance": "469", + "max_kill_distance": "1472" + }, + "softball": { + "kills": "139", + "avg_kill_distance": "435", + "max_kill_distance": "1303" + }, + "doubletake": { + "kills": "136", + "avg_kill_distance": "852", + "max_kill_distance": "2618" + }, + "shotgun_pistol": { + "kills": "135", + "avg_kill_distance": "439", + "max_kill_distance": "1419" + }, + "wingman": { + "kills": "98", + "avg_kill_distance": "473", + "max_kill_distance": "1854" + }, + "shotgun": { + "kills": "87", + "avg_kill_distance": "311", + "max_kill_distance": "745" + }, + "pilot_emptyhanded": { + "kills": "65", + "avg_kill_distance": "44", + "max_kill_distance": "115" + }, + "defender": { + "kills": "62", + "avg_kill_distance": "1070", + "max_kill_distance": "3835" + }, + "satchel": { + "kills": "54", + "avg_kill_distance": "503", + "max_kill_distance": "1047" + }, + "grenade_sonar": { + "kills": "43", + "avg_kill_distance": "491", + "max_kill_distance": "1205" + }, + "smr": { + "kills": "27", + "avg_kill_distance": "490", + "max_kill_distance": "1405" + }, + "grenade_electric_smoke": { + "kills": "8", + "avg_kill_distance": "527", + "max_kill_distance": "987" + }, + "human_execution": { + "kills": "4", + "avg_kill_distance": "45", + "max_kill_distance": "71" + }, + "fall": { + "kills": "1", + "avg_kill_distance": "876", + "max_kill_distance": "876" + }, + "arc_launcher": { + "kills": "1", + "avg_kill_distance": "454", + "max_kill_distance": "454" + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» [weaponID]|object|false|none|none| +|»» kills|integer|false|none|none| +|»» avg_kill_distance|number|false|none|none| +|»» max_kill_distance|number|false|none|none| + + + +## get-player-on-server + + + +> Code samples + +```javascript + +const headers = { + 'Accept':'application/json' +}; + +fetch('https://tone.sleepycat.date/v1/client/servers/{serverId}/players/{playerId}', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /client/servers/{serverId}/players/{playerId}` + +*Get Player report for Server* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|playerId|path|integer|true|none| +|serverId|path|integer|true|none| + +> Example responses + +> OK + +```json +{ + "last_seen": "Mon Mar 13 2023 13:42:15 GMT+0100 (heure normale d’Europe centrale)", + "max_kill_distance": "1160", + "avg_kill_distance": "400.5000000000000000", + "first_seen": "Mon Mar 13 2023 13:30:13 GMT+0100 (heure normale d’Europe centrale)", + "deaths": "21", + "kills": "22", + "weapons": { + "epg": { + "kills": "21", + "deaths": "8", + "avg_kill_distance": "395", + "max_kill_distance": "1160" + }, + "thermite_grenade": { + "kills": "1", + "deaths": "0", + "avg_kill_distance": "505", + "max_kill_distance": "505" + }, + "mastiff": { + "kills": "0", + "deaths": "5", + "avg_kill_distance": "0", + "max_kill_distance": "0" + }, + "wingman_n": { + "kills": "0", + "deaths": "8", + "avg_kill_distance": "0", + "max_kill_distance": "0" + } + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline| +|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None| + +

Response Schema

+ +Status Code **200** + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» kills|integer|false|none|Number of kills of the user in this server| +|» deaths|integer|false|none|Number of deaths of the user in this server| +|» first_time_seen|string(date-time)|false|none|none| +|» last_time_seen|string(date-time)|false|none|none| +|» max_kill_distance|number|false|none|none| +|» avg_kill_distance|number|false|none|none| +|» weapons|object|false|none|none| +|»» [weaponId]|[PrefferedWeapon](#schemaprefferedweapon)|false|none|none| +|»»» kills|integer|false|none|none| +|»»» deaths|integer|false|none|none| +|»»» max_kill_distance|integer|false|none|none| +|»»» avg_kill_distance|integer|false|none|none| + + + +# Schemas + +

Player

+ + + + + + +```json +{ + "id": 0, + "name": "Legonzaur", + "opt-out": false, + "hide_TOS": false +} + +``` + +Player + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|id|[PlayerID](#schemaplayerid)|true|none|none| +|name|string|false|none|none| +|opt-out|boolean|false|none|If set to true, kills and deaths about this user won't be sent to the database| +|hide_TOS|boolean|false|none|If set to true, TOS will be hidden when player joins a server| + +

Weapon

+ + + + + + +```json +{ + "id": "string", + "name": "Kraber", + "description": "string", + "image": "https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png" +} + +``` + +Weapon + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|id|[WeaponID](#schemaweaponid)|true|none|none| +|name|string|false|none|none| +|description|string|false|none|none| +|image|string(uri)|false|none|none| + +

Map

+ + + + + + +```json +{ + "id": "string", + "name": "Angel City", + "description": "string", + "image": "https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg" +} + +``` + +Map + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|id|[MapID](#schemamapid)|true|none|none| +|name|string|false|none|none| +|description|string|false|none|none| +|image|string(uri)|false|none|none| + +

Server

+ + + + + + +```json +{ + "id": 1, + "name": "fvnknoots 7v7" +} + +``` + +Server + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|id|integer|false|none|none| +|name|string|false|none|none| + +

Kill

+ + + + + + +```json +{ + "id": 0, + "server": "string", + "tone_version": "string", + "match_id": "string", + "game_mode": "string", + "map": "string", + "game_time": "14:15:22Z", + "player_count": 0, + "attacker_name": "string", + "attacker_id": 0, + "attacker_current_weapon": "string", + "attacker_current_weapon_mods": 0, + "attacker_weapon_1": "string", + "attacker_weapon_1_mods": 0, + "attacker_weapon_2": "string", + "attacker_weapon_2_mods": 0, + "attacker_weapon_3": "string", + "attacker_weapon_3_mods": 0, + "attacker_offhand_weapon_1": 0, + "attacker_offhand_weapon_2": 0, + "victim_name": "string", + "victim_id": 0, + "victim_current_weapon": "string", + "victim_current_weapon_mods": 0, + "victim_weapon_1": "string", + "victim_weapon_1_mods": 0, + "victim_weapon_2": "string", + "victim_weapon_2_mods": 0, + "victim_weapon_3": "string", + "victim_weapon_3_mods": 0, + "victim_offhand_weapon_1": 0, + "victim_offhand_weapon_2": 0, + "cause_of_death": "string", + "distance": 0 +} + +``` + +Kill + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|id|integer|false|read-only|none| +|server|string|false|read-only|none| +|tone_version|string|false|none|none| +|match_id|string|false|none|none| +|game_mode|string|false|none|none| +|map|string|false|none|none| +|game_time|string(time)|false|none|none| +|player_count|integer|false|none|none| +|attacker_name|string|false|none|none| +|attacker_id|integer|false|none|none| +|attacker_current_weapon|string|false|none|none| +|attacker_current_weapon_mods|integer|false|none|none| +|attacker_weapon_1|string|false|none|none| +|attacker_weapon_1_mods|integer|false|none|none| +|attacker_weapon_2|string|false|none|none| +|attacker_weapon_2_mods|integer|false|none|none| +|attacker_weapon_3|string|false|none|none| +|attacker_weapon_3_mods|integer|false|none|none| +|attacker_offhand_weapon_1|integer|false|none|none| +|attacker_offhand_weapon_2|integer|false|none|none| +|victim_name|string|false|none|none| +|victim_id|integer|false|none|none| +|victim_current_weapon|string|false|none|none| +|victim_current_weapon_mods|integer|false|none|none| +|victim_weapon_1|string|false|none|none| +|victim_weapon_1_mods|integer|false|none|none| +|victim_weapon_2|string|false|none|none| +|victim_weapon_2_mods|integer|false|none|none| +|victim_weapon_3|string|false|none|none| +|victim_weapon_3_mods|integer|false|none|none| +|victim_offhand_weapon_1|integer|false|none|none| +|victim_offhand_weapon_2|integer|false|none|none| +|cause_of_death|string|true|none|none| +|distance|number|false|none|none| + +

PlayerID

+ + + + + + +```json +0 + +``` + +PlayerId + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|PlayerId|integer|false|none|none| + +

WeaponID

+ + + + + + +```json +"string" + +``` + +WeaponID + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|WeaponID|string|false|none|none| + +

MapID

+ + + + + + +```json +"string" + +``` + +MapID + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|MapID|string|false|none|none| + +

PrefferredServer

+ + + + + + +```json +{ + "server": { + "id": 1, + "name": "fvnknoots 7v7" + }, + "killCount": 4988, + "deathCount": 4671 +} + +``` + +PrefferredServer + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|server|[Server](#schemaserver)|false|none|none| +|killCount|integer|false|none|none| +|deathCount|integer|false|none|none| + +

PrefferedWeapon

+ + + + + + +```json +{ + "kills": 0, + "deaths": 0, + "max_kill_distance": 0, + "avg_kill_distance": 0 +} + +``` + +PrefferedWeapon + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|kills|integer|false|none|none| +|deaths|integer|false|none|none| +|max_kill_distance|integer|false|none|none| +|avg_kill_distance|integer|false|none|none| + +

PrefferedMap

+ + + + + + +```json +{ + "map": { + "id": "string", + "name": "Angel City", + "description": "string", + "image": "https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg" + }, + "killCount": 0, + "deathCount": 0 +} + +``` + +PrefferedMap + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|map|[Map](#schemamap)|false|none|none| +|killCount|integer|false|none|none| +|deathCount|integer|false|none|none| + +

TopPlayers

+ + + + + + +```json +{ + "player": { + "id": 0, + "name": "Legonzaur", + "opt-out": false, + "hide_TOS": false + }, + "kill_count": 0, + "death_count": 0 +} + +``` + +TopPlayers + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|player|[Player](#schemaplayer)|false|none|none| +|kill_count|integer|false|none|none| +|death_count|integer|false|none|none| + diff --git a/package.json b/package.json index a4d5009..5b7cbe5 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "build": "npx tsc", "startServer": "node out/serverMain.js", "startClient": "node out/clientMain.js", - "documentation": "widdershins reference/OpenAPI.yml -o reference/openapi.md --language_tabs javascript:JavaScript:request.", + "documentation": "widdershins reference/OpenAPI.yml -o docs/openapi.md --language_tabs javascript:JavaScript:request.", "test": "jest" } } \ No newline at end of file