poe-api-manager 0.1.0 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +11 -2
- package/README.md +78 -17
- package/index.js +5 -1
- package/lib/NinjaAPI.js +27 -5
- package/lib/WatchAPI.js +56 -0
- package/lib/config/poeNinja/url.js +9 -0
- package/lib/config/poeWatch/url.js +12 -0
- package/lib/modules/mainfunctions/filter/propertyFilter.js +36 -0
- package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +44 -5
- package/lib/modules/poe.ninja/currency/currencyFetch/fetchCurrency.js +11 -3
- package/lib/modules/poe.ninja/currency/currencyFetch/merge/mergeData.js +7 -0
- package/lib/modules/poe.ninja/currency/currencySubmodules/functions/getData.js +24 -1
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +50 -4
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +50 -4
- package/lib/modules/poe.ninja/item/ItemWievModule.js +140 -5
- package/lib/modules/poe.ninja/item/itemFetch/fetchItem.js +23 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/functions/getData.js +20 -1
- package/lib/modules/poe.ninja/item/itemSubmodules/itemSubModules.js +0 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +45 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +45 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +47 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +50 -4
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +50 -4
- package/lib/modules/poe.watch/WatchWievModule.js +130 -0
- package/lib/modules/poe.watch/allModules/Modules.js +23 -0
- package/lib/modules/poe.watch/allModules/fetch/fetch.js +28 -0
- package/lib/modules/poe.watch/allModules/functions/getData.js +39 -0
- package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +60 -0
- package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/GemModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +61 -0
- package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/MapModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/OilModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +59 -0
- package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +59 -0
- package/package.json +13 -5
- package/lib/modules/filter/propertyFilter.js +0 -18
|
@@ -1,15 +1,61 @@
|
|
|
1
1
|
const getData = require("../functions/getData");
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Vials.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
3
8
|
class VialsModule {
|
|
9
|
+
/**
|
|
10
|
+
* The URL for fetching data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#url;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The type of data (Vial in this case).
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
23
|
+
#type;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of VialsModule.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} url - The URL to fetch data from.
|
|
29
|
+
*/
|
|
4
30
|
constructor(url) {
|
|
5
|
-
this
|
|
6
|
-
this
|
|
31
|
+
this.#url = url;
|
|
32
|
+
this.#type = "Vial";
|
|
7
33
|
}
|
|
8
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Asynchronously retrieves data based on the specified properties.
|
|
37
|
+
*
|
|
38
|
+
* @async
|
|
39
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
40
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
41
|
+
*/
|
|
9
42
|
async getData(requestedProperties) {
|
|
10
|
-
|
|
43
|
+
try {
|
|
44
|
+
/**
|
|
45
|
+
* Calls the getData function to fetch Vial data.
|
|
46
|
+
*
|
|
47
|
+
* @type {Promise<Array<Object>>}
|
|
48
|
+
*/
|
|
49
|
+
return getData(this.#url, this.#type, requestedProperties);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
/**
|
|
52
|
+
* Throws an error if there's an issue fetching or processing the Vial data.
|
|
53
|
+
*
|
|
54
|
+
* @throws {Error}
|
|
55
|
+
*/
|
|
56
|
+
throw new Error(`Error fetching Vial data: ${error.message}`);
|
|
57
|
+
}
|
|
11
58
|
}
|
|
12
59
|
}
|
|
13
60
|
|
|
14
|
-
//export VialsModule;
|
|
15
61
|
module.exports = VialsModule;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
const allModules = require("./allModules/Modules");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Watchstones and Watchstone Regions.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class WatchWievModule {
|
|
9
|
+
/**
|
|
10
|
+
* Creates an instance of WatchWievModule.
|
|
11
|
+
*
|
|
12
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
13
|
+
*/
|
|
14
|
+
constructor(leagueUrl) {
|
|
15
|
+
/**
|
|
16
|
+
* Module for fetching data related to Currency.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
this.currency = new allModules.CurrencyModule(leagueUrl);
|
|
20
|
+
|
|
21
|
+
// Uncomment the lines below if you want to use and document other modules
|
|
22
|
+
// this.deliriumOrb = new allModules.DeliriumOrbModule(leagueUrl);
|
|
23
|
+
// this.divinationCard = new allModules.DivsModule(leagueUrl);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Module for fetching data related to Essences.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
this.essence = new allModules.EssenceModule(leagueUrl);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Module for fetching data related to Fossils.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
this.fossil = new allModules.FossilModule(leagueUrl);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Module for fetching data related to Fragments.
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
this.fragment = new allModules.FragmentModule(leagueUrl);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Module for fetching data related to Gems.
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
this.gem = new allModules.GemModule(leagueUrl);
|
|
48
|
+
|
|
49
|
+
// Uncomment the lines
|
|
50
|
+
// this.inscribed = new allModules.InscribedModule(leagueUrl);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Module for fetching data related to Invitations.
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
this.invitation = new allModules.InvitationModule(leagueUrl);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Module for fetching data related to Jewels.
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
this.jewel = new allModules.JewelModule(leagueUrl);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Module for fetching data related to Maps.
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
this.map = new allModules.MapModule(leagueUrl);
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Module for fetching data related to Oils.
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
this.oil = new allModules.OilModule(leagueUrl);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Module for fetching data related to Scarabs.
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
80
|
+
this.scarab = new allModules.ScarabModule(leagueUrl);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Module for fetching data related to Sextants.
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
86
|
+
this.sextant = new allModules.SextantModule(leagueUrl);
|
|
87
|
+
|
|
88
|
+
// Uncomment the lines below if you want to use and document other modules
|
|
89
|
+
// this.uniqueMap = new allModules.UniqueMapsModule(leagueUrl);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Module for fetching data related to Accessories.
|
|
93
|
+
*
|
|
94
|
+
*/
|
|
95
|
+
this.accessory = new allModules.AccessoryModule(leagueUrl);
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Module for fetching data related to Armours.
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
this.armour = new allModules.ArmourModule(leagueUrl);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Module for fetching data related to Weapons.
|
|
105
|
+
*
|
|
106
|
+
*/
|
|
107
|
+
this.weapon = new allModules.WeaponModule(leagueUrl);
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Module for fetching data related to Flasks.
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
this.flask = new allModules.FlaskModule(leagueUrl);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Module for fetching data related to Bases.
|
|
117
|
+
*
|
|
118
|
+
*/
|
|
119
|
+
this.base = new allModules.BaseModule(leagueUrl);
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Module for fetching data related to Beasts.
|
|
123
|
+
*
|
|
124
|
+
*/
|
|
125
|
+
this.beast = new allModules.BeastModule(leagueUrl);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Export the WatchWievModule class
|
|
130
|
+
module.exports = WatchWievModule;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
CurrencyModule: require("./submodules/CurrencyModule"),
|
|
3
|
+
DeliriumOrbModule: require("./submodules/DeliriumOrbModule"),
|
|
4
|
+
DivsModule: require("./submodules/DivsModule"),
|
|
5
|
+
EssenceModule: require("./submodules/EssenceModule"),
|
|
6
|
+
FossilModule: require("./submodules/FossilModule"),
|
|
7
|
+
FragmentModule: require("./submodules/FragmentModule"),
|
|
8
|
+
GemModule: require("./submodules/GemModule"),
|
|
9
|
+
InscribedModule: require("./submodules/InscribedModule"),
|
|
10
|
+
InvitationModule: require("./submodules/InvitationModule"),
|
|
11
|
+
JewelModule: require("./submodules/JewelModule"),
|
|
12
|
+
MapModule: require("./submodules/MapModule"),
|
|
13
|
+
OilModule: require("./submodules/OilModule"),
|
|
14
|
+
ScarabModule: require("./submodules/ScarabModule"),
|
|
15
|
+
SextantModule: require("./submodules/SextantModule"),
|
|
16
|
+
UniqueMapsModule: require("./submodules/UniqueMapsModule"),
|
|
17
|
+
AccessoryModule: require("./submodules/AccessoryModule"),
|
|
18
|
+
ArmourModule: require("./submodules/ArmourModule"),
|
|
19
|
+
BaseModule: require("./submodules/BaseModule"),
|
|
20
|
+
BeastModule: require("./submodules/BeastModule"),
|
|
21
|
+
WeaponModule: require("./submodules/WeaponModule"),
|
|
22
|
+
FlaskModule: require("./submodules/FlaskModule"),
|
|
23
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const axios = require("axios");
|
|
2
|
+
const baseUrl = require("../../../../config/poeWatch/url").baseurl;
|
|
3
|
+
/**
|
|
4
|
+
* Fetches data from the POE Watch API based on the provided query URL.
|
|
5
|
+
* @param {string} queryUrl - The query URL to be appended to the base URL.
|
|
6
|
+
* @returns {Promise<Object>} - A Promise that resolves to the fetched data.
|
|
7
|
+
* @throws {Error} - Throws an error if there is an issue with the API response or fetching data.
|
|
8
|
+
*/
|
|
9
|
+
async function fetchData(queryUrl) {
|
|
10
|
+
try {
|
|
11
|
+
const url = `${baseUrl}${queryUrl}`;
|
|
12
|
+
|
|
13
|
+
const response = await axios.get(url);
|
|
14
|
+
|
|
15
|
+
if (response.data) {
|
|
16
|
+
return response.data;
|
|
17
|
+
} else {
|
|
18
|
+
throw new Error("Invalid response format from POE Watch API");
|
|
19
|
+
}
|
|
20
|
+
} catch (error) {
|
|
21
|
+
/**
|
|
22
|
+
* @throws {Error} - Throws an error with a specific message if there is an issue with fetching data.
|
|
23
|
+
*/
|
|
24
|
+
throw new Error(`Error fetching data from poe.watch: ${error.message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
module.exports = fetchData;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const fetchData = require("../fetch/fetch");
|
|
2
|
+
const filterProperties = require("../../../mainfunctions/filter/propertyFilter");
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves data from the specified URL, optionally filtering based on requested properties.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} queryUrl - The URL to fetch data from.
|
|
8
|
+
* @param {Array<string>} [requestedProperties] - An optional array of property names to filter the data.
|
|
9
|
+
* @returns {Promise<Array<Object>|Object>} - A promise that resolves to the fetched or filtered data.
|
|
10
|
+
* @throws {Error} - Throws an error if there is an issue fetching or filtering the data.
|
|
11
|
+
*/
|
|
12
|
+
async function getData(queryUrl, requestedProperties) {
|
|
13
|
+
try {
|
|
14
|
+
/**
|
|
15
|
+
* @type {Array<Object>|Object} fetchedData - The fetched data.
|
|
16
|
+
*/
|
|
17
|
+
const fetchedData = await fetchData(queryUrl);
|
|
18
|
+
|
|
19
|
+
// If requestedProperties are specified, filter the data based on those properties
|
|
20
|
+
if (requestedProperties) {
|
|
21
|
+
/**
|
|
22
|
+
* @type {Array<Object>|Object} result - The filtered data based on requested properties.
|
|
23
|
+
*/
|
|
24
|
+
const result = filterProperties(fetchedData, requestedProperties);
|
|
25
|
+
return result;
|
|
26
|
+
} else {
|
|
27
|
+
// If no specific properties are requested, return the entire fetched data
|
|
28
|
+
return fetchedData;
|
|
29
|
+
}
|
|
30
|
+
} catch (error) {
|
|
31
|
+
/**
|
|
32
|
+
* Throws an error if there's an issue fetching or filtering the data.
|
|
33
|
+
* @throws {Error}
|
|
34
|
+
*/
|
|
35
|
+
throw new Error(`Error fetching data: ${error.message}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = getData;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Accessories.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class AccessoryModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching accessory data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of AccessoryModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching accessory data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `accessory${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves accessory data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch accessory data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the accessory data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching accessory data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the AccessoryModule class
|
|
59
|
+
module.exports = AccessoryModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Armour.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class ArmourModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching armour data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of ArmourModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching armour data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `armour${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves armour data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch armour data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the armour data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching armour data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the ArmourModule class
|
|
59
|
+
module.exports = ArmourModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Bases.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class BaseModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching base data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of BaseModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching base data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `bases${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves base data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch base data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the base data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching base data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the BaseModule class
|
|
59
|
+
module.exports = BaseModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Beasts.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class BeastModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching beast data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of BeastModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching beast data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `beast${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves beast data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch beast data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the beast data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching beast data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the BeastModule class
|
|
59
|
+
module.exports = BeastModule;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Currency.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class CurrencyModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching currency data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of CurrencyModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching currency data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `currency${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves currency data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch currency data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the currency data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching currency data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Uncomment the line below if you want to export the CurrencyModule class
|
|
59
|
+
// module.exports = CurrencyModule;
|
|
60
|
+
module.exports = CurrencyModule;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const getData = require("../functions/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Delirium Orbs.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
class DeliriumOrbModule {
|
|
9
|
+
/**
|
|
10
|
+
* The query URL for fetching Delirium Orb data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
#queryUrl;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of DeliriumOrbModule.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} leagueUrl - The league URL to fetch data from.
|
|
21
|
+
*/
|
|
22
|
+
constructor(leagueUrl) {
|
|
23
|
+
/**
|
|
24
|
+
* The constructed query URL for fetching Delirium Orb data.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
this.#queryUrl = `currency${leagueUrl}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously retrieves Delirium Orb data based on the specified properties.
|
|
34
|
+
*
|
|
35
|
+
* @async
|
|
36
|
+
* @param {Array<string>} requestedProperties - An array of properties to retrieve.
|
|
37
|
+
* @returns {Promise<Object>} A promise that resolves to the retrieved data.
|
|
38
|
+
*/
|
|
39
|
+
async getData(requestedProperties) {
|
|
40
|
+
try {
|
|
41
|
+
/**
|
|
42
|
+
* Calls the getData function to fetch Delirium Orb data.
|
|
43
|
+
*
|
|
44
|
+
* @type {Promise<Array<Object>>}
|
|
45
|
+
*/
|
|
46
|
+
return getData(this.#queryUrl, requestedProperties);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
/**
|
|
49
|
+
* Throws an error if there's an issue fetching or processing the Delirium Orb data.
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error}
|
|
52
|
+
*/
|
|
53
|
+
throw new Error(`Error fetching Delirium Orb data: ${error.message}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Export the DeliriumOrbModule class
|
|
59
|
+
module.exports = DeliriumOrbModule;
|