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.
Files changed (72) hide show
  1. package/Changelog.md +11 -2
  2. package/README.md +78 -17
  3. package/index.js +5 -1
  4. package/lib/NinjaAPI.js +27 -5
  5. package/lib/WatchAPI.js +56 -0
  6. package/lib/config/poeNinja/url.js +9 -0
  7. package/lib/config/poeWatch/url.js +12 -0
  8. package/lib/modules/mainfunctions/filter/propertyFilter.js +36 -0
  9. package/lib/modules/poe.ninja/currency/CurrencyWievModule.js +44 -5
  10. package/lib/modules/poe.ninja/currency/currencyFetch/fetchCurrency.js +11 -3
  11. package/lib/modules/poe.ninja/currency/currencyFetch/merge/mergeData.js +7 -0
  12. package/lib/modules/poe.ninja/currency/currencySubmodules/functions/getData.js +24 -1
  13. package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/CurrencyModule.js +50 -4
  14. package/lib/modules/poe.ninja/currency/currencySubmodules/subModules/FragmentModule.js +50 -4
  15. package/lib/modules/poe.ninja/item/ItemWievModule.js +140 -5
  16. package/lib/modules/poe.ninja/item/itemFetch/fetchItem.js +23 -2
  17. package/lib/modules/poe.ninja/item/itemSubmodules/functions/getData.js +20 -1
  18. package/lib/modules/poe.ninja/item/itemSubmodules/itemSubModules.js +0 -2
  19. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BaseTypeModule.js +45 -4
  20. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BeastModule.js +45 -4
  21. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightRavagedMapModule.js +50 -4
  22. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/BlightedMapModule.js +47 -4
  23. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ClusterJewelModule.js +50 -4
  24. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DeliriumOrbsModule.js +50 -4
  25. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/DivinationCardModule.js +50 -4
  26. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/EssenceModule.js +50 -4
  27. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/FossilModule.js +50 -4
  28. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/HelmetEnchantModule.js +50 -4
  29. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/IncubatorModule.js +50 -4
  30. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/InvitationModule.js +50 -4
  31. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MapModule.js +50 -4
  32. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/MemoryModule.js +50 -4
  33. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OilModule.js +50 -4
  34. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/OmenModule.js +50 -4
  35. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ResonatorModule.js +50 -4
  36. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/ScarabModule.js +50 -4
  37. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/SkillGemModule.js +50 -4
  38. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueAccessoryModule.js +50 -4
  39. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueArmourModule.js +50 -4
  40. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueFlaskModule.js +50 -4
  41. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueJewelModule.js +50 -4
  42. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueMapModule.js +50 -4
  43. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueRelicModule.js +50 -4
  44. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/UniqueWeaponModule.js +50 -4
  45. package/lib/modules/poe.ninja/item/itemSubmodules/subModules/VialsModule.js +50 -4
  46. package/lib/modules/poe.watch/WatchWievModule.js +130 -0
  47. package/lib/modules/poe.watch/allModules/Modules.js +23 -0
  48. package/lib/modules/poe.watch/allModules/fetch/fetch.js +28 -0
  49. package/lib/modules/poe.watch/allModules/functions/getData.js +39 -0
  50. package/lib/modules/poe.watch/allModules/submodules/AccessoryModule.js +59 -0
  51. package/lib/modules/poe.watch/allModules/submodules/ArmourModule.js +59 -0
  52. package/lib/modules/poe.watch/allModules/submodules/BaseModule.js +59 -0
  53. package/lib/modules/poe.watch/allModules/submodules/BeastModule.js +59 -0
  54. package/lib/modules/poe.watch/allModules/submodules/CurrencyModule.js +60 -0
  55. package/lib/modules/poe.watch/allModules/submodules/DeliriumOrbModule.js +59 -0
  56. package/lib/modules/poe.watch/allModules/submodules/DivsModule.js +59 -0
  57. package/lib/modules/poe.watch/allModules/submodules/EssenceModule.js +59 -0
  58. package/lib/modules/poe.watch/allModules/submodules/FlaskModule.js +59 -0
  59. package/lib/modules/poe.watch/allModules/submodules/FossilModule.js +59 -0
  60. package/lib/modules/poe.watch/allModules/submodules/FragmentModule.js +59 -0
  61. package/lib/modules/poe.watch/allModules/submodules/GemModule.js +59 -0
  62. package/lib/modules/poe.watch/allModules/submodules/InscribedModule.js +61 -0
  63. package/lib/modules/poe.watch/allModules/submodules/InvitationModule.js +59 -0
  64. package/lib/modules/poe.watch/allModules/submodules/JewelModule.js +59 -0
  65. package/lib/modules/poe.watch/allModules/submodules/MapModule.js +59 -0
  66. package/lib/modules/poe.watch/allModules/submodules/OilModule.js +59 -0
  67. package/lib/modules/poe.watch/allModules/submodules/ScarabModule.js +59 -0
  68. package/lib/modules/poe.watch/allModules/submodules/SextantModule.js +59 -0
  69. package/lib/modules/poe.watch/allModules/submodules/UniqueMapsModule.js +59 -0
  70. package/lib/modules/poe.watch/allModules/submodules/WeaponModule.js +59 -0
  71. package/package.json +13 -5
  72. package/lib/modules/filter/propertyFilter.js +0 -18
