poe-api-manager 0.2.8 → 1.2.1
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 +12 -2
- package/README.md +31 -9
- package/index.js +4 -0
- package/lib/Utils.js +41 -0
- package/lib/WatchAPI.js +1 -33
- package/lib/modules/poe.ninja/currency/CurrencyBaseClass.js +37 -0
- package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +2 -27
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +8 -52
- package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +8 -52
- package/lib/modules/poe.ninja/currency/{currencySubmodules/functions → methods}/getData.js +2 -2
- package/lib/modules/poe.ninja/item/ItemBaseClass.js +64 -0
- package/lib/modules/poe.ninja/item/ItemWievModule.js +27 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +8 -48
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +8 -48
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +9 -54
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +7 -49
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +7 -52
- package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +7 -52
- package/lib/modules/poe.ninja/item/{itemSubmodules/functions → methods}/getData.js +2 -2
- package/lib/modules/poe.watch/allModules/WatchBaseClass.js +45 -0
- package/lib/modules/poe.watch/allModules/fetch/fetch.js +1 -4
- package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +19 -62
- package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +19 -60
- package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +19 -59
- package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +13 -43
- package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +20 -42
- package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +14 -43
- package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/GemModule.js +19 -61
- package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +13 -44
- package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/MapModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/OilModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +13 -42
- package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +19 -59
- package/lib/modules/poe.watch/allModules/watchUrlGenerator/urlGenerator.js +9 -0
- package/lib/modules/utils/functions/fetch/fetch.js +22 -0
- package/lib/modules/utils/getLeagues.js +24 -0
- package/package.json +1 -1
- package/lib/config/poeNinja/url.js +0 -12
- package/lib/config/poeWatch/url.js +0 -12
- /package/lib/modules/poe.watch/allModules/{functions → methods}/getCategory.js +0 -0
- /package/lib/modules/poe.watch/allModules/{functions → methods}/getData.js +0 -0
package/Changelog.md
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## 1.2.1
|
|
3
|
+
- 🔄 [Update] Development was done with OOP. Classes have been changed.
|
|
4
|
+
>There was no change in the scripts.
|
|
5
|
+
- 🚀[Added] Added `filterProperties()` to utils class.
|
|
6
|
+
|
|
7
|
+
## 1.0.0
|
|
8
|
+
- 🚀[New] utils class
|
|
9
|
+
- 🚀[New] utils `getLeagues`function. Get league name.
|
|
10
|
+
- 📝 [Update] The documentation has been updated.
|
|
11
|
+
|
|
2
12
|
## 0.2.8
|
|
3
13
|
- 🚀[Added] poe.watch API with `getCategory()` function.
|
|
4
|
-
- 🛠️ [Fixed]
|
|
14
|
+
- 🛠️ [Fixed] Typo in WatchAPI class
|
|
5
15
|
- 📝 [Update] The documentation has been updated.
|
|
6
16
|
## 0.2.6
|
|
7
17
|
- 🎨[Added] JSDocs for easy understanding.
|
|
@@ -19,4 +29,4 @@
|
|
|
19
29
|
- Invitations
|
|
20
30
|
- Memories
|
|
21
31
|
|
|
22
|
-
## 0.0.1 Publish
|
|
32
|
+
## 0.0.1 Publish
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# poe-api-manager
|
|
2
2
|
|
|
3
3
|
[](https://choosealicense.com/licenses/mit/)
|
|
4
|
-

|
|
5
5
|

|
|
6
6
|
[](https://github.com/ayberkgezer/poe-api-manager/issues)
|
|
7
7
|

|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
- [itemView](#itemwiev)
|
|
17
17
|
- [poe.watch](#watchapi)
|
|
18
18
|
- [view](#view)
|
|
19
|
+
- [utils](#utils)
|
|
19
20
|
- [Changelog](https://github.com/ayberkgezer/poe-api-manager/blob/main/Changelog.md)
|
|
20
21
|
- [Examples](#examples)
|
|
21
22
|
|
|
@@ -52,14 +53,14 @@ What we can get here is as follows.
|
|
|
52
53
|
- Currency
|
|
53
54
|
- Fragment
|
|
54
55
|
|
|
55
|
-
getData() => function returns data purely.
|
|
56
|
+
- getData() => function returns data purely.
|
|
56
57
|
```javascript
|
|
57
58
|
//Example Currency
|
|
58
59
|
ninjaAPI.currencyView.currency.getData().then((data) => {
|
|
59
60
|
console.log(data);
|
|
60
61
|
});
|
|
61
62
|
```
|
|
62
|
-
getdata(requestedProperties) => The function filters the data as desired.
|
|
63
|
+
- getdata(requestedProperties) => The function filters the data as desired.
|
|
63
64
|
>Note: Enter [poe.ninja Document](https://github.com/ayberkgezer/poe.ninja-API-Document?tab=readme-ov-file#poeninja-api) to access the values for the filter.
|
|
64
65
|
```javascript
|
|
65
66
|
//Filtered data is returned
|
|
@@ -97,14 +98,14 @@ What we can get here is as follows.
|
|
|
97
98
|
- Invitations
|
|
98
99
|
- Memories
|
|
99
100
|
|
|
100
|
-
getData() => function returns data purely.
|
|
101
|
+
- getData() => function returns data purely.
|
|
101
102
|
```javascript
|
|
102
103
|
//Example BaseType
|
|
103
104
|
ninjaAPI.itemView.baseType.getData().then((data) => {
|
|
104
105
|
console.log(data);
|
|
105
106
|
});
|
|
106
107
|
```
|
|
107
|
-
getdata(requestedProperties) => The function filters the data as desired.
|
|
108
|
+
- getdata(requestedProperties) => The function filters the data as desired.
|
|
108
109
|
>Note: Enter [poe.ninja Document](https://github.com/ayberkgezer/poe.ninja-API-Document?tab=readme-ov-file#poeninja-api) to access the values for the filter.
|
|
109
110
|
```javascript
|
|
110
111
|
//Filtered data is returned
|
|
@@ -138,7 +139,7 @@ What we can get here is as follows.
|
|
|
138
139
|
- Base
|
|
139
140
|
- Beast
|
|
140
141
|
|
|
141
|
-
getData() => function returns data purely.
|
|
142
|
+
- getData() => function returns data purely.
|
|
142
143
|
```javascript
|
|
143
144
|
//Example Currency
|
|
144
145
|
watchAPI.view.baseType.getData().then((data) => {
|
|
@@ -147,14 +148,14 @@ watchAPI.view.baseType.getData().then((data) => {
|
|
|
147
148
|
```
|
|
148
149
|
> Enter [poe.watch Document](https://docs.poe.watch/#get-all-armours) to access the values for the filter.
|
|
149
150
|
|
|
150
|
-
getdata(requestedProperties) => The function filters the data as desired.
|
|
151
|
+
- getdata(requestedProperties) => The function filters the data as desired.
|
|
151
152
|
```javascript
|
|
152
153
|
//Filtered data is returned
|
|
153
154
|
watchAPI.view.currency.getData(["id", "name", "icon"]).then((data) => {
|
|
154
155
|
console.log(data);
|
|
155
156
|
});
|
|
156
157
|
```
|
|
157
|
-
getCategory("categoryName") => The function quickly filters through specific categories.
|
|
158
|
+
- getCategory("categoryName") => The function quickly filters through specific categories.
|
|
158
159
|
|
|
159
160
|
> Note: Used in accessory, armour, base, gem and weapon.
|
|
160
161
|
|
|
@@ -164,6 +165,27 @@ watchAPI.view.armour.getCategory("chest").then((data) => {
|
|
|
164
165
|
console.log(data);
|
|
165
166
|
});
|
|
166
167
|
```
|
|
168
|
+
## Utils
|
|
169
|
+
Utils class is a class that contains some auxiliary tools.
|
|
170
|
+
```javascript
|
|
171
|
+
const { Utils } = require("poe-api-manager");
|
|
172
|
+
const utils = new Utils();
|
|
173
|
+
```
|
|
174
|
+
- getLeagues() => Returns available league names.
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
utils.getLeagues().then((data) => {
|
|
178
|
+
console.log(data);
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- filterProperties(data, properties) => It is used to filter data.
|
|
183
|
+
|
|
184
|
+
```javascript
|
|
185
|
+
utils.filterProperties(data, ["currencyTypeName", "chaosEquivalent"])
|
|
186
|
+
.then((result) => console.log(result));
|
|
187
|
+
```
|
|
188
|
+
|
|
167
189
|
|
|
168
190
|
## Examples
|
|
169
191
|
```javascript
|
|
@@ -225,4 +247,4 @@ const fetchData = async () => {
|
|
|
225
247
|
console.error("Error fetching data:", error);
|
|
226
248
|
}
|
|
227
249
|
};
|
|
228
|
-
```
|
|
250
|
+
```
|
package/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
const NinjaAPI = require("./lib/NinjaAPI");
|
|
2
2
|
const WatchAPI = require("./lib/WatchAPI");
|
|
3
|
+
const Utils = require("./lib/Utils");
|
|
4
|
+
const RedisManager = require("./lib/RedisManager");
|
|
3
5
|
|
|
4
6
|
module.exports = {
|
|
5
7
|
NinjaAPI: NinjaAPI,
|
|
6
8
|
WatchAPI: WatchAPI,
|
|
9
|
+
Utils: Utils,
|
|
10
|
+
//RedisManager: RedisManager,
|
|
7
11
|
};
|
package/lib/Utils.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const getLeagues = require("./modules/utils/getLeagues");
|
|
2
|
+
const filterProperties = require("./modules/mainfunctions/filter/propertyFilter");
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A utility class.
|
|
6
|
+
*
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
9
|
+
class Utils {
|
|
10
|
+
constructor() {}
|
|
11
|
+
/**
|
|
12
|
+
* Fetches the list of leagues for the game.
|
|
13
|
+
* @async
|
|
14
|
+
* @function getLeagues
|
|
15
|
+
* @returns {Promise<string[]>} The array of league names.
|
|
16
|
+
* @throws {Error} If there's an error fetching the leagues.
|
|
17
|
+
*/
|
|
18
|
+
async getLeagues() {
|
|
19
|
+
try {
|
|
20
|
+
return getLeagues();
|
|
21
|
+
} catch (error) {
|
|
22
|
+
throw new Error(`Error fetching data Leagues: ${error.message}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Filters properties of objects in an array based on the specified properties.
|
|
27
|
+
*
|
|
28
|
+
* @param {Array<Object>} data - The array of objects to filter.
|
|
29
|
+
* @param {Array<string>} properties - The array of property names to include in the result.
|
|
30
|
+
* @returns {Array<Object>} - An array of objects with only the specified properties.
|
|
31
|
+
*/
|
|
32
|
+
async filterProperties(data, properties) {
|
|
33
|
+
try {
|
|
34
|
+
return filterProperties(data, properties);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
throw new Error(`Error fetching data Leagues: ${error.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = Utils;
|
package/lib/WatchAPI.js
CHANGED
|
@@ -6,50 +6,18 @@ const WatchWievModule = require("./modules/poe.watch/WatchWievModule");
|
|
|
6
6
|
* @class
|
|
7
7
|
*/
|
|
8
8
|
class WatchAPI {
|
|
9
|
-
/**
|
|
10
|
-
* The league for which the API is initialized.
|
|
11
|
-
*
|
|
12
|
-
* @private
|
|
13
|
-
* @type {string}
|
|
14
|
-
*/
|
|
15
|
-
#league;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* The URL parameter for the league in the Path of Exile.
|
|
19
|
-
*
|
|
20
|
-
* @private
|
|
21
|
-
* @type {string}
|
|
22
|
-
*/
|
|
23
|
-
#leagueUrl;
|
|
24
|
-
|
|
25
9
|
/**
|
|
26
10
|
* Creates an instance of WatchAPI.
|
|
27
11
|
*
|
|
28
12
|
* @param {string} league - The league for which the API should be initialized.
|
|
29
13
|
*/
|
|
30
14
|
constructor(league) {
|
|
31
|
-
/**
|
|
32
|
-
* The league for which the API is initialized.
|
|
33
|
-
*
|
|
34
|
-
* @private
|
|
35
|
-
* @type {string}
|
|
36
|
-
*/
|
|
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
|
-
*/
|
|
45
|
-
this.#leagueUrl = `&league=${this.#league}`;
|
|
46
|
-
|
|
47
15
|
/**
|
|
48
16
|
* The WatchWievModule instance associated with this API.
|
|
49
17
|
*
|
|
50
18
|
* @type {WatchWievModule}
|
|
51
19
|
*/
|
|
52
|
-
this.view = new WatchWievModule(
|
|
20
|
+
this.view = new WatchWievModule(league);
|
|
53
21
|
}
|
|
54
22
|
}
|
|
55
23
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const getData = require("./methods/getData");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a base class for interacting with data.
|
|
5
|
+
*/
|
|
6
|
+
class CurrencyBaseClass {
|
|
7
|
+
#url;
|
|
8
|
+
#type;
|
|
9
|
+
#baseurl = "https://poe.ninja/api/data/";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new CurrencyBaseClass instance.
|
|
13
|
+
* @param {string} league - The league name for which data is requested.
|
|
14
|
+
* @param {string} typeName - The type of data.
|
|
15
|
+
*/
|
|
16
|
+
constructor(league, typeName) {
|
|
17
|
+
this.#url = `${this.#baseurl}currencyoverview?league=${league}`;
|
|
18
|
+
this.#type = `&type=${typeName}`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves data based on the specified properties.
|
|
23
|
+
* @async
|
|
24
|
+
* @param {Array<string>} requestedProperties - The properties to include in the fetched data.
|
|
25
|
+
* @returns {Promise<Array<Object>>} The fetched data in JSON format.
|
|
26
|
+
* @throws {Error} If an error occurs during the data fetching process.
|
|
27
|
+
*/
|
|
28
|
+
async getData(requestedProperties) {
|
|
29
|
+
try {
|
|
30
|
+
return await getData(this.#url, this.#type, requestedProperties);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
throw new Error(`Error fetching CurrencyView data: ${error.message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = CurrencyBaseClass;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const currencySubmodules = require("./currencySubmodules/CurrencySubModules");
|
|
2
|
-
const baseurl = require("../../../config/poeNinja/url");
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Represents a module for fetching currency overview data.
|
|
@@ -7,8 +6,6 @@ const baseurl = require("../../../config/poeNinja/url");
|
|
|
7
6
|
* @class
|
|
8
7
|
*/
|
|
9
8
|
class CurrencyWievModule {
|
|
10
|
-
#league;
|
|
11
|
-
#baseurl;
|
|
12
9
|
/**
|
|
13
10
|
* Creates a new CurrencyWievModule instance.
|
|
14
11
|
*
|
|
@@ -17,38 +14,16 @@ class CurrencyWievModule {
|
|
|
17
14
|
*/
|
|
18
15
|
constructor(league) {
|
|
19
16
|
/**
|
|
20
|
-
* The league for which the currency overview data is fetched.
|
|
21
|
-
*
|
|
22
|
-
* @private
|
|
23
|
-
* @type {string}
|
|
24
|
-
*/
|
|
25
|
-
this.#league = league;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The base URL for fetching currency overview data.
|
|
29
|
-
*
|
|
30
|
-
* @private
|
|
31
|
-
* @type {string}
|
|
32
|
-
*/
|
|
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
|
-
*/
|
|
41
|
-
const url = `${this.#baseurl}currencyoverview?league=${this.#league}&type=`;
|
|
42
17
|
|
|
43
18
|
/**
|
|
44
19
|
* Represents a module for fetching currency data.
|
|
45
20
|
*/
|
|
46
|
-
this.currency = new currencySubmodules.CurrencyModule(
|
|
21
|
+
this.currency = new currencySubmodules.CurrencyModule(league);
|
|
47
22
|
|
|
48
23
|
/**
|
|
49
24
|
* Represents a module for fetching fragment data.
|
|
50
25
|
*/
|
|
51
|
-
this.fragment = new currencySubmodules.FragmentModule(
|
|
26
|
+
this.fragment = new currencySubmodules.FragmentModule(league);
|
|
52
27
|
}
|
|
53
28
|
}
|
|
54
29
|
|
|
@@ -1,60 +1,16 @@
|
|
|
1
|
-
const
|
|
1
|
+
const CurrencyBaseClass = require("../../CurrencyBaseClass");
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Represents a module for
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
4
|
+
* Represents a module for interacting with currency data.
|
|
5
|
+
* @extends CurrencyBaseClass
|
|
7
6
|
*/
|
|
8
|
-
class CurrencyModule {
|
|
7
|
+
class CurrencyModule extends CurrencyBaseClass {
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @private
|
|
13
|
-
* @type {string}
|
|
9
|
+
* Constructs a new CurrencyModule instance.
|
|
10
|
+
* @param {string} league - The league name for which currency data is requested.
|
|
14
11
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* The type of data (Currency in this case).
|
|
19
|
-
*
|
|
20
|
-
* @private
|
|
21
|
-
* @type {string}
|
|
22
|
-
*/
|
|
23
|
-
#type;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Creates an instance of CurrencyModule.
|
|
27
|
-
*
|
|
28
|
-
* @param {string} url - The URL to fetch data from.
|
|
29
|
-
*/
|
|
30
|
-
constructor(url) {
|
|
31
|
-
this.#url = url;
|
|
32
|
-
this.#type = "Currency";
|
|
33
|
-
}
|
|
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
|
-
*/
|
|
42
|
-
async getData(requestedProperties) {
|
|
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
|
-
}
|
|
12
|
+
constructor(league) {
|
|
13
|
+
super(league, "Currency");
|
|
58
14
|
}
|
|
59
15
|
}
|
|
60
16
|
|
|
@@ -1,60 +1,16 @@
|
|
|
1
|
-
const
|
|
1
|
+
const CurrencyBaseClass = require("../../CurrencyBaseClass");
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Represents a module for
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
4
|
+
* Represents a module for interacting with fragment currency data.
|
|
5
|
+
* @extends CurrencyBaseClass
|
|
7
6
|
*/
|
|
8
|
-
class FragmentModule {
|
|
7
|
+
class FragmentModule extends CurrencyBaseClass {
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @private
|
|
13
|
-
* @type {string}
|
|
9
|
+
* Constructs a new FragmentModule instance.
|
|
10
|
+
* @param {string} league - The league name for which fragment currency data is requested.
|
|
14
11
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* The type of data (Fragment in this case).
|
|
19
|
-
*
|
|
20
|
-
* @private
|
|
21
|
-
* @type {string}
|
|
22
|
-
*/
|
|
23
|
-
#type;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Creates an instance of FragmentModule.
|
|
27
|
-
*
|
|
28
|
-
* @param {string} url - The URL to fetch data from.
|
|
29
|
-
*/
|
|
30
|
-
constructor(url) {
|
|
31
|
-
this.#url = url;
|
|
32
|
-
this.#type = "Fragment";
|
|
33
|
-
}
|
|
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
|
-
*/
|
|
42
|
-
async getData(requestedProperties) {
|
|
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
|
-
}
|
|
12
|
+
constructor(league) {
|
|
13
|
+
super(league, "Fragment");
|
|
58
14
|
}
|
|
59
15
|
}
|
|
60
16
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const fetchData = require("
|
|
2
|
-
const filterProperties = require("
|
|
1
|
+
const fetchData = require("../currencyFetch/fetchCurrency");
|
|
2
|
+
const filterProperties = require("../../../mainfunctions/filter/propertyFilter");
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Retrieves data from a specified API endpoint, optionally filters the data based on requested properties, and returns the result.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const getData = require("./methods/getData");
|
|
2
|
+
|
|
3
|
+
class ItemBaseClass {
|
|
4
|
+
/**
|
|
5
|
+
* @type {string} The URL used for retrieving item data.
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
#url;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @type {string} The type of item to retrieve data for.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
#type;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @type {string} The base URL for poe.watch.
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
#baseurl;
|
|
21
|
+
/**
|
|
22
|
+
* Constructs an instance of ItemBaseClass.
|
|
23
|
+
* @param {string} league - The name of the league to retrieve data for.
|
|
24
|
+
* @param {string} typeName - The type of item to retrieve data for.
|
|
25
|
+
*/
|
|
26
|
+
constructor(league, typeName) {
|
|
27
|
+
/**
|
|
28
|
+
* The URL used for retrieving item data.
|
|
29
|
+
* @type {string}
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
this.#url = `${this.#baseurl}itemoverview?league=${league}`;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The type of item to retrieve data for.
|
|
36
|
+
* @type {string}
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
this.#type = `&type=${typeName}`;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The base URL for poe.watch.
|
|
43
|
+
* @type {string}
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
this.#baseurl = "https://poe.ninja/api/data/";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Retrieves item data based on requested properties.
|
|
51
|
+
* @param {string[]} requestedProperties - An array of properties to retrieve for each item.
|
|
52
|
+
* @returns {Promise<Array<Object>>} A promise that resolves with the requested item data.
|
|
53
|
+
* @throws {Error} If there is an error fetching the data.
|
|
54
|
+
*/
|
|
55
|
+
async getData(requestedProperties) {
|
|
56
|
+
try {
|
|
57
|
+
return await getData(this.#url, this.#type, requestedProperties);
|
|
58
|
+
} catch (error) {
|
|
59
|
+
throw new Error(`Error fetching ItemOverView data: ${error.message}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
module.exports = ItemBaseClass;
|