diff options
author | Julien Dessaux | 2023-09-18 22:48:08 +0200 |
---|---|---|
committer | Julien Dessaux | 2023-09-18 22:48:08 +0200 |
commit | 1b9a55432a0e621edf2c21c815b58b8cfa23a6d8 (patch) | |
tree | fa95e39adbea787934cba43132063b1252bede65 /nodejs/automation/init.js | |
parent | [javascript] fixed wrong variable usage (diff) | |
download | spacetraders-1b9a55432a0e621edf2c21c815b58b8cfa23a6d8.tar.gz spacetraders-1b9a55432a0e621edf2c21c815b58b8cfa23a6d8.tar.bz2 spacetraders-1b9a55432a0e621edf2c21c815b58b8cfa23a6d8.zip |
[javascript] Completely reworked contracting
Diffstat (limited to 'nodejs/automation/init.js')
-rw-r--r-- | nodejs/automation/init.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/nodejs/automation/init.js b/nodejs/automation/init.js new file mode 100644 index 0000000..21131e7 --- /dev/null +++ b/nodejs/automation/init.js @@ -0,0 +1,37 @@ +import * as dbAgents from '../database/agents.js'; +import * as db from '../database/db.js'; +import * as dbContracts from '../database/contracts.js'; +import * as dbShips from '../database/ships.js'; +import * as dbTokens from '../database/tokens.js'; +import * as api from '../lib/api.js'; +import * as ships from '../lib/ships.js'; + +// This function registers then inits the database +export async function init() { + const response = await fetch('https://api.spacetraders.io/v2/register', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + symbol: "ADYXAX", + faction: "COSMIC", + }), + }); + const json = await response.json(); + if (json.error !== undefined) { + switch(json.error?.code) { + case 4111: // 4111 means the agent symbol has already been claimed so no server reset happened + return; + default: + throw json; + } + } + db.reset(); + dbAgents.addAgent(json.data.agent); + dbContracts.setContract(json.data.contract); + dbShips.setShip(json.data.ship); + dbTokens.addToken(json.data.token); + // Temporary fix to fetch the data on the startup probe + ships.ships(); +} |