From 4c24c6525f2a888af60c797b69afd6b2c5a8ae4a Mon Sep 17 00:00:00 2001 From: Legonzaur <34353603+Legonzaur@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:36:19 +0200 Subject: [PATCH] Add files via upload --- v1.yml | 592 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ v2.yml | 453 +++++++++++++++++++++++++++++++++++++++++++ v3.yml | 565 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1610 insertions(+) create mode 100644 v1.yml create mode 100644 v2.yml create mode 100644 v3.yml diff --git a/v1.yml b/v1.yml new file mode 100644 index 0000000..ccf2afa --- /dev/null +++ b/v1.yml @@ -0,0 +1,592 @@ +openapi: 3.0.2 +info: + title: ToneAPI + version: '1.0' + contact: + name: Legonzaur + url: 'https://github.com/Legonzaur' + license: + name: The Unlicense + url: 'https://unlicense.org/' + description: 'Stats tracking API for Titanfall 2 Northstar ' +servers: + - url: 'https://tone.sleepycat.date/v1' +paths: + /client/servers: + get: + summary: List of servers + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + title: Server + type: object + properties: + id: + type: integer + example: 1 + name: + type: string + example: fvnknoots 7v7 + examples: + Example 1: + value: + - id: 1 + name: fvnknoots 7v7 + operationId: get-server-list + description: An array containing the list of servers as objects + parameters: [] + /client/weapons: + get: + summary: Statistics for all weapons + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + hemlock: + title: Weapon + type: object + properties: + max_kill_distance: + type: integer + avg_kill_distance: + type: number + kills: + type: integer + examples: + Example 1: + value: + hemlock: + max_kill_distance: 0 + avg_kill_distance: 0 + kills: 0 + lstar: + max_kill_distance: 0 + avg_kill_distance: 0 + kills: 0 + operationId: get-client-weapons + parameters: + - name: server + in: query + required: false + schema: + type: number + example: 2 + description: Fetch data for specific server + - name: player + in: query + required: false + schema: + type: number + example: 1005930844007 + description: Fetch data for specific player + requestBody: + content: {} + description: A JSON Object with weapon IDS as keys and weapon data as value + description: A JSON Object with weapon IDs as key and weapon data as value + parameters: [] + '/client/weapons/{weaponId}': + parameters: + - schema: + type: string + example: epg + name: weaponId + in: path + required: true + description: ID of a weapon + get: + summary: Statistics for a single weapon + operationId: get-client-weapons-weaponId + requestBody: + content: {} + parameters: + - name: server + in: query + required: false + schema: + type: number + example: 2 + description: Fetch data for specific server + - name: player + in: query + required: false + schema: + type: number + example: 1005930844007 + description: Fetch data for specific player + description: Data for a specific weapon + responses: + '200': + description: OK + content: + application/json: + schema: + title: Weapon + type: object + properties: + max_kill_distance: + type: integer + x-stoplight: + id: npckmqv4zdoje + avg_kill_distance: + type: number + x-stoplight: + id: 8plgr96gp1ke8 + kills: + type: integer + x-stoplight: + id: pha6hu1qjfsgk + /client/players: + get: + summary: Statistics for all players + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '2250125460': + title: Player + type: object + properties: + name: + type: string + example: Legonzaur + deaths: + type: integer + kills: + type: integer + max_kill_distance: + type: integer + avg_kill_distance: + type: number + examples: + Example 1: + value: + '2250125460': + name: Legonzaur + deaths: 0 + kills: 0 + max_kill_distance: 0 + avg_kill_distance: 0 + operationId: get-client-players + parameters: + - name: weapon + in: query + required: false + schema: + type: string + example: epg + description: Fetch data for specific weapon + - name: server + in: query + required: false + schema: + type: number + example: 2 + description: Fetch data for specific server + description: A JSON Object with player IDs as key and player data as value + '/client/players/{playerId}': + parameters: + - schema: + type: string + name: playerId + in: path + required: true + description: ID of a player + get: + summary: Statistics for a single player + responses: + '200': + description: OK + content: + application/json: + schema: + title: Player + type: object + properties: + name: + type: string + example: Legonzaur + deaths: + type: integer + x-stoplight: + id: xhi261df7kcqo + kills: + type: integer + x-stoplight: + id: ofjpw5sevnf64 + max_kill_distance: + type: integer + x-stoplight: + id: qjqm0t2n6o93p + avg_kill_distance: + type: number + x-stoplight: + id: y0i5i1eja7v84 + operationId: get-client-players-playerId + parameters: + - name: server + in: query + required: false + schema: + type: number + example: 2 + description: Fetch data for specific server + - name: weapon + in: query + required: false + schema: + type: string + example: epg + description: Fetch data for specific weapon + description: Data for a specific player + '/servers/{serverId}': + parameters: + - schema: + type: string + example: '2' + name: serverId + in: path + required: true + description: ID of the server + post: + summary: '' + operationId: post-servers-serverId + responses: + '200': + description: OK + '403': + description: Forbidden + description: Used to test auth + security: + - Auth_Token: [] + '/servers/{serverId}/kill': + post: + summary: Post kills + operationId: post-kills + responses: + '201': + description: Created + '400': + description: Bad Request + '401': + description: Unauthorized + parameters: [] + security: + - Auth_Token: [] + description: Allows a Northstar server to record kills on the database + requestBody: + content: + application/json: + schema: + title: Kill + type: object + properties: + id: + type: integer + readOnly: true + server: + type: string + readOnly: true + tone_version: + type: string + match_id: + type: string + game_mode: + type: string + map: + type: string + game_time: + type: string + format: time + player_count: + type: integer + attacker_name: + type: string + attacker_id: + type: integer + attacker_current_weapon: + type: string + attacker_current_weapon_mods: + type: integer + attacker_weapon_1: + type: string + attacker_weapon_1_mods: + type: integer + attacker_weapon_2: + type: string + attacker_weapon_2_mods: + type: integer + attacker_weapon_3: + type: string + attacker_weapon_3_mods: + type: integer + attacker_offhand_weapon_1: + type: integer + attacker_offhand_weapon_2: + type: integer + victim_name: + type: string + victim_id: + type: integer + victim_current_weapon: + type: string + victim_current_weapon_mods: + type: integer + victim_weapon_1: + type: string + victim_weapon_1_mods: + type: integer + victim_weapon_2: + type: string + victim_weapon_2_mods: + type: integer + victim_weapon_3: + type: string + victim_weapon_3_mods: + type: integer + victim_offhand_weapon_1: + type: integer + victim_offhand_weapon_2: + type: integer + cause_of_death: + type: string + distance: + type: number + required: + - cause_of_death + description: '' + parameters: + - schema: + type: string + example: '2' + name: serverId + in: path + required: true + description: ID of the server +components: + schemas: + Player: + title: Player + x-stoplight: + id: c9lv0bwq7hdx7 + type: object + x-examples: + Example 1: + name: Legonzaur + deaths: 0 + kills: 0 + max_kill_distance: 0 + avg_kill_distance: 0 + properties: + name: + type: string + example: Legonzaur + deaths: + type: integer + x-stoplight: + id: xhi261df7kcqo + kills: + type: integer + x-stoplight: + id: ofjpw5sevnf64 + max_kill_distance: + type: integer + x-stoplight: + id: qjqm0t2n6o93p + avg_kill_distance: + type: number + x-stoplight: + id: y0i5i1eja7v84 + Weapon: + title: Weapon + x-stoplight: + id: l8j4cdsuxxrx0 + type: object + x-examples: + Example 1: + max_kill_distance: 0 + avg_kill_distance: 0 + kills: 0 + properties: + max_kill_distance: + type: integer + x-stoplight: + id: npckmqv4zdoje + avg_kill_distance: + type: number + x-stoplight: + id: 8plgr96gp1ke8 + kills: + type: integer + x-stoplight: + id: pha6hu1qjfsgk + Server: + title: Server + x-stoplight: + id: g45919da0b3rc + type: object + properties: + id: + type: integer + example: 1 + name: + type: string + example: fvnknoots 7v7 + Kill: + title: Kill + x-stoplight: + id: 8w7qpo5dz7fo9 + type: object + x-examples: + Example 1: + id: 0 + server: string + tone_version: ks_3.0.0 + match_id: 1cde15ee + game_mode: tdm + map: string + game_time: 385.417 + player_count: 1 + attacker_name: Legonzaur + attacker_id: 0 + attacker_current_weapon: rspn101 + attacker_current_weapon_mods: 0 + attacker_weapon_1: rspn101 + attacker_weapon_1_mods: 0 + attacker_weapon_2: autopistol + attacker_weapon_2_mods: 0 + attacker_weapon_3: defender + attacker_weapon_3_mods: 0 + attacker_offhand_weapon_1: 0 + attacker_offhand_weapon_2: 8 + victim_name: Legonzaur + victim_id: 0 + victim_current_weapon: rspn101 + victim_current_weapon_mods: 0 + victim_weapon_1: rspn101 + victim_weapon_1_mods: 0 + victim_weapon_2: autopistol + victim_weapon_2_mods: 0 + victim_weapon_3: defender + victim_weapon_3_mods: 0 + victim_offhand_weapon_1: 0 + victim_offhand_weapon_2: 8 + cause_of_death: frag_grenade + distance: 0 + properties: + id: + type: integer + readOnly: true + server: + type: string + readOnly: true + tone_version: + type: string + match_id: + type: string + game_mode: + type: string + map: + type: string + game_time: + type: string + format: time + player_count: + type: integer + attacker_name: + type: string + attacker_id: + type: integer + attacker_current_weapon: + type: string + attacker_current_weapon_mods: + type: integer + attacker_weapon_1: + type: string + attacker_weapon_1_mods: + type: integer + attacker_weapon_2: + type: string + attacker_weapon_2_mods: + type: integer + attacker_weapon_3: + type: string + attacker_weapon_3_mods: + type: integer + attacker_offhand_weapon_1: + type: integer + attacker_offhand_weapon_2: + type: integer + victim_name: + type: string + victim_id: + type: integer + victim_current_weapon: + type: string + victim_current_weapon_mods: + type: integer + victim_weapon_1: + type: string + victim_weapon_1_mods: + type: integer + victim_weapon_2: + type: string + victim_weapon_2_mods: + type: integer + victim_weapon_3: + type: string + victim_weapon_3_mods: + type: integer + victim_offhand_weapon_1: + type: integer + victim_offhand_weapon_2: + type: integer + cause_of_death: + type: string + distance: + type: number + required: + - cause_of_death + securitySchemes: + Auth_Token: + type: http + scheme: basic + parameters: + server: + name: server + in: query + required: false + schema: + type: number + example: 2 + description: Fetch data for specific server + player: + name: player + in: query + required: false + schema: + type: number + example: 1005930844007 + description: Fetch data for specific player + weapon: + name: weapon + in: query + required: false + schema: + type: string + example: epg + description: Fetch data for specific weapon + responses: {} + examples: {} diff --git a/v2.yml b/v2.yml new file mode 100644 index 0000000..ff4f20d --- /dev/null +++ b/v2.yml @@ -0,0 +1,453 @@ +openapi: 3.0.2 +info: + title: ToneAPI + version: '2.0' + contact: + name: Legonzaur + url: 'https://github.com/Legonzaur' + license: + name: The Unlicense + url: 'https://unlicense.org/' + description: |- + Stats tracking API for Titanfall 2 Northstar + + All query params can be negated using `!`. Example : (`https://tone.sleepycat.date/v2/client/gamemodes?gamemode=!sns`) +tags: + - name: client + description: Routes accessibles by everyone + - name: server + description: Routes accessibles only to server owners +servers: + - url: 'https://tone.sleepycat.date/v2' +paths: + /client/hosts: + get: + summary: List of hosts + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[number] host_id': + type: string + example: Fvnkhead + examples: + Example 1: + value: + '1': Fvnkhead + '2': Legonzaur + operationId: get-client-hosts + description: An object with host ID as keys and host name as values + /client/servers: + get: + summary: List of servers + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] server_name': + type: object + properties: + deaths: + type: integer + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + host: + type: integer + examples: + Example 1: + value: + fvnkhead's 3v3: + deaths: 79810 + kills: 76218 + max_distance: 3733 + total_distance: 42200935 + host: 1 + fvnkhead's 7v7: + deaths: 148609 + kills: 163272 + max_distance: 6578 + total_distance: 113915706 + host: 1 + operationId: get-server-list + description: A JSON object with server names as keys and server data as values + parameters: + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/host' + parameters: [] + /client/weapons: + get: + summary: Statistics for all weapons + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] weapon_id': + type: object + properties: + deaths: + type: integer + description: Number of deaths caused by this weapon + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + deaths_while_equipped: + type: integer + description: Number of deaths while this weapon is equipped + examples: + Example 1: + value: + autopistol: + deaths: 27 + kills: 28 + max_distance: 2173 + total_distance: 12792 + car: + deaths: 1394 + kills: 1534 + max_distance: 3217 + total_distance: 905505 + operationId: get-client-weapons + parameters: + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/host' + requestBody: + content: {} + description: A JSON Object with weapon IDS as keys and weapon data as value + description: A JSON Object with weapon IDs as keys and weapon data as values + parameters: [] + /client/players: + get: + summary: Statistics for all players + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[number] player_id': + type: object + properties: + deaths: + type: integer + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + username: + type: string + examples: + Example 1: + value: + '2250125460': + username: Legonzaur + deaths: 0 + kills: 0 + max_kill_distance: 0 + avg_kill_distance: 0 + operationId: get-client-players + parameters: + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/host' + description: A JSON Object with player IDs as keys and player data as values + /client/maps: + get: + summary: Statistics for all maps + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] map_id': + $ref: '#/components/schemas/KillData' + examples: + Example 1: + value: + lf_meadow: + deaths: 13628 + kills: 11791 + max_distance: 3970 + total_distance: 7139763 + lf_township: + deaths: 14861 + kills: 14232 + max_distance: 3642 + total_distance: 9022513 + operationId: get-client-maps + parameters: + - $ref: '#/components/parameters/host' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/server' + description: A JSON Object with map IDs as keys and map data as values + /client/gamemodes: + get: + summary: Statistics for all gamemodes + tags: + - client + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] gamemode_id': + $ref: '#/components/schemas/KillData' + examples: + Example 1: + value: + ps: + deaths: 273232 + kills: 286679 + max_distance: 8521 + total_distance: 184069789 + aitdm: + deaths: 11388 + kills: 12814 + max_distance: 5689 + total_distance: 9184028 + operationId: get-client-gamemodes + description: A JSON Object with gamemodes IDs as keys and gamemodes data as values + parameters: + - $ref: '#/components/parameters/host' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/server' + /servers: + parameters: [] + post: + tags: + - server + summary: '' + operationId: post-servers-serverId + responses: + '200': + description: OK + '403': + description: Forbidden + description: Used to test auth + security: + - Auth_Token: [] + /servers/kills: + post: + tags: + - server + summary: Post kills + operationId: post-kills + responses: + '201': + description: Created + '400': + description: Bad Request + '401': + description: Unauthorized + parameters: [] + security: + - Auth_Token: [] + description: Allows a Northstar server to record kills on the database + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Kill' + description: '' + parameters: [] +components: + schemas: + KillData: + title: Killdata + type: object + properties: + deaths: + type: integer + kills: + type: integer + max_kill_distance: + type: integer + avg_kill_distance: + type: number + Kill: + title: Kill + type: object + properties: + id: + type: integer + readOnly: true + server: + type: string + readOnly: true + tone_version: + type: string + match_id: + type: string + game_mode: + type: string + map: + type: string + game_time: + type: string + format: time + player_count: + type: integer + attacker_name: + type: string + attacker_id: + type: integer + attacker_current_weapon: + type: string + attacker_current_weapon_mods: + type: integer + attacker_weapon_1: + type: string + attacker_weapon_1_mods: + type: integer + attacker_weapon_2: + type: string + attacker_weapon_2_mods: + type: integer + attacker_weapon_3: + type: string + attacker_weapon_3_mods: + type: integer + attacker_offhand_weapon_1: + type: integer + attacker_offhand_weapon_2: + type: integer + victim_name: + type: string + victim_id: + type: integer + victim_current_weapon: + type: string + victim_current_weapon_mods: + type: integer + victim_weapon_1: + type: string + victim_weapon_1_mods: + type: integer + victim_weapon_2: + type: string + victim_weapon_2_mods: + type: integer + victim_weapon_3: + type: string + victim_weapon_3_mods: + type: integer + victim_offhand_weapon_1: + type: integer + victim_offhand_weapon_2: + type: integer + cause_of_death: + type: string + distance: + type: number + required: + - cause_of_death + securitySchemes: + Auth_Token: + type: http + scheme: bearer + parameters: + server: + name: server + in: query + required: false + schema: + type: string + example: fvnkhead's 3v3 + description: Fetch data for specific server + player: + name: player + in: query + required: false + schema: + type: integer + example: 1005930844007 + description: Fetch data for specific player + weapon: + name: weapon + in: query + required: false + schema: + type: string + example: epg + description: Fetch data for specific weapon + map: + name: map + in: query + required: false + schema: + type: string + example: lf_stacks + description: Fetch data for specific map + gamemode: + name: gamemode + in: query + required: false + schema: + type: string + example: aitdm + description: Fetch data for specific gamemode + host: + name: host + in: query + required: false + schema: + type: integer + example: 1 + description: Fetch data for specific host + responses: {} + examples: {} diff --git a/v3.yml b/v3.yml new file mode 100644 index 0000000..8e6cdba --- /dev/null +++ b/v3.yml @@ -0,0 +1,565 @@ +openapi: 3.0.2 +info: + version: '3.0' + title: ToneAPI + description: |- + Stats tracking API for Titanfall 2 Northstar + + All query params can be negated using `!`. Example : (`https://tone.sleepycat.date/v2/client/gamemodes?gamemode=!sns`) + contact: + name: Legonzaur + url: 'https://github.com/Legonzaur' + license: + url: 'https://unlicense.org/' + name: The Unlicense +servers: + - url: 'https://tone.sleepycat.date/v3' +paths: + /client/hosts: + get: + tags: + - client + summary: Your GET endpoint + description: An object with host ID as keys and host name as values + operationId: get-client-hosts + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[number] host_id': + $ref: '#/components/schemas/%5Bnumber%5D%20host_id' + example: Fvnkhead + examples: + Example 1: + value: + '1': Fvnkhead + '2': Legonzaur + servers: + - url: 'https://tone.sleepycat.date/v3' + /client/servers: + get: + tags: + - client + summary: List of servers + description: A JSON object with server names as keys and server data as values + operationId: get-server-list + parameters: + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/host' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] server_name': + $ref: '#/components/schemas/%5Bstring%5D%20server_name' + examples: + Example 1: + value: + fvnkhead's 3v3: + deaths: 79810 + kills: 76218 + max_distance: 3733 + total_distance: 42200935 + host: 1 + fvnkhead's 7v7: + deaths: 148609 + kills: 163272 + max_distance: 6578 + total_distance: 113915706 + host: 1 + servers: + - url: 'https://tone.sleepycat.date/v3' + /client/weapons: + get: + tags: + - client + summary: Statistics for all weapons + description: A JSON Object with weapon IDs as keys and weapon data as values + operationId: get-client-weapons + parameters: + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/host' + requestBody: + description: A JSON Object with weapon IDS as keys and weapon data as value + content: {} + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[string] weapon_id': + $ref: '#/components/schemas/%5Bstring%5D%20weapon_id' + examples: + Example 1: + value: + autopistol: + deaths: 27 + kills: 28 + max_distance: 2173 + total_distance: 12792 + car: + deaths: 1394 + kills: 1534 + max_distance: 3217 + total_distance: 905505 + servers: + - url: 'https://tone.sleepycat.date/v3' + /client/players: + get: + tags: + - client + summary: Statistics for all players + description: A JSON Object with player IDs as keys and player data as values + operationId: get-client-players + parameters: + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/server' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/host' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + '[number] player_id': + $ref: '#/components/schemas/%5Bnumber%5D%20player_id' + examples: + Example 1: + value: + '2250125460': + username: Legonzaur + deaths: 0 + kills: 0 + max_kill_distance: 0 + avg_kill_distance: 0 + servers: + - url: 'https://tone.sleepycat.date/v3' + /client/maps: + get: + tags: + - client + summary: Your GET endpoint + description: A JSON Object with map IDs as keys and map data as values + operationId: get-client-maps + parameters: + - $ref: '#/components/parameters/host' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/server' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + KillData: + $ref: '#/components/schemas/KillData' + examples: + Example 1: + value: + lf_meadow: + deaths: 13628 + kills: 11791 + max_distance: 3970 + total_distance: 7139763 + lf_township: + deaths: 14861 + kills: 14232 + max_distance: 3642 + total_distance: 9022513 + servers: + - url: 'https://tone.sleepycat.date/v3' + /client/gamemodes: + get: + tags: + - client + summary: Your GET endpoint + description: A JSON Object with gamemodes IDs as keys and gamemodes data as values + operationId: get-client-gamemodes + parameters: + - $ref: '#/components/parameters/host' + - $ref: '#/components/parameters/gamemode' + - $ref: '#/components/parameters/map' + - $ref: '#/components/parameters/weapon' + - $ref: '#/components/parameters/player' + - $ref: '#/components/parameters/server' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + KillData: + $ref: '#/components/schemas/KillData' + examples: + Example 1: + value: + ps: + deaths: 273232 + kills: 286679 + max_distance: 8521 + total_distance: 184069789 + aitdm: + deaths: 11388 + kills: 12814 + max_distance: 5689 + total_distance: 9184028 + servers: + - url: 'https://tone.sleepycat.date/v3' + /servers: + post: + tags: + - server + summary: Test Authentication + description: Used to test auth + operationId: server-auth-test + responses: + '200': + description: OK + '401': + $ref: '#/components/responses/Invalid-Auth' + security: + - Auth_Token: [] + servers: + - url: 'https://tone.sleepycat.date/v3' + /servers/match: + post: + tags: + - server + summary: Match + description: Allows a Northstar server to create a match on the database + operationId: server-match + requestBody: + description: '' + content: {} + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + match: + type: integer + '400': + $ref: '#/components/responses/Bad-Request' + '401': + $ref: '#/components/responses/Invalid-Auth' + '500': + $ref: '#/components/responses/Internal-Server-Error' + security: + - Auth_Token: [] + servers: + - url: 'https://tone.sleepycat.date/v3' + /servers/kill: + post: + tags: + - server + summary: Kill + description: Allows a Northstar server to record kills on the database + operationId: server-kill + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Kill' + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + id: + type: string + '400': + $ref: '#/components/responses/Bad-Request' + '401': + $ref: '#/components/responses/Invalid-Auth' + '403': + description: |- + Match ID invalid. + Use /servers/match to create a match. + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: object + '409': + description: Match is already closed + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: object + '500': + $ref: '#/components/responses/Internal-Server-Error' + security: + - Auth_Token: [] + servers: + - url: 'https://tone.sleepycat.date/v3' +tags: + - name: client + description: Routes accessibles by everyone + - name: server + description: Routes accessibles only to server owners +components: + parameters: + server: + name: server + in: query + description: Fetch data for specific server + required: false + schema: + type: string + example: fvnkhead's 3v3 + player: + name: player + in: query + description: Fetch data for specific player + required: false + schema: + type: integer + example: 1005930844007 + weapon: + name: weapon + in: query + description: Fetch data for specific weapon + required: false + schema: + type: string + example: epg + map: + name: map + in: query + description: Fetch data for specific map + required: false + schema: + type: string + example: lf_stacks + gamemode: + name: gamemode + in: query + description: Fetch data for specific gamemode + required: false + schema: + type: string + example: aitdm + host: + name: host + in: query + description: Fetch data for specific host + required: false + schema: + type: integer + example: 1 + securitySchemes: + Auth_Token: + type: http + scheme: bearer + responses: + Invalid-Auth: + description: Your token is probably invalid + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: object + Bad-Request: + description: Request body is invalid + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: object + Internal-Server-Error: + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: object + properties: + msg: + type: string + data: + type: string + schemas: + '[number] host_id': + type: string + example: Fvnkhead + '[string] server_name': + type: object + properties: + deaths: + type: integer + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + host: + type: integer + '[string] weapon_id': + type: object + properties: + deaths: + type: integer + description: Number of deaths caused by this weapon + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + deaths_while_equipped: + type: integer + description: Number of deaths while this weapon is equipped + '[number] player_id': + type: object + properties: + deaths: + type: integer + kills: + type: integer + max_distance: + type: integer + total_distance: + type: integer + username: + type: string + KillData: + type: object + title: Killdata + properties: + deaths: + $ref: '#/components/schemas/deaths' + kills: + $ref: '#/components/schemas/kills' + max_kill_distance: + $ref: '#/components/schemas/max_kill_distance' + avg_kill_distance: + $ref: '#/components/schemas/avg_kill_distance' + deaths: + type: integer + kills: + type: integer + max_kill_distance: + type: integer + avg_kill_distance: + type: number + Kill: + type: object + title: Kill + properties: + game_time: + type: number + player_count: + type: integer + match_id: + type: integer + cause_of_death: + type: string + distance: + type: number + victim: + $ref: '#/components/schemas/PlayerKillData' + attacker: + $ref: '#/components/schemas/PlayerKillData' + PlayerKillData: + type: object + title: PlayerKillData + properties: + velocity: + type: number + name: + type: string + loadout: + type: object + properties: + ordnance: + $ref: '#/components/schemas/WeaponKillData' + secondary: + $ref: '#/components/schemas/WeaponKillData' + primary: + $ref: '#/components/schemas/WeaponKillData' + tactical: + $ref: '#/components/schemas/WeaponKillData' + anti_titan: + $ref: '#/components/schemas/WeaponKillData' + passive1: + type: string + passive2: + type: string + current_weapon: + $ref: '#/components/schemas/WeaponKillData' + state: + type: string + titan: + type: string + id: + type: integer + cloaked: + type: boolean + WeaponKillData: + type: object + title: WeaponKillData + properties: + mods: + type: integer + id: + type: string