@itutoring/itutoring_application_js_api 1.6.4 → 1.6.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/apiController.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import CookiesManager from "./CookiesManager";
2
+ import APICache from "./cache";
2
3
  import { R_KEYs } from "./objects/Enums";
3
4
 
4
5
  /**
@@ -8,7 +9,7 @@ class APIController
8
9
  {
9
10
  static #R_KEY = "-1";
10
11
  static #CLIENT_KEY = "-1";
11
-
12
+
12
13
  static UserSource = null;
13
14
 
14
15
  static onErrorReceived = null
@@ -70,12 +71,12 @@ class APIController
70
71
  static ResolveResponse(request)
71
72
  {
72
73
  const json = JSON.parse(request.responseText);
73
- if (json.code ===200)
74
+ if (json.code === 200)
74
75
  {
75
76
  // check for redirect
76
77
  if (json.data === "redirect" && json.url !== undefined)
77
78
  {
78
- window.location.href = json.url;
79
+ window.location.href = json.url;
79
80
  }
80
81
  return (json.data);
81
82
  }
@@ -109,8 +110,13 @@ class APIController
109
110
  * @param data "data must be as array - key, value pair. They'll be passed into the request"
110
111
  * @returns "Response from server"
111
112
  */
112
- static async Get(module, method, data)
113
+ static async Get(module, method, data, useCache = false)
113
114
  {
115
+ if (useCache && APICache.IsCached(module + method))
116
+ {
117
+ return APICache.Retrive(module + method);
118
+ }
119
+
114
120
  await APIController.GetLocalRKey();
115
121
  await APIController.GetClientKey();
116
122
 
@@ -125,7 +131,13 @@ class APIController
125
131
  {
126
132
  if (request.readyState === 4)
127
133
  {
128
- resolve(APIController.ResolveResponse(request));
134
+ var response = APIController.ResolveResponse(request);
135
+ if (useCache)
136
+ {
137
+ APICache.Cache(module + method, response);
138
+ }
139
+
140
+ resolve(response);
129
141
  }
130
142
  }
131
143
 
@@ -148,8 +160,13 @@ class APIController
148
160
  * @param file
149
161
  * @returns "Response from server"
150
162
  */
151
- static async Post(module, method, data, file = null)
163
+ static async Post(module, method, data, file = null, useCache = false)
152
164
  {
165
+ if (useCache && APICache.IsCached(module + method))
166
+ {
167
+ return APICache.Retrive(module + method);
168
+ }
169
+
153
170
  await APIController.GetLocalRKey();
154
171
  await APIController.GetClientKey();
155
172
 
@@ -173,7 +190,12 @@ class APIController
173
190
  {
174
191
  if (request.readyState === 4)
175
192
  {
176
- resolve(APIController.ResolveResponse(request));
193
+ var response = APIController.ResolveResponse(request);
194
+ if (useCache)
195
+ {
196
+ APICache.Cache(module + method, response);
197
+ }
198
+ resolve(response);
177
199
  }
178
200
  }
179
201
 
@@ -251,7 +273,7 @@ class APIController
251
273
  APIController.#R_KEY = rKey;
252
274
  localStorage.setItem("r_key", APIController.#R_KEY)
253
275
  resolve(APIController.#R_KEY);
254
-
276
+
255
277
  });
256
278
  }
257
279
  });
package/cache.js CHANGED
@@ -1,18 +1,22 @@
1
1
  class APICache
2
2
  {
3
+ static CacheStorage = {}
4
+
3
5
  static Cache(key, data)
4
6
  {
5
- localStorage.setItem(key, data);
7
+ this.CacheStorage[key] = data;
6
8
  }
7
9
 
8
10
  static Retrive(key)
9
11
  {
10
- return localStorage.getItem(key);
12
+ if (!this.IsCached(key))
13
+ return null;
14
+ return this.CacheStorage[key];
11
15
  }
12
16
 
13
17
  static IsCached(key)
14
18
  {
15
- return !(localStorage.getItem(key) === null);
19
+ return this.CacheStorage[key] !== undefined;
16
20
  }
17
21
  }
18
22
 
package/modules/FAQ.js CHANGED
@@ -12,7 +12,7 @@ class FAQ
12
12
  */
13
13
  static async GetFAQ()
14
14
  {
15
- const faq = await APIController.Get(this.#MODULE, this.#GET_FAQ, {});
15
+ const faq = await APIController.Get(this.#MODULE, this.#GET_FAQ, {}, true);
16
16
 
17
17
  return faq;
18
18
  }
@@ -18,7 +18,7 @@ class GoogleReviews
18
18
  {
19
19
  var review = await APIController.Get(this.#MODULE, this.#GET_RANDOM_REVIEW, {
20
20
  "last_review": last_review_timestamp,
21
- });
21
+ }, true);
22
22
 
23
23
  return JSON.parse(review);
24
24
  }
@@ -1,4 +1,5 @@
1
1
  import APIController from "../apiController";
2
+ import APICache from "../cache";
2
3
 
3
4
  class Inventory
4
5
  {
@@ -156,7 +156,7 @@ class LectorDatabase
156
156
  'offset': offset,
157
157
  'max': maxCount,
158
158
  'onlyWithProfilePictures': onlyWithProfilePictures,
159
- });
159
+ }, true);
160
160
  }
161
161
  }
162
162
 
@@ -13,6 +13,7 @@ class Payments
13
13
  static #GET_AVAILABLE_ITEMS = "GetAvailableItems";
14
14
 
