diff --git a/js/api/agent.js b/js/api/agent.js index 58d3430..274e6a3 100644 --- a/js/api/agent.js +++ b/js/api/agent.js @@ -72,7 +72,7 @@ export class AgentBuilder { } static list(limit, page, callback, agents = []) { - const url = `${SpaceTraders.host}agents`; + const url = `${SpaceTraders.host}/agents`; const data = { limit, page }; $.ajax({ url: url, @@ -83,7 +83,7 @@ export class AgentBuilder { data: data, success: (reponse) => { reponse.data.forEach(agent => { - agents.push(agent); + agents.push(new Agent(agent)); }); callback(agents, reponse.meta); }, @@ -91,9 +91,9 @@ export class AgentBuilder { } static list_all(callback) { - this.list(1,1, (agents, meta) => { + this.list(20, 1, (agents, meta) => { let maxPage = meta.total / 20; - this.#r_listing(1, maxPage, [], callback); + this.#r_listing(2, maxPage, agents, callback); }); } diff --git a/js/api/planet.js b/js/api/planet.js index 55336dc..60924af 100644 --- a/js/api/planet.js +++ b/js/api/planet.js @@ -43,7 +43,7 @@ export class Planet { this.is_under_construction = waypoint.isUnderConstruction; } - get_market() { + get_market(callback, error_handler) { const url = `${SpaceTraders.host}/systems/${this.system}/waypoints/${this.name}/market`; $.ajax({ url: url, @@ -53,7 +53,7 @@ export class Planet { callback(market); }, error: (err) => { - error_handler("Planet not found"); + error_handler("Market not found"); } }); } @@ -68,7 +68,12 @@ export class Planet { } export class PlanetBuilder { - static get(system, name, callback, error_handler) { + static parse_system_name(name) { + return name.split("-").slice(0, 2).join("-"); + } + + static get(name, callback, error_handler) { + let system = PlanetBuilder.parse_system_name(name); const url = `${SpaceTraders.host}/systems/${system}/waypoints/${name}`; $.ajax({ url: url, @@ -83,21 +88,41 @@ export class PlanetBuilder { }); } - static list(system, limit, page, planets = []) { + static list(system, limit, page, callback, planets = []) { const url = `${SpaceTraders.host}/systems/${system}/waypoints` $.ajax({ url: url, method: "GET", - + data: { + limit: limit, + page: page + }, + success: (reponse) => { + reponse.data.forEach(planet => { + planets.push(new Planet(planet)); + }); + callback(planets, reponse.meta); + } }); } - static list_all(system, callback, error_handler) { - const url = `${SpaceTraders.host}/systems/${system}/waypoints`; - + static list_all(system, callback) { + this.list(system, 20, 1, (planets, meta) => { + let maxPage = meta.total / 20; + this.#r_listing(system, 2, maxPage, planets, callback); + }); } - static #r_listing() { - + static #r_listing(system, page, maxPage, planets, callback) { + if (page < maxPage) { + this.list(20, page++,() => { + setTimeout(() => { + callback(planets); + this.#r_listing(system, page++, maxPage, planets, callback); + }, 1000); + }, planets); + } else { + callback(planets); + } } } \ No newline at end of file diff --git a/js/index.js b/js/index.js index 18b9fd3..f70ec9c 100644 --- a/js/index.js +++ b/js/index.js @@ -1,3 +1,3 @@ import tests from "./test/tests.js"; -tests.modal(); \ No newline at end of file +tests.get_planet(); \ No newline at end of file diff --git a/js/test/tests.js b/js/test/tests.js index 72688cf..67faa8c 100644 --- a/js/test/tests.js +++ b/js/test/tests.js @@ -9,7 +9,7 @@ import { PlanetBuilder } from "../api/planet.js"; let temp_path = "html"; let token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGlmaWVyIjoiSEFSRElDSyIsInZlcnNpb24iOiJ2Mi4xLjQiLCJyZXNldF9kYXRlIjoiMjAyMy0xMi0wMiIsImlhdCI6MTcwMjY2Mjc2Mywic3ViIjoiYWdlbnQtdG9rZW4ifQ.PrvaOz3W79acq6RoxryMW53PRRz824_AM0VGLwfXCOsGCOCAIY-rn6-bZTOnLAtp4xPSDqEk4c38oWYAWW59p0iMDDLpur6ONnjT0RjjsQS9zr5BByfBpP36CT23IZSSzk3XxGrFolHJAyU3K1liYfNbsPuNTXlkHGNHq6yMqH4ZQUPFsXEsCkg9cUynkdLw3C39SvWhtJ89oblj_8tQp2k8dxhZemepuXtiI51eFMpv8A0WRAi7pVYo_ajJujY9QDLYn_m5hDZWTlQMIstjPaDl99p2IMweIMO2Q2G-0lKiWQ4sl6VW5tuVrz1HLYU6kyMjFQWNn6kFDE7LWMTrfw"; -let tests = { +let tests = { timer: function() { let timer = new Timer(1, 0.1666, "m"); timer.on("step", (time) => { @@ -66,7 +66,7 @@ let tests = { template_engine.render("templates/login.html"); let modal = new Modal("test-modal", template_engine); - modal.add_class("my-modal") + modal.add_class("ext-modal") modal.render("templates/test_modal.html"); @@ -81,13 +81,22 @@ let tests = { }); }, get_planet: function() { - PlanetBuilder.get("X1-TT23", "X1-TT23-FF1E", (planet) => { + PlanetBuilder.get("X1-TT23-FF1E", (planet) => { console.log(planet); }, (err) => { console.log(err); }); }, - + get_all_planets: function() { + PlanetBuilder.list_all("X1-AG10", (planets) => { + console.log(planets); + }); + }, + get_all_agents: function() { + AgentBuilder.list_all((agents) => { + console.log(agents); + }); + } } export default tests; \ No newline at end of file