@@ -0,0 +1,59 @@
1
+ const getData = require("../functions/getData");
2
+
3
+ /**
4
+ * Represents a module for fetching data related to Scarabs.
5
+ *
6
+ * @class
7
+ */
8
+ class ScarabModule {
9
+ /**
10
+ * The query URL for fetching Scarab data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
15
+ #queryUrl;
16
+
17
+ /**
18
+ * Creates an instance of ScarabModule.
19
+ *
20
+ * @param {string} leagueUrl - The league URL to fetch data from.
21
+ */
22
+ constructor(leagueUrl) {
23
+ /**
24
+ * The constructed query URL for fetching Scarab data.
25
+ *
26
+ * @private
27
+ * @type {string}
28
+ */
29
+ this.#queryUrl = `scarab${leagueUrl}`;
30
+ }
31
+
32
+ /**
33
+ * Asynchronously retrieves Scarab 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 Scarab 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 Scarab data.
50
+ *
51
+ * @throws {Error}
52
+ */
53
+ throw new Error(`Error fetching Scarab data: ${error.message}`);
54
+ }
55
+ }
56
+ }
57
+
58
+ // Export the ScarabModule class
59
+ module.exports = ScarabModule;
@@ -0,0 +1,59 @@
1
+ const getData = require("../functions/getData");
2
+
3
+ /**
4
+ * Represents a module for fetching data related to Sextants.
5
+ *
6
+ * @class
7
+ */
8
+ class SextantModule {
9
+ /**
10
+ * The query URL for fetching Sextant data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
15
+ #queryUrl;
16
+
17
+ /**
18
+ * Creates an instance of SextantModule.
19
+ *
20
+ * @param {string} leagueUrl - The league URL to fetch data from.
21
+ */
22
+ constructor(leagueUrl) {
23
+ /**
24
+ * The constructed query URL for fetching Sextant data.
25
+ *
26
+ * @private
27
+ * @type {string}
28
+ */
29
+ this.#queryUrl = `sextants${leagueUrl}`;
30
+ }
31
+
32
+ /**
33
+ * Asynchronously retrieves Sextant 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 Sextant 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 Sextant data.
50
+ *
51
+ * @throws {Error}
52
+ */
53
+ throw new Error(`Error fetching Sextant data: ${error.message}`);
54
+ }
55
+ }
56
+ }
57
+
58
+ // Export the SextantModule class
59
+ module.exports = SextantModule;
@@ -0,0 +1,59 @@
1
+ const getData = require("../functions/getData");
2
+
3
+ /**
4
+ * Represents a module for fetching data related to Unique Maps.
5
+ *
6
+ * @class
7
+ */
8
+ class UniqueMapsModule {
9
+ /**
10
+ * The query URL for fetching Unique Maps data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
15
+ #queryUrl;
16
+
17
+ /**
18
+ * Creates an instance of UniqueMapsModule.
19
+ *
20
+ * @param {string} leagueUrl - The league URL to fetch data from.
21
+ */
22
+ constructor(leagueUrl) {
23
+ /**
24
+ * The constructed query URL for fetching Unique Maps data.
25
+ *
26
+ * @private
27
+ * @type {string}
28
+ */
29
+ this.#queryUrl = `currency${leagueUrl}`;
30
+ }
31
+
32
+ /**
33
+ * Asynchronously retrieves Unique Maps 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 Unique Maps 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 Unique Maps data.
50
+ *
51
+ * @throws {Error}
52
+ */
53
+ throw new Error(`Error fetching Unique Maps data: ${error.message}`);
54
+ }
55
+ }
56
+ }
57
+
58
+ // Export the UniqueMapsModule class
59
+ module.exports = UniqueMapsModule;
@@ -0,0 +1,59 @@
1
+ const getData = require("../functions/getData");
2
+
3
+ /**
4
+ * Represents a module for fetching data related to Weapons.
5
+ *
6
+ * @class
7
+ */
8
+ class WeaponModule {
9
+ /**
10
+ * The query URL for fetching Weapon data.
11
+ *
12
+ * @private
13
+ * @type {string}
14
+ */
15
+ #queryUrl;
16
+
17
+ /**
18
+ * Creates an instance of WeaponModule.
19
+ *
20
+ * @param {string} leagueUrl - The league URL to fetch data from.
21
+ */
22
+ constructor(leagueUrl) {
23
+ /**
24
+ * The constructed query URL for fetching Weapon data.
25
+ *
26
+ * @private
27
+ * @type {string}
28
+ */
29
+ this.#queryUrl = `weapon${leagueUrl}`;
30
+ }
31
+
32
+ /**
33
+ * Asynchronously retrieves Weapon 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 Weapon 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 Weapon data.
50
+ *
51
+ * @throws {Error}
52
+ */
53
+ throw new Error(`Error fetching Weapon data: ${error.message}`);
54
+ }
55
+ }
56
+ }
57
+
58
+ // Export the WeaponModule class
59
+ module.exports = WeaponModule;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "poe-api-manager",
3
- "version": "0.1.0",
4
- "description": "API management for Path of Exile",
3
+ "version": "0.2.6",
4
+ "description": "API management for poe.ninja and poe.watch",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
7
+ "test": "mocha --require esm --recursive test/**/*.js"
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
@@ -20,8 +20,10 @@
20
20
  "path of exile economy",
