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
@@ -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.url = url;
6
- this.type = "Vial";
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
- return getData(this.url, this.type, requestedProperties);
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;