15
15
  /**
16
+ * @deprecated
16
17
  * Purchase specific product. After calling you'll be redirected depending on the result to success or cancel (failed) url
17
18
  * @param {*} product product name as defined in php such as HOUR_LESSON
18
19
  * @param {*} type payment type (credits, card), use PaymentType enum
@@ -36,6 +37,7 @@ class Payments
36
37
  }
37
38
 
38
39
  /**
40
+ * @deprecated
39
41
  * Call on success page after purchase to mark the payment as successful.
40
42
  *
41
43
  * Will return false if is already marked.
@@ -50,6 +52,10 @@ class Payments
50
52
  }
51
53
 
52
54
  // Array of avaialable item names. returned as parsed json.
55
+ /**
56
+ * @deprecated
57
+ * @returns
58
+ */
53
59
  static async GetAvailableItems()
54
60
  {
55
61
  var res = await APIController.Get(this.#MODULE, this.#GET_AVAILABLE_ITEMS);
@@ -15,7 +15,7 @@ class Pricing
15
15
  */
16
16
  static async getPriceTable()
17
17
  {
18
- var priceTable = await APIController.Get(this.#MODULE, this.#GET_PRICE_TABLE, {});
18
+ var priceTable = await APIController.Get(this.#MODULE, this.#GET_PRICE_TABLE, {}, true);
19
19
 
20
20
  return priceTable;
21
21
  }
@@ -1,6 +1,5 @@
1
1
  import BillingInfo from "../objects/billingInfo";
2
2
  import APIController from "./../apiController";
3
- import Reservation from "./../objects/Reservation";
4
3
 
5
4
  class ReservationSystem
6
5
  {
@@ -34,7 +33,7 @@ class ReservationSystem
34
33
 
35
34
  static async getAvailableStates()
36
35
  {
37
- var states = await APIController.Get(this.#MODULE, this.#GET_AVAILABLE_STATES);
36
+ var states = await APIController.Get(this.#MODULE, this.#GET_AVAILABLE_STATES, {}, true);
38
37
  return states;
39
38
  }
40
39
 
@@ -25,7 +25,7 @@ class Reviews
25
25
  */
26
26
  static async GetReviews()
27
27
  {
28
- const reviews = await APIController.Get(this.#MODULE, this.#GET_REVIEWS, {});
28
+ const reviews = await APIController.Get(this.#MODULE, this.#GET_REVIEWS, {}, true);
29
29
 
30
30
  return reviews;
31
31
  }
@@ -36,7 +36,7 @@ class Reviews
36
36
  */
37
37
  static async GetRating()
38
38
  {
39
- const rating = await APIController.Get(this.#MODULE, this.#GET_RATING, {});
39
+ const rating = await APIController.Get(this.#MODULE, this.#GET_RATING, {}, true);
40
40
 
41
41
  return rating;
42
42
  }
@@ -22,7 +22,7 @@ class SubjectManager
22
22
 
23
23
  static async getAllAvailableLocations()
24
24
  {
25
- var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_LOCATIONS);
25
+ var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_LOCATIONS, {}, true);
26
26
  var arr = JSON.parse(data);
27
27
  return arr;
28
28
  }
@@ -31,21 +31,9 @@ class SubjectManager
31
31
  *
32
32
  * @returns Array (Subject[id]) of all available subjects as array of Subject objects. Key is id of subject.
33
33
  */
34
- static async GetAllAvailableSubjects(requestReload = false)
34
+ static async GetAllAvailableSubjects()
35
35
  {
36
- var data;
37
-
38
- /*if (APICache.IsCached(this.#SUBJECTS_CACHE_KEY) && !requestReload)
39
- {
40
- data = APICache.Retrive(this.#SUBJECTS_CACHE_KEY);
41
- }
42
- else
43
- {
44
- data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_SUBJECTS);
45
- APICache.Cache(this.#SUBJECTS_CACHE_KEY, data);
46
- }*/
47
-
48
- data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_SUBJECTS);
36
+ var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_SUBJECTS, {}, true);
49
37
 
50
38
  var dataArray = JSON.parse(data);
51
39
 
@@ -72,6 +60,11 @@ class SubjectManager
72
60
  return availableSubjects;
73
61
  }
74
62
 
63
+ /**
64
+ * @deprecated
65
+ * @param {*} requestReload
66
+ * @returns
67
+ */
75
68
  static async GetAllAvailableCourses(requestReload = false)
76
69
  {
77
70
  var data;
@@ -120,7 +113,7 @@ class SubjectManager
120
113
 
121
114
  static async GetAllAvailablePlaces()
122
115
  {
123
- var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_PLACES);
116
+ var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_PLACES, {}, true);
124
117
 
125
118
  var arr = JSON.parse(data);
126
119
 
@@ -129,7 +122,7 @@ class SubjectManager
129
122
 
130
123
  static async GetAllAvailableClasses()
131
124
  {
132
- var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_CLASSES);
125
+ var data = await APIController.Get(this.#MODULE, this.#GET_ALL_AVAILABLE_CLASSES, {}, true);
133
126
  var arr = JSON.parse(JSON.parse(data));
134
127
  return arr;
135
128
  }
@@ -1,6 +1,9 @@
1
1
  import APIController from "./../apiController";
2
2
  import TeacherProfile from "./../objects/TeacherProfile";
3
3
 
4
+ /**
5
+ * @deprecated
6
+ */
4
7
  class TeacherProfiles
5
8
  {
6
9
  static #MODULE = "TeacherProfiles";
@@ -9,6 +12,7 @@ class TeacherProfiles
9
12
 
10
13
 
11
14
  /**
15
+ * @deprecated
12
16
  * Retrive all public teacher profiles
13
17
  *
14
18
  * @returns teachers public profiles as array
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itutoring/itutoring_application_js_api",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "description": "Javascript API for iTutoring Application",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",