21
21
  "path of exile ninja",
22
22
  "api",
23
- "poe api",
24
- "poe economy api"
23
+ "poe economy api",
24
+ "path of exile api",
25
+ "poe.watch api",
26
+ "poe.ninja api"
25
27
  ],
26
28
  "author": "Ayberk Gezer",
27
29
  "license": "MIT",
@@ -31,5 +33,11 @@
31
33
  "homepage": "https://github.com/ayberkgezer/poe-api-manager#readme",
32
34
  "dependencies": {
33
35
  "axios": "^1.6.7"
36
+ },
37
+ "devDependencies": {
38
+ "chai": "^4.3.4",
39
+ "esm": "^3.2.25",
40
+ "mocha": "^10.3.0",
41
+ "sinon": "^17.0.1"
34
42
  }
35
43
  }
@@ -1,18 +0,0 @@
1
- module.exports = function filterProperties(data, requestedProperties) {
2
- const result = [];
3
-
4
- data.forEach((item) => {
5
- const itemResult = {};
6
- requestedProperties.forEach((prop) => {
7
- if (item.hasOwnProperty(prop)) {
8
- itemResult[prop] = item[prop];
9
- } else {
10
- console.warn(`Property not found: ${prop}`);
11
- }
12
- });
13
-
14
- result.push(itemResult);
15
- });
16
-
17
- return result;
18
- };