poe-api-manager 0.2.2 → 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 +4 -0
- package/lib/NinjaAPI.js +26 -4
- package/lib/WatchAPI.js +44 -0
- package/lib/config/poeNinja/url.js +9 -0
- package/lib/config/poeWatch/url.js +9 -0
- package/lib/modules/mainfunctions/filter/propertyFilter.js +18 -0
- package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +39 -2
- 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 +23 -0
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +45 -2
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +45 -2
- package/lib/modules/poe.ninja/item/ItemWievModule.js +135 -2
- package/lib/modules/poe.ninja/item/itemFetch/fetchItem.js +23 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/functions/getData.js +19 -0
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +41 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +41 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +43 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +46 -2
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +46 -2
- package/lib/modules/poe.watch/WatchWievModule.js +106 -4
- package/lib/modules/poe.watch/allModules/fetch/fetch.js +11 -2
- package/lib/modules/poe.watch/allModules/functions/getData.js +20 -1
- package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +49 -2
- package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/GemModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +49 -1
- package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/MapModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/OilModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +47 -1
- package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +47 -1
- package/package.json +1 -1
package/Changelog.md
CHANGED
package/lib/NinjaAPI.js
CHANGED
|
@@ -1,11 +1,33 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const ItemViewModule = require("./modules/poe.ninja/item/ItemWievModule");
|
|
2
|
+
const CurrencyViewModule = require("./modules/poe.ninja/currency/CurrencyWievModule");
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Represents an API for interacting with the poe.ninja API.
|
|
6
|
+
*
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
4
9
|
class NinjaAPI {
|
|
10
|
+
/**
|
|
11
|
+
* Creates an instance of NinjaAPI.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} league - The PoE league for which data is requested.
|
|
14
|
+
*/
|
|
5
15
|
constructor(league) {
|
|
6
|
-
|
|
7
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The CurrencyViewModule instance for fetching currency-related data.
|
|
18
|
+
*
|
|
19
|
+
* @type {CurrencyViewModule}
|
|
20
|
+
*/
|
|
21
|
+
this.currencyView = new CurrencyViewModule(league);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The ItemViewModule instance for fetching item-related data.
|
|
25
|
+
*
|
|
26
|
+
* @type {ItemViewModule}
|
|
27
|
+
*/
|
|
28
|
+
this.itemView = new ItemViewModule(league);
|
|
8
29
|
}
|
|
9
30
|
}
|
|
31
|
+
|
|
10
32
|
// Export the NinjaAPI class
|
|
11
33
|
module.exports = NinjaAPI;
|
package/lib/WatchAPI.js
CHANGED
|
@@ -1,12 +1,56 @@
|
|
|
1
1
|
const WatchWievModule = require("./modules/poe.watch/WatchWievModule");
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Represents an API for interacting with a poe.watch service.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
3
8
|
class WatchAPI {
|
|
9
|
+
/**
|
|
10
|
+
* The league for which the API is initialized.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
4
15
|
#league;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The URL parameter for the league in the Path of Exile.
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
5
23
|
#leagueUrl;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of WatchAPI.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} league - The league for which the API should be initialized.
|
|
29
|
+
*/
|
|
6
30
|
constructor(league) {
|
|
31
|
+
/**
|
|
32
|
+
* The league for which the API is initialized.
|
|
33
|
+
*
|
|
34
|
+
* @private
|
|
35
|
+
* @type {string}
|
|
36
|
+
*/
|
|
7
37
|
this.#league = league;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The URL parameter for the league in the Path of Exile watch service.
|
|
41
|
+
*
|
|
42
|
+
* @private
|
|
43
|
+
* @type {string}
|
|
44
|
+
*/
|
|
8
45
|
this.#leagueUrl = `&league=${this.#league}`;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The WatchWievModule instance associated with this API.
|
|
49
|
+
*
|
|
50
|
+
* @type {WatchWievModule}
|
|
51
|
+
*/
|
|
9
52
|
this.wiev = new WatchWievModule(this.#leagueUrl);
|
|
10
53
|
}
|
|
11
54
|
}
|
|
55
|
+
|
|
12
56
|
module.exports = WatchAPI;
|
|
@@ -1,12 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filters properties of objects in an array based on the specified properties.
|
|
3
|
+
*
|
|
4
|
+
* @param {Array<Object>} data - The array of objects to filter.
|
|
5
|
+
* @param {Array<string>} requestedProperties - The array of property names to include in the result.
|
|
6
|
+
* @returns {Array<Object>} - An array of objects with only the specified properties.
|
|
7
|
+
*/
|
|
1
8
|
module.exports = function filterProperties(data, requestedProperties) {
|
|
9
|
+
/**
|
|
10
|
+
* @type {Array<Object>} result - The filtered array of objects.
|
|
11
|
+
*/
|
|
2
12
|
const result = [];
|
|
3
13
|
|
|
4
14
|
data.forEach((item) => {
|
|
15
|
+
/**
|
|
16
|
+
* @type {Object} itemResult - The filtered object with requested properties.
|
|
17
|
+
*/
|
|
5
18
|
const itemResult = {};
|
|
19
|
+
|
|
6
20
|
requestedProperties.forEach((prop) => {
|
|
7
21
|
if (item.hasOwnProperty(prop)) {
|
|
8
22
|
itemResult[prop] = item[prop];
|
|
9
23
|
} else {
|
|
24
|
+
/**
|
|
25
|
+
* Warn if the requested property is not found in the object.
|
|
26
|
+
* @type {string}
|
|
27
|
+
*/
|
|
10
28
|
console.warn(`Property not found: ${prop}`);
|
|
11
29
|
}
|
|
12
30
|
});
|
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
const currencySubmodules = require("./currencySubmodules/CurrencySubModules");
|
|
2
2
|
const baseurl = require("../../../config/poeNinja/url");
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Represents a module for fetching currency overview data.
|
|
6
|
+
*
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
5
9
|
class CurrencyWievModule {
|
|
6
10
|
#league;
|
|
7
11
|
#baseurl;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new CurrencyWievModule instance.
|
|
14
|
+
*
|
|
15
|
+
* @constructor
|
|
16
|
+
* @param {string} league - The name of the Path of Exile league.
|
|
17
|
+
*/
|
|
8
18
|
constructor(league) {
|
|
19
|
+
/**
|
|
20
|
+
* The league for which the currency overview data is fetched.
|
|
21
|
+
*
|
|
22
|
+
* @private
|
|
23
|
+
* @type {string}
|
|
24
|
+
*/
|
|
9
25
|
this.#league = league;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The base URL for fetching currency overview data.
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
* @type {string}
|
|
32
|
+
*/
|
|
10
33
|
this.#baseurl = baseurl.baseurl;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The URL for currency overview data specific to the league.
|
|
37
|
+
*
|
|
38
|
+
* @private
|
|
39
|
+
* @type {string}
|
|
40
|
+
*/
|
|
11
41
|
const url = `${this.#baseurl}currencyoverview?league=${this.#league}&type=`;
|
|
12
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Represents a module for fetching currency data.
|
|
45
|
+
*/
|
|
13
46
|
this.currency = new currencySubmodules.CurrencyModule(url);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Represents a module for fetching fragment data.
|
|
50
|
+
*/
|
|
14
51
|
this.fragment = new currencySubmodules.FragmentModule(url);
|
|
15
52
|
}
|
|
16
53
|
}
|
|
17
54
|
|
|
18
|
-
//
|
|
55
|
+
// Export the CurrencyWievModule class
|
|
19
56
|
module.exports = CurrencyWievModule;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
const axios = require("axios");
|
|
2
2
|
const mergeData = require("./merge/mergeData");
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Fetches data from a specified API endpoint, merges relevant data, and returns the result.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} baseurl - The base URL of the API.
|
|
8
|
+
* @param {string} type - The type of data to fetch. (e.g. "Currency", "Fragment")
|
|
9
|
+
* @returns {Promise<Array<Object>>} - A promise that resolves to an array of merged objects containing both line and currency details.
|
|
10
|
+
* @throws {Error} - Throws an error if there's an issue with the API response or data fetching process.
|
|
11
|
+
*/
|
|
5
12
|
async function fetchData(baseurl, type) {
|
|
6
13
|
try {
|
|
7
14
|
const url = `${baseurl}${type}`;
|
|
@@ -10,11 +17,13 @@ async function fetchData(baseurl, type) {
|
|
|
10
17
|
if (response.data && response.data.lines && response.data.currencyDetails) {
|
|
11
18
|
const lines = response.data.lines;
|
|
12
19
|
const currencyDetails = response.data.currencyDetails;
|
|
20
|
+
|
|
21
|
+
// Merge data using the mergeData function
|
|
13
22
|
const mergedData = mergeData(lines, currencyDetails);
|
|
14
23
|
return mergedData;
|
|
15
24
|
} else {
|
|
16
25
|
throw new Error(
|
|
17
|
-
"Invalid response format from POE Ninja API
|
|
26
|
+
"Invalid response format from POE Ninja API Currencyview"
|
|
18
27
|
);
|
|
19
28
|
}
|
|
20
29
|
} catch (error) {
|
|
@@ -22,5 +31,4 @@ async function fetchData(baseurl, type) {
|
|
|
22
31
|
}
|
|
23
32
|
}
|
|
24
33
|
|
|
25
|
-
// export fetchData;
|
|
26
34
|
module.exports = fetchData;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges the provided lines with the corresponding currency details.
|
|
3
|
+
*
|
|
4
|
+
* @param {Array} lines - The lines to be merged.
|
|
5
|
+
* @param {Array} currencyDetails - The currency details to be merged with the lines.
|
|
6
|
+
* @returns {Array} - The merged data.
|
|
7
|
+
*/
|
|
1
8
|
function mergeData(lines, currencyDetails) {
|
|
2
9
|
const mergedData = [];
|
|
3
10
|
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
const fetchData = require("../../currencyFetch/fetchCurrency");
|
|
2
2
|
const filterProperties = require("../../../../mainfunctions/filter/propertyFilter");
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves data from a specified API endpoint, optionally filters the data based on requested properties, and returns the result.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} url - The URL of the API endpoint.
|
|
8
|
+
* @param {string} type - The type of data to fetch.
|
|
9
|
+
* @param {Array<string>} [requestedProperties] - An optional array of property names to filter the fetched data.
|
|
10
|
+
* @returns {Promise<Array<Object>>} - A promise that resolves to an array of objects containing the fetched and possibly filtered data.
|
|
11
|
+
* @throws {Error} - Throws an error if there's an issue with the data fetching process or filtering process.
|
|
12
|
+
*
|
|
13
|
+
* @async
|
|
14
|
+
* @function
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
4
17
|
async function getData(url, type, requestedProperties) {
|
|
5
18
|
try {
|
|
6
19
|
// Fetch data using the fetchData function
|
|
@@ -8,6 +21,11 @@ async function getData(url, type, requestedProperties) {
|
|
|
8
21
|
|
|
9
22
|
// If requestedProperties are specified, filter the data based on those properties
|
|
10
23
|
if (requestedProperties) {
|
|
24
|
+
/**
|
|
25
|
+
* Filter the fetched data based on the specified properties.
|
|
26
|
+
*
|
|
27
|
+
* @type {Array<Object>}
|
|
28
|
+
*/
|
|
11
29
|
const result = filterProperties(fetchedData, requestedProperties);
|
|
12
30
|
return result;
|
|
13
31
|
} else {
|
|
@@ -15,6 +33,11 @@ async function getData(url, type, requestedProperties) {
|
|
|
15
33
|
return fetchedData;
|
|
16
34
|
}
|
|
17
35
|
} catch (error) {
|
|
36
|
+
/**
|
|
37
|
+
* An error indicating an issue with the data fetching or filtering process.
|
|
38
|
+
*
|
|
39
|
+
* @throws {Error} - Throws an error with a descriptive message.
|
|
40
|
+
*/
|
|
18
41
|
throw new Error(`Error fetching data: ${error.message}`);
|
|
19
42
|
}
|
|
20
43
|
}
|
|
@@ -1,18 +1,61 @@
|
|
|
1
1
|
const getData = require("../functions/getData");
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Currency.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
3
8
|
class CurrencyModule {
|
|
9
|
+
/**
|
|
10
|
+
* The URL for fetching data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
4
15
|
#url;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The type of data (Currency in this case).
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
5
23
|
#type;
|
|
6
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of CurrencyModule.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} url - The URL to fetch data from.
|
|
29
|
+
*/
|
|
7
30
|
constructor(url) {
|
|
8
31
|
this.#url = url;
|
|
9
32
|
this.#type = "Currency";
|
|
10
33
|
}
|
|
11
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
|
+
*/
|
|
12
42
|
async getData(requestedProperties) {
|
|
13
|
-
|
|
43
|
+
try {
|
|
44
|
+
/**
|
|
45
|
+
* Calls the getData function to fetch Currency 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 Currency data.
|
|
53
|
+
*
|
|
54
|
+
* @throws {Error}
|
|
55
|
+
*/
|
|
56
|
+
throw new Error(`Error fetching Currency data: ${error.message}`);
|
|
57
|
+
}
|
|
14
58
|
}
|
|
15
59
|
}
|
|
16
60
|
|
|
17
|
-
//export CurrencyModule;
|
|
18
61
|
module.exports = CurrencyModule;
|
|
@@ -1,18 +1,61 @@
|
|
|
1
1
|
const getData = require("../functions/getData");
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Represents a module for fetching data related to Fragments.
|
|
5
|
+
*
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
3
8
|
class FragmentModule {
|
|
9
|
+
/**
|
|
10
|
+
* The URL for fetching data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
4
15
|
#url;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The type of data (Fragment in this case).
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
5
23
|
#type;
|
|
6
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of FragmentModule.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} url - The URL to fetch data from.
|
|
29
|
+
*/
|
|
7
30
|
constructor(url) {
|
|
8
31
|
this.#url = url;
|
|
9
32
|
this.#type = "Fragment";
|
|
10
33
|
}
|
|
11
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
|
+
*/
|
|
12
42
|
async getData(requestedProperties) {
|
|
13
|
-
|
|
43
|
+
try {
|
|
44
|
+
/**
|
|
45
|
+
* Calls the getData function to fetch Fragment 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 Fragment data.
|
|
53
|
+
*
|
|
54
|
+
* @throws {Error}
|
|
55
|
+
*/
|
|
56
|
+
throw new Error(`Error fetching Fragment data: ${error.message}`);
|
|
57
|
+
}
|
|
14
58
|
}
|
|
15
59
|
}
|
|
16
60
|
|
|
17
|
-
//export FragmentModule;
|
|
18
61
|
module.exports = FragmentModule;
|
|
@@ -1,44 +1,177 @@
|
|
|
1
1
|
const itemSubmodules = require("./itemSubmodules/itemSubModules");
|
|
2
2
|
const baseurl = require("../../../config/poeNinja/url");
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Represents a module for viewing item-related information in a specific Path of Exile league.
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
5
8
|
class ItemWievModule {
|
|
6
9
|
#league;
|
|
7
10
|
#baseurl;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new instance of ItemWievModule.
|
|
14
|
+
* @constructor
|
|
15
|
+
* @param {string} league - The Path of Exile league for which the item information is retrieved.
|
|
16
|
+
*/
|
|
8
17
|
constructor(league) {
|
|
18
|
+
/**
|
|
19
|
+
* The Path of Exile league for which the item information is retrieved.
|
|
20
|
+
* @private
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
9
23
|
this.#league = league;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The base URL for the Path of Exile Ninja API.
|
|
27
|
+
* @private
|
|
28
|
+
* @type {string}
|
|
29
|
+
*/
|
|
10
30
|
this.#baseurl = baseurl.baseurl;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The complete URL for retrieving item information for the specified league.
|
|
34
|
+
* @private
|
|
35
|
+
* @type {string}
|
|
36
|
+
*/
|
|
11
37
|
const url = `${this.#baseurl}itemoverview?league=${this.#league}&type=`;
|
|
12
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Represents a submodule for base type item information.
|
|
41
|
+
*/
|
|
13
42
|
this.baseType = new itemSubmodules.BaseTypeModule(url);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Represents a submodule for beast item information.
|
|
46
|
+
*/
|
|
14
47
|
this.beast = new itemSubmodules.BeastModule(url);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Represents a submodule for delirium orbs item information.
|
|
51
|
+
*/
|
|
15
52
|
this.deliriumOrbs = new itemSubmodules.DeliriumOrbsModule(url);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Represents a submodule for divination card item information.
|
|
56
|
+
*/
|
|
16
57
|
this.divinationCard = new itemSubmodules.DivinationCardModule(url);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Represents a submodule for essence item information.
|
|
61
|
+
*/
|
|
17
62
|
this.essence = new itemSubmodules.EssenceModule(url);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Represents a submodule for fossil item information.
|
|
66
|
+
*/
|
|
18
67
|
this.fossil = new itemSubmodules.FossilModule(url);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Represents a submodule for helmet enchant item information.
|
|
71
|
+
*/
|
|
19
72
|
this.helmetEnchant = new itemSubmodules.HelmetEnchantModule(url);
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Represents a submodule for incubator item information.
|
|
76
|
+
*/
|
|
20
77
|
this.incubator = new itemSubmodules.IncubatorModule(url);
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Represents a submodule for map item information.
|
|
81
|
+
*/
|
|
21
82
|
this.map = new itemSubmodules.MapModule(url);
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Represents a submodule for oil item information.
|
|
86
|
+
*/
|
|
22
87
|
this.oil = new itemSubmodules.OilModule(url);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Represents a submodule for resonator item information.
|
|
91
|
+
*/
|
|
23
92
|
this.resonator = new itemSubmodules.ResonatorModule(url);
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Represents a submodule for scarab item information.
|
|
96
|
+
*/
|
|
24
97
|
this.scarab = new itemSubmodules.ScarabModule(url);
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Represents a submodule for skill gem item information.
|
|
101
|
+
*/
|
|
25
102
|
this.skillGem = new itemSubmodules.SkillGemModule(url);
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Represents a submodule for unique accessory item information.
|
|
106
|
+
*/
|
|
26
107
|
this.uniqueAccessory = new itemSubmodules.UniqueAccessoryModule(url);
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Represents a submodule for unique armour item information.
|
|
111
|
+
*/
|
|
27
112
|
this.uniqueArmour = new itemSubmodules.UniqueArmourModule(url);
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Represents a submodule for unique flask item information.
|
|
116
|
+
*/
|
|
28
117
|
this.uniqueFlask = new itemSubmodules.UniqueFlaskModule(url);
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Represents a submodule for unique jewel item information.
|
|
121
|
+
*/
|
|
29
122
|
this.uniqueJewel = new itemSubmodules.UniqueJewelModule(url);
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Represents a submodule for unique map item information.
|
|
126
|
+
*/
|
|
30
127
|
this.uniqueMap = new itemSubmodules.UniqueMapModule(url);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Represents a submodule for unique weapon item information.
|
|
131
|
+
*/
|
|
31
132
|
this.uniqueWeapon = new itemSubmodules.UniqueWeaponModule(url);
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Represents a submodule for vials item information.
|
|
136
|
+
*/
|
|
32
137
|
this.vials = new itemSubmodules.VialsModule(url);
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Represents a submodule for omen item information.
|
|
141
|
+
*/
|
|
33
142
|
this.omen = new itemSubmodules.OmenModule(url);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Represents a submodule for memory item information.
|
|
146
|
+
*/
|
|
34
147
|
this.memory = new itemSubmodules.MemoryModule(url);
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Represents a submodule for invitation item information.
|
|
151
|
+
*/
|
|
35
152
|
this.invitation = new itemSubmodules.InvitationModule(url);
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Represents a submodule for unique relics item information.
|
|
156
|
+
*/
|
|
36
157
|
this.uniqueRelics = new itemSubmodules.UniqueRelicsModule(url);
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Represents a submodule for cluster jewel item information.
|
|
161
|
+
*/
|
|
37
162
|
this.clusterJewel = new itemSubmodules.ClusterJewelModule(url);
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Represents a submodule for blighted map item information.
|
|
166
|
+
*/
|
|
38
167
|
this.blightedMap = new itemSubmodules.BlightedMapModule(url);
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Represents a submodule for blight ravaged map item information.
|
|
171
|
+
*/
|
|
39
172
|
this.blightRavagedMap = new itemSubmodules.BlightRavagedMapModule(url);
|
|
40
173
|
}
|
|
41
174
|
}
|
|
42
175
|
|
|
43
|
-
//
|
|
176
|
+
// Export the ItemWievModule class.
|
|
44
177
|
module.exports = ItemWievModule;
|
|
@@ -1,20 +1,41 @@
|
|
|
1
1
|
const axios = require("axios");
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Asynchronously fetches data from a specified URL for item-related information.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} baseurl - The base URL for the data fetch operation.
|
|
7
|
+
* @param {string} type - The specific type of item data to fetch.
|
|
8
|
+
* @returns {Promise<Array<Object>>} - A promise that resolves to the fetched item data.
|
|
9
|
+
* @throws {Error} - Throws an error if there's an issue fetching or processing the data.
|
|
10
|
+
*/
|
|
4
11
|
async function fetchData(baseurl, type) {
|
|
5
12
|
try {
|
|
13
|
+
/**
|
|
14
|
+
* @type {string} url - The complete URL for fetching item-related data.
|
|
15
|
+
*/
|
|
6
16
|
const url = `${baseurl}${type}`;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @type {Object} response - The response object from the data fetch operation.
|
|
20
|
+
*/
|
|
7
21
|
const response = await axios.get(url);
|
|
8
22
|
|
|
9
23
|
if (response.data && response.data.lines) {
|
|
24
|
+
/**
|
|
25
|
+
* @type {Array<Object>} lines - The array of objects containing item-related data.
|
|
26
|
+
*/
|
|
10
27
|
return response.data.lines;
|
|
11
28
|
} else {
|
|
12
29
|
throw new Error("Invalid response format from POE Ninja API Itemwiev");
|
|
13
30
|
}
|
|
14
31
|
} catch (error) {
|
|
32
|
+
/**
|
|
33
|
+
* Throws an error if there's an issue fetching or processing the item-related data.
|
|
34
|
+
* @throws {Error}
|
|
35
|
+
*/
|
|
15
36
|
throw new Error(`Error fetching data: ${error.message}`);
|
|
16
37
|
}
|
|
17
38
|
}
|
|
18
39
|
|
|
19
|
-
//
|
|
40
|
+
// Export the fetchData function.
|
|
20
41
|
module.exports = fetchData;
|