rettiwt-api 1.0.6 → 1.0.7

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 (177) hide show
  1. package/dist/{queries → graphql/queries}/RootQuery.d.ts +0 -0
  2. package/dist/{queries → graphql/queries}/RootQuery.js +4 -3
  3. package/dist/graphql/queries/RootQuery.js.map +1 -0
  4. package/dist/{resolvers → graphql/resolvers}/AccountResolver.d.ts +1 -1
  5. package/dist/{resolvers → graphql/resolvers}/AccountResolver.js +0 -0
  6. package/dist/graphql/resolvers/AccountResolver.js.map +1 -0
  7. package/dist/{resolvers → graphql/resolvers}/ResolverBase.d.ts +1 -1
  8. package/dist/{resolvers → graphql/resolvers}/ResolverBase.js +0 -0
  9. package/dist/graphql/resolvers/ResolverBase.js.map +1 -0
  10. package/dist/{resolvers → graphql/resolvers}/TweetResolver.d.ts +10 -9
  11. package/dist/{resolvers → graphql/resolvers}/TweetResolver.js +51 -35
  12. package/dist/graphql/resolvers/TweetResolver.js.map +1 -0
  13. package/dist/{resolvers → graphql/resolvers}/UserResolver.d.ts +5 -4
  14. package/dist/{resolvers → graphql/resolvers}/UserResolver.js +51 -35
  15. package/dist/graphql/resolvers/UserResolver.js.map +1 -0
  16. package/dist/{models/graphql → graphql/types}/Global.d.ts +0 -0
  17. package/dist/{models/graphql → graphql/types}/Global.js +0 -0
  18. package/dist/graphql/types/Global.js.map +1 -0
  19. package/dist/graphql/types/TweetTypes.d.ts +4 -0
  20. package/dist/{models/graphql → graphql/types}/TweetTypes.js +5 -7
  21. package/dist/graphql/types/TweetTypes.js.map +1 -0
  22. package/dist/graphql/types/UserTypes.d.ts +3 -0
  23. package/dist/{models/graphql → graphql/types}/UserTypes.js +9 -11
  24. package/dist/graphql/types/UserTypes.js.map +1 -0
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/server.js +3 -3
  29. package/dist/server.js.map +1 -1
  30. package/dist/services/AuthService.js +2 -2
  31. package/dist/services/AuthService.js.map +1 -1
  32. package/dist/services/CacheService.d.ts +3 -3
  33. package/dist/services/CacheService.js +22 -75
  34. package/dist/services/CacheService.js.map +1 -1
  35. package/dist/services/FetcherService.d.ts +3 -2
  36. package/dist/services/FetcherService.js +11 -29
  37. package/dist/services/FetcherService.js.map +1 -1
  38. package/dist/services/data/TweetService.d.ts +6 -6
  39. package/dist/services/data/TweetService.js +44 -27
  40. package/dist/services/data/TweetService.js.map +1 -1
  41. package/dist/services/data/UserAccountService.d.ts +3 -3
  42. package/dist/services/data/UserAccountService.js +22 -8
  43. package/dist/services/data/UserAccountService.js.map +1 -1
  44. package/dist/services/data/UserService.d.ts +42 -0
  45. package/dist/services/data/UserService.js +255 -0
  46. package/dist/services/data/UserService.js.map +1 -0
  47. package/dist/services/helper/Extractors.js +1 -1
  48. package/dist/services/helper/Extractors.js.map +1 -1
  49. package/dist/services/helper/Parser.d.ts +1 -1
  50. package/dist/services/helper/Parser.js +4 -3
  51. package/dist/services/helper/Parser.js.map +1 -1
  52. package/dist/services/helper/Urls.d.ts +2 -2
  53. package/dist/services/helper/Urls.js +19 -3
  54. package/dist/services/helper/Urls.js.map +1 -1
  55. package/dist/services/helper/deserializers/Tweets.d.ts +12 -0
  56. package/dist/services/helper/deserializers/Tweets.js +92 -0
  57. package/dist/services/helper/deserializers/Tweets.js.map +1 -0
  58. package/dist/services/{accounting/Flows.d.ts → helper/deserializers/User.d.ts} +0 -0
  59. package/dist/services/helper/deserializers/User.js +2 -0
  60. package/dist/services/helper/deserializers/User.js.map +1 -0
  61. package/dist/services/helper/deserializers/Users.d.ts +7 -0
  62. package/dist/services/helper/deserializers/Users.js +27 -0
  63. package/dist/services/helper/deserializers/Users.js.map +1 -0
  64. package/dist/services/helper/extractors/TweetExtractors.d.ts +0 -0
  65. package/dist/services/helper/extractors/TweetExtractors.js +2 -0
  66. package/dist/services/helper/extractors/TweetExtractors.js.map +1 -0
  67. package/dist/services/helper/extractors/Tweets.d.ts +32 -0
  68. package/dist/services/helper/extractors/Tweets.js +264 -0
  69. package/dist/services/helper/extractors/Tweets.js.map +1 -0
  70. package/dist/services/helper/extractors/UserExtractors.d.ts +45 -0
  71. package/dist/services/helper/extractors/UserExtractors.js +176 -0
  72. package/dist/services/helper/extractors/UserExtractors.js.map +1 -0
  73. package/dist/services/helper/extractors/Users.d.ts +20 -0
  74. package/dist/services/helper/extractors/Users.js +151 -0
  75. package/dist/services/helper/extractors/Users.js.map +1 -0
  76. package/dist/services/helper/urls/Authentication.d.ts +4 -0
  77. package/dist/services/helper/urls/Authentication.js +11 -0
  78. package/dist/services/helper/urls/Authentication.js.map +1 -0
  79. package/dist/services/helper/urls/Tweets.d.ts +32 -0
  80. package/dist/services/helper/urls/Tweets.js +51 -0
  81. package/dist/services/helper/urls/Tweets.js.map +1 -0
  82. package/dist/services/helper/urls/Urls.d.ts +4 -0
  83. package/dist/services/helper/urls/Urls.js +11 -0
  84. package/dist/services/helper/urls/Urls.js.map +1 -0
  85. package/dist/services/helper/urls/Users.d.ts +31 -0
  86. package/dist/services/helper/urls/Users.js +66 -0
  87. package/dist/services/helper/urls/Users.js.map +1 -0
  88. package/dist/types/{graphql/Errors.d.ts → Errors.d.ts} +0 -0
  89. package/dist/types/{graphql/Errors.js → Errors.js} +0 -0
  90. package/dist/types/Errors.js.map +1 -0
  91. package/dist/types/Resolvers.d.ts +9 -0
  92. package/dist/types/Resolvers.js +3 -0
  93. package/dist/types/Resolvers.js.map +1 -0
  94. package/dist/types/Tweet.d.ts +1 -0
  95. package/dist/types/Tweet.js.map +1 -1
  96. package/dist/types/User.d.ts +19 -0
  97. package/dist/types/User.js +4 -0
  98. package/dist/types/User.js.map +1 -0
  99. package/dist/types/data/Errors.d.ts +26 -0
  100. package/dist/types/data/Errors.js +36 -0
  101. package/dist/types/data/Errors.js.map +1 -0
  102. package/dist/types/data/Service.d.ts +29 -0
  103. package/dist/types/data/Service.js +19 -0
  104. package/dist/types/data/Service.js.map +1 -0
  105. package/dist/types/data/Tweet.d.ts +41 -0
  106. package/dist/types/data/Tweet.js +5 -0
  107. package/dist/types/data/Tweet.js.map +1 -0
  108. package/dist/types/data/User.d.ts +19 -0
  109. package/dist/types/data/User.js +4 -0
  110. package/dist/types/data/User.js.map +1 -0
  111. package/dist/types/raw/http/Error.d.ts +34 -0
  112. package/dist/types/raw/{user/Users.js → http/Error.js} +1 -1
  113. package/dist/types/raw/http/Error.js.map +1 -0
  114. package/dist/types/raw/http/Response.d.ts +34 -0
  115. package/dist/types/raw/http/Response.js +3 -0
  116. package/dist/types/raw/http/Response.js.map +1 -0
  117. package/package.json +1 -1
  118. package/src/{queries → graphql/queries}/RootQuery.ts +5 -4
  119. package/src/{resolvers → graphql/resolvers}/AccountResolver.ts +21 -21
  120. package/src/{resolvers → graphql/resolvers}/ResolverBase.ts +1 -1
  121. package/src/{resolvers → graphql/resolvers}/TweetResolver.ts +43 -30
  122. package/src/{resolvers → graphql/resolvers}/UserResolver.ts +41 -27
  123. package/src/{models/graphql → graphql/types}/Global.ts +0 -0
  124. package/src/{models/graphql → graphql/types}/TweetTypes.ts +9 -11
  125. package/src/{models/graphql → graphql/types}/UserTypes.ts +13 -15
  126. package/src/index.ts +2 -2
  127. package/src/server.ts +3 -3
  128. package/src/services/AuthService.ts +1 -1
  129. package/src/services/CacheService.ts +6 -8
  130. package/src/services/FetcherService.ts +11 -14
  131. package/src/services/data/TweetService.ts +53 -37
  132. package/src/services/data/UserService.ts +187 -0
  133. package/src/services/helper/Parser.ts +6 -4
  134. package/src/services/helper/{Deserializers.ts → deserializers/Tweets.ts} +3 -28
  135. package/src/services/helper/deserializers/Users.ts +26 -0
  136. package/src/services/helper/extractors/Tweets.ts +252 -0
  137. package/src/services/helper/extractors/Users.ts +137 -0
  138. package/src/services/helper/urls/Authentication.ts +6 -0
  139. package/src/services/helper/urls/Tweets.ts +46 -0
  140. package/src/services/helper/urls/Users.ts +62 -0
  141. package/src/types/Resolvers.ts +9 -0
  142. package/src/types/data/Errors.ts +28 -0
  143. package/src/types/{Service.ts → data/Service.ts} +4 -5
  144. package/src/types/{Tweet.ts → data/Tweet.ts} +1 -0
  145. package/src/types/{UserAccount.ts → data/User.ts} +0 -0
  146. package/tsconfig.json +2 -2
  147. package/dist/models/graphql/Global.js.map +0 -1
  148. package/dist/models/graphql/TweetTypes.d.ts +0 -6
  149. package/dist/models/graphql/TweetTypes.js.map +0 -1
  150. package/dist/models/graphql/UserTypes.d.ts +0 -3
  151. package/dist/models/graphql/UserTypes.js.map +0 -1
  152. package/dist/queries/RootQuery.js.map +0 -1
  153. package/dist/resolvers/AccountResolver.js.map +0 -1
  154. package/dist/resolvers/ResolverBase.js.map +0 -1
  155. package/dist/resolvers/TweetResolver.js.map +0 -1
  156. package/dist/resolvers/UserResolver.js.map +0 -1
  157. package/dist/services/AccountsService.d.ts +0 -17
  158. package/dist/services/AccountsService.js +0 -171
  159. package/dist/services/AccountsService.js.map +0 -1
  160. package/dist/services/accounting/AccountsService.d.ts +0 -20
  161. package/dist/services/accounting/AccountsService.js +0 -147
  162. package/dist/services/accounting/AccountsService.js.map +0 -1
  163. package/dist/services/accounting/Flows.js +0 -2
  164. package/dist/services/accounting/Flows.js.map +0 -1
  165. package/dist/services/accounting/LoginFlows.d.ts +0 -20
  166. package/dist/services/accounting/LoginFlows.js +0 -70
  167. package/dist/services/accounting/LoginFlows.js.map +0 -1
  168. package/dist/test/Test.js +0 -2
  169. package/dist/test/Test.js.map +0 -1
  170. package/dist/types/graphql/Errors.js.map +0 -1
  171. package/dist/types/raw/user/Users.d.ts +0 -120
  172. package/dist/types/raw/user/Users.js.map +0 -1
  173. package/src/services/data/UserAccountService.ts +0 -176
  174. package/src/services/helper/Extractors.ts +0 -455
  175. package/src/services/helper/Urls.ts +0 -109
  176. package/src/types/graphql/Errors.ts +0 -16
  177. package/src/types/raw/user/Tweets.ts +0 -2847
@@ -77,12 +77,14 @@ exports.__esModule = true;
77
77
  exports.TweetService = void 0;
78
78
  // SERVICES
79
79
  var FetcherService_1 = require("../FetcherService");
80
+ var Errors = __importStar(require("../../types/data/Errors"));
80
81
  // URLS
81
- var Urls = __importStar(require("../helper/Urls"));
82
+ var TweetUrls = __importStar(require("../helper/urls/Tweets"));
82
83
  // EXTRACTORS
83
- var Extractors = __importStar(require("../helper/Extractors"));
84
+ var TweetExtractors = __importStar(require("../helper/extractors/Tweets"));
84
85
  // DESERIALIZERS
85
- var Deserializers = __importStar(require("../helper/Deserializers"));
86
+ var UserDeserializers = __importStar(require("../helper/deserializers/Users"));
87
+ var TweetDeserializers = __importStar(require("../helper/deserializers/Tweets"));
86
88
  // PARSERS
87
89
  var Parser_1 = require("../helper/Parser");
88
90
  /**
@@ -97,7 +99,7 @@ var TweetService = /** @class */ (function (_super) {
97
99
  /**
98
100
  * @returns The list of tweets that match the given filter
99
101
  * @param filter The filter be used for searching the tweets
100
- * @param count The number of tweets to fetch
102
+ * @param count The number of tweets to fetch, must be >= 1 and <= 100
101
103
  * @param cursor The cursor to the next batch of tweets. If blank, first batch is fetched
102
104
  */
103
105
  TweetService.prototype.getTweets = function (filter, count, cursor) {
@@ -105,13 +107,18 @@ var TweetService = /** @class */ (function (_super) {
105
107
  var res, data, tweets;
106
108
  return __generator(this, function (_a) {
107
109
  switch (_a.label) {
108
- case 0: return [4 /*yield*/, this.request(Urls.tweetsUrl((0, Parser_1.toQueryString)(filter), count, cursor), false).then(function (res) { return res.data; })];
110
+ case 0:
111
+ // If invalid count provided
112
+ if (count < 1 && !cursor) {
113
+ throw new Error(Errors.ValidationErrors.InvalidCount);
114
+ }
115
+ return [4 /*yield*/, this.request(TweetUrls.tweetsUrl((0, Parser_1.toQueryString)(filter), count, cursor), false).then(function (res) { return res.data; })];
109
116
  case 1:
110
117
  res = _a.sent();
111
- data = Extractors.extractTweets(res);
118
+ data = TweetExtractors.extractTweets(res);
112
119
  // Caching data
113
120
  this.cacheData(data);
114
- tweets = data.required.map(function (item) { return Deserializers.toTweet(item); });
121
+ tweets = data.required.map(function (item) { return TweetDeserializers.toTweet(item); });
115
122
  return [2 /*return*/, {
116
123
  list: tweets,
117
124
  next: { value: data.cursor }
@@ -132,15 +139,17 @@ var TweetService = /** @class */ (function (_super) {
132
139
  case 0: return [4 /*yield*/, this.readData(tweetId)];
133
140
  case 1:
134
141
  cachedData = _a.sent();
135
- if (!cachedData) return [3 /*break*/, 2];
136
- return [2 /*return*/, cachedData];
137
- case 2: return [4 /*yield*/, this.request(Urls.tweetDetailsUrl(tweetId), false).then(function (res) { return res.data; })];
138
- case 3:
142
+ // If data exists in cache
143
+ if (cachedData) {
144
+ return [2 /*return*/, cachedData];
145
+ }
146
+ return [4 /*yield*/, this.request(TweetUrls.tweetDetailsUrl(tweetId), false).then(function (res) { return res.data; })];
147
+ case 2:
139
148
  res = _a.sent();
140
- data = Extractors.extractTweet(res, tweetId);
149
+ data = TweetExtractors.extractTweet(res, tweetId);
141
150
  // Caching data
142
151
  this.cacheData(data);
143
- tweet = Deserializers.toTweet(data.required[0]);
152
+ tweet = TweetDeserializers.toTweet(data.required[0]);
144
153
  return [2 /*return*/, tweet];
145
154
  }
146
155
  });
@@ -149,7 +158,7 @@ var TweetService = /** @class */ (function (_super) {
149
158
  /**
150
159
  * @returns The list of users who liked the given tweet
151
160
  * @param tweetId The rest id of the target tweet
152
- * @param count The batch size of the list
161
+ * @param count The batch size of the list, must be >= 10 (when no cursor is provided) and <= 100
153
162
  * @param cursor The cursor to the next batch of users. If blank, first batch is fetched
154
163
  */
155
164
  TweetService.prototype.getTweetLikers = function (tweetId, count, cursor) {
@@ -160,15 +169,19 @@ var TweetService = /** @class */ (function (_super) {
160
169
  case 0:
161
170
  // If user is not authenticated, abort
162
171
  if (!this.isAuthenticated) {
163
- return [2 /*return*/, { error: new Error('Cannot fetch tweet likes without authentication!') }];
172
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
164
173
  }
165
- return [4 /*yield*/, this.request(Urls.tweetLikesUrl(tweetId, count, cursor)).then(function (res) { return res.data; })];
174
+ // If invalid count provided
175
+ if (count < 10 && !cursor) {
176
+ throw new Error(Errors.ValidationErrors.InvalidCount);
177
+ }
178
+ return [4 /*yield*/, this.request(TweetUrls.tweetLikesUrl(tweetId, count, cursor)).then(function (res) { return res.data; })];
166
179
  case 1:
167
180
  res = _a.sent();
168
- data = Extractors.extractTweetLikers(res);
181
+ data = TweetExtractors.extractTweetLikers(res);
169
182
  // Caching data
170
183
  this.cacheData(data);
171
- users = data.required.map(function (item) { return Deserializers.toUser(item); });
184
+ users = data.required.map(function (item) { return UserDeserializers.toUser(item); });
172
185
  return [2 /*return*/, {
173
186
  list: users,
174
187
  next: { value: data.cursor }
@@ -180,7 +193,7 @@ var TweetService = /** @class */ (function (_super) {
180
193
  /**
181
194
  * @returns The list of users who retweeted the given tweet
182
195
  * @param tweetId The rest id of the target tweet
183
- * @param count The batch size of the list
196
+ * @param count The batch size of the list, must be >= 10 (when no cursor is provided) and <= 100
184
197
  * @param cursor The cursor to the next batch of users. If blank, first batch is fetched
185
198
  */
186
199
  TweetService.prototype.getTweetRetweeters = function (tweetId, count, cursor) {
@@ -191,15 +204,19 @@ var TweetService = /** @class */ (function (_super) {
191
204
  case 0:
192
205
  // If user is not authenticated, abort
193
206
  if (!this.isAuthenticated) {
194
- return [2 /*return*/, { error: new Error('Cannot fetch tweet retweeters without authentication!') }];
207
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
208
+ }
209
+ // If invalid count provided
210
+ if (count < 10 && !cursor) {
211
+ throw new Error(Errors.ValidationErrors.InvalidCount);
195
212
  }
196
- return [4 /*yield*/, this.request(Urls.tweetRetweetUrl(tweetId, count, cursor)).then(function (res) { return res.data; })];
213
+ return [4 /*yield*/, this.request(TweetUrls.tweetRetweetUrl(tweetId, count, cursor)).then(function (res) { return res.data; })];
197
214
  case 1:
198
215
  res = _a.sent();
199
- data = Extractors.extractTweetRetweeters(res);
216
+ data = TweetExtractors.extractTweetRetweeters(res);
200
217
  // Caching data
201
218
  this.cacheData(data);
202
- users = data.required.map(function (item) { return Deserializers.toUser(item); });
219
+ users = data.required.map(function (item) { return UserDeserializers.toUser(item); });
203
220
  return [2 /*return*/, {
204
221
  list: users,
205
222
  next: { value: data.cursor }
@@ -221,15 +238,15 @@ var TweetService = /** @class */ (function (_super) {
221
238
  case 0:
222
239
  // If user is not authenticated, abort
223
240
  if (!this.isAuthenticated) {
224
- return [2 /*return*/, { error: new Error('Cannot fetch tweet replies without authentication!') }];
241
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
225
242
  }
226
- return [4 /*yield*/, this.request(Urls.tweetRepliesUrl(tweetId, cursor)).then(function (res) { return res.data; })];
243
+ return [4 /*yield*/, this.request(TweetUrls.tweetRepliesUrl(tweetId, cursor)).then(function (res) { return res.data; })];
227
244
  case 1:
228
245
  res = _a.sent();
229
- data = Extractors.extractTweetReplies(res, tweetId);
246
+ data = TweetExtractors.extractTweetReplies(res, tweetId);
230
247
  // Caching data
231
248
  this.cacheData(data);
232
- tweets = data.required.map(function (item) { return Deserializers.toTweet(item); });
249
+ tweets = data.required.map(function (item) { return TweetDeserializers.toTweet(item); });
233
250
  return [2 /*return*/, {
234
251
  list: tweets,
235
252
  next: { value: data.cursor }
@@ -1 +1 @@
1
- {"version":3,"file":"TweetService.js","sourceRoot":"","sources":["../../../src/services/data/TweetService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TweetService.js","sourceRoot":"","sources":["../../../src/services/data/TweetService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,oDAAmD;AAYnD,8DAAkD;AAElD,OAAO;AACP,+DAAmD;AAEnD,aAAa;AACb,2EAA+D;AAE/D,gBAAgB;AAChB,+EAAmE;AACnE,iFAAqE;AAErE,UAAU;AACV,2CAAiD;AAEjD;;GAEG;AACH;IAAkC,gCAAc;IAC5C,iBAAiB;IACjB,sBAAY,IAAiB;eACzB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACG,gCAAS,GAAf,UAAgB,MAAmB,EAAE,KAAa,EAAE,MAAc;;;;;;wBAC9D,4BAA4B;wBAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;4BACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;yBACzD;wBAGS,qBAAM,IAAI,CAAC,OAAO,CAAY,SAAS,CAAC,SAAS,CAAC,IAAA,sBAAa,EAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC,EAAA;;wBAA3H,GAAG,GAAG,SAAqH;wBAG3H,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAE9C,eAAe;wBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAGjB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAe,IAAK,OAAA,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAhC,CAAgC,CAAC,CAAC;wBAEtF,sBAAO;gCACH,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;6BAC/B,EAAC;;;;KACL;IAED;;;OAGG;IACG,mCAAY,GAAlB,UAAmB,OAAe;;;;;4BAEb,qBAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAA;;wBAAzC,UAAU,GAAG,SAA4B;wBAE7C,0BAA0B;wBAC1B,IAAI,UAAU,EAAE;4BACZ,sBAAO,UAAU,EAAC;yBACrB;wBAGS,qBAAM,IAAI,CAAC,OAAO,CAAW,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC,EAAA;;wBAAnG,GAAG,GAAG,SAA6F;wBAGnG,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAEtD,eAAe;wBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAGjB,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEzD,sBAAO,KAAK,EAAC;;;;KAChB;IAED;;;;;OAKG;IACG,qCAAc,GAApB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc;;;;;;wBAC/D,sCAAsC;wBACtC,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE;4BACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;yBACjE;wBAED,4BAA4B;wBAC5B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;4BACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;yBACzD;wBAGS,qBAAM,IAAI,CAAC,OAAO,CAAY,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC,EAAA;;wBAA1G,GAAG,GAAG,SAAoG;wBAG1G,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;wBAEnD,eAAe;wBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAGjB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAc,IAAK,OAAA,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAA9B,CAA8B,CAAC,CAAC;wBAElF,sBAAO;gCACH,IAAI,EAAE,KAAK;gCACX,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;6BAC/B,EAAC;;;;KACL;IAED;;;;;OAKG;IACG,yCAAkB,GAAxB,UAAyB,OAAe,EAAE,KAAa,EAAE,MAAc;;;;;;wBACnE,sCAAsC;wBACtC,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE;4BACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;yBACjE;wBAED,4BAA4B;wBAC5B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;4BACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;yBACzD;wBAGS,qBAAM,IAAI,CAAC,OAAO,CAAgB,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC,EAAA;;wBAAhH,GAAG,GAAG,SAA0G;wBAGhH,IAAI,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;wBAEvD,eAAe;wBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAGjB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAc,IAAK,OAAA,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAA9B,CAA8B,CAAC,CAAC;wBAElF,sBAAO;gCACH,IAAI,EAAE,KAAK;gCACX,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;6BAC/B,EAAC;;;;KACL;IAED;;;;OAIG;IACG,sCAAe,GAArB,UAAsB,OAAe,EAAE,MAAc;;;;;;wBACjD,sCAAsC;wBACtC,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE;4BACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;yBACjE;wBAGS,qBAAM,IAAI,CAAC,OAAO,CAAW,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC,EAAA;;wBAApG,GAAG,GAAG,SAA8F;wBAGpG,IAAI,GAAG,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAE7D,eAAe;wBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAGjB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAe,IAAK,OAAA,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAhC,CAAgC,CAAC,CAAC;wBAEtF,sBAAO;gCACH,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;6BAC/B,EAAC;;;;KACL;IACL,mBAAC;AAAD,CAAC,AAlKD,CAAkC,+BAAc,GAkK/C;AAlKY,oCAAY"}
@@ -21,21 +21,21 @@ export declare class UserAccountService extends FetcherService {
21
21
  /**
22
22
  * @returns The list of users followed by the target user
23
23
  * @param userId The rest id of the target user
24
- * @param count The batch size of the list
24
+ * @param count The number of following to fetch, should be >= 40 (when no cursor is provided) and <=100
25
25
  * @param cursor The cursor to next batch. If blank, first batch is fetched
26
26
  */
27
27
  getUserFollowing(userId: string, count: number, cursor: string): Promise<CursoredData<User>>;
28
28
  /**
29
29
  * @returns The list of users following the target user
30
30
  * @param userId The rest id of the target user
31
- * @param count The batch size of the list
31
+ * @param count The number of followers to fetch, should be >= 40 (when no cursor is provided) and <=100
32
32
  * @param cursor The cursor to next batch. If blank, first batch is fetched
33
33
  */
34
34
  getUserFollowers(userId: string, count: number, cursor: string): Promise<CursoredData<User>>;
35
35
  /**
36
36
  * @returns The list of tweets liked by the target user
37
37
  * @param userId The rest id of the target user
38
- * @param count The batch size of the list
38
+ * @param count The number of likes to fetch, must be >= 10 (when no cursor is provided) and <= 100
39
39
  * @param cursor The cursor to next batch. If blank, first batch is fetched
40
40
  */
41
41
  getUserLikes(userId: string, count: number, cursor: string): Promise<CursoredData<Tweet>>;
@@ -125,10 +125,12 @@ var UserAccountService = /** @class */ (function (_super) {
125
125
  case 0: return [4 /*yield*/, this.readData(restId)];
126
126
  case 1:
127
127
  cachedData = _a.sent();
128
- if (!cachedData) return [3 /*break*/, 2];
129
- return [2 /*return*/, cachedData];
130
- case 2: return [4 /*yield*/, this.request(Urls.userAccountByIdUrl(restId), false).then(function (res) { return res.data; })];
131
- case 3:
128
+ // If data exists in cache
129
+ if (cachedData) {
130
+ return [2 /*return*/, cachedData];
131
+ }
132
+ return [4 /*yield*/, this.request(Urls.userAccountByIdUrl(restId), false).then(function (res) { return res.data; })];
133
+ case 2:
132
134
  res = _a.sent();
133
135
  data = Extractors.extractUserAccountDetails(res);
134
136
  // Caching data
@@ -142,7 +144,7 @@ var UserAccountService = /** @class */ (function (_super) {
142
144
  /**
143
145
  * @returns The list of users followed by the target user
144
146
  * @param userId The rest id of the target user
145
- * @param count The batch size of the list
147
+ * @param count The number of following to fetch, should be >= 40 (when no cursor is provided) and <=100
146
148
  * @param cursor The cursor to next batch. If blank, first batch is fetched
147
149
  */
148
150
  UserAccountService.prototype.getUserFollowing = function (userId, count, cursor) {
@@ -155,6 +157,10 @@ var UserAccountService = /** @class */ (function (_super) {
155
157
  if (!this.isAuthenticated) {
156
158
  return [2 /*return*/, { error: new Error('Cannot fetch user following without authentication!') }];
157
159
  }
160
+ // If invalid count provided
161
+ if (count < 40 && !cursor) {
162
+ return [2 /*return*/, { error: new Error('Count must be >= 40 (when no cursor if provided)!') }];
163
+ }
158
164
  return [4 /*yield*/, this.request(Urls.userFollowingUrl(userId, count, cursor)).then(function (res) { return res.data; })];
159
165
  case 1:
160
166
  res = _a.sent();
@@ -173,7 +179,7 @@ var UserAccountService = /** @class */ (function (_super) {
173
179
  /**
174
180
  * @returns The list of users following the target user
175
181
  * @param userId The rest id of the target user
176
- * @param count The batch size of the list
182
+ * @param count The number of followers to fetch, should be >= 40 (when no cursor is provided) and <=100
177
183
  * @param cursor The cursor to next batch. If blank, first batch is fetched
178
184
  */
179
185
  UserAccountService.prototype.getUserFollowers = function (userId, count, cursor) {
@@ -186,7 +192,11 @@ var UserAccountService = /** @class */ (function (_super) {
186
192
  if (!this.isAuthenticated) {
187
193
  return [2 /*return*/, { error: new Error('Cannot fetch user followers without authentication!') }];
188
194
  }
189
- return [4 /*yield*/, this.request(Urls.userFollowersUrl(userId, (count > 20) ? (count - 20) : count, cursor)).then(function (res) { return res.data; })];
195
+ // If invalid count provided
196
+ if (count < 40 && !cursor) {
197
+ return [2 /*return*/, { error: new Error('Count must be >= 40 (when no cursor is provided)!') }];
198
+ }
199
+ return [4 /*yield*/, this.request(Urls.userFollowersUrl(userId, count, cursor)).then(function (res) { return res.data; })];
190
200
  case 1:
191
201
  res = _a.sent();
192
202
  data = Extractors.extractUserFollow(res);
@@ -204,7 +214,7 @@ var UserAccountService = /** @class */ (function (_super) {
204
214
  /**
205
215
  * @returns The list of tweets liked by the target user
206
216
  * @param userId The rest id of the target user
207
- * @param count The batch size of the list
217
+ * @param count The number of likes to fetch, must be >= 10 (when no cursor is provided) and <= 100
208
218
  * @param cursor The cursor to next batch. If blank, first batch is fetched
209
219
  */
210
220
  UserAccountService.prototype.getUserLikes = function (userId, count, cursor) {
@@ -217,6 +227,10 @@ var UserAccountService = /** @class */ (function (_super) {
217
227
  if (!this.isAuthenticated) {
218
228
  return [2 /*return*/, { error: new Error('Cannot fetch user likes without authentication!') }];
219
229
  }
230
+ // If invalid count provided
231
+ if (count < 40 && !cursor) {
232
+ return [2 /*return*/, { error: new Error('Count must be >= 10 (when no cursor is provided)!') }];
233
+ }
220
234
  return [4 /*yield*/, this.request(Urls.userLikesUrl(userId, count, cursor)).then(function (res) { return res.data; })];
221
235
  case 1:
222
236
  res = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"UserAccountService.js","sourceRoot":"","sources":["../../../src/services/data/UserAccountService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserAccountService.js","sourceRoot":"","sources":["../../../src/services/data/UserAccountService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { FetcherService } from '../FetcherService';
2
+ import { AuthService } from '../AuthService';
3
+ import { User } from '../../types/data/User';
4
+ import { Tweet } from '../../types/data/Tweet';
5
+ import { CursoredData } from '../../types/data/Service';
6
+ /**
7
+ * A service that deals with fetching of data related to user account
8
+ */
9
+ export declare class UserService extends FetcherService {
10
+ constructor(auth: AuthService);
11
+ /**
12
+ * @returns The details of the given user
13
+ * @param screenName The screen name of the target user.
14
+ */
15
+ getUserDetails(screenName: string): Promise<User>;
16
+ /**
17
+ * @returns The details of the user with given rest id
18
+ * @param restId The screen name of the target user.
19
+ */
20
+ getUserDetailsById(restId: string): Promise<User>;
21
+ /**
22
+ * @returns The list of users followed by the target user
23
+ * @param userId The rest id of the target user
24
+ * @param count The number of following to fetch, should be >= 40 (when no cursor is provided) and <=100
25
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
26
+ */
27
+ getUserFollowing(userId: string, count: number, cursor: string): Promise<CursoredData<User>>;
28
+ /**
29
+ * @returns The list of users following the target user
30
+ * @param userId The rest id of the target user
31
+ * @param count The number of followers to fetch, should be >= 40 (when no cursor is provided) and <=100
32
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
33
+ */
34
+ getUserFollowers(userId: string, count: number, cursor: string): Promise<CursoredData<User>>;
35
+ /**
36
+ * @returns The list of tweets liked by the target user
37
+ * @param userId The rest id of the target user
38
+ * @param count The number of likes to fetch, must be >= 40 (when no cursor is provided) and <= 100
39
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
40
+ */
41
+ getUserLikes(userId: string, count: number, cursor: string): Promise<CursoredData<Tweet>>;
42
+ }
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
+ return new (P || (P = Promise))(function (resolve, reject) {
43
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
44
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
45
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ };
49
+ var __generator = (this && this.__generator) || function (thisArg, body) {
50
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
+ function verb(n) { return function (v) { return step([n, v]); }; }
53
+ function step(op) {
54
+ if (f) throw new TypeError("Generator is already executing.");
55
+ while (_) try {
56
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
+ if (y = 0, t) op = [op[0] & 2, t.value];
58
+ switch (op[0]) {
59
+ case 0: case 1: t = op; break;
60
+ case 4: _.label++; return { value: op[1], done: false };
61
+ case 5: _.label++; y = op[1]; op = [0]; continue;
62
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
63
+ default:
64
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
65
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
66
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
67
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
68
+ if (t[2]) _.ops.pop();
69
+ _.trys.pop(); continue;
70
+ }
71
+ op = body.call(thisArg, _);
72
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
73
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
74
+ }
75
+ };
76
+ exports.__esModule = true;
77
+ exports.UserService = void 0;
78
+ // SERVICES
79
+ var FetcherService_1 = require("../FetcherService");
80
+ var Errors = __importStar(require("../../types/data/Errors"));
81
+ // URLS
82
+ var UserUrls = __importStar(require("../helper/urls/Users"));
83
+ // EXTRACTORS
84
+ var UserExtractors = __importStar(require("../helper/extractors/Users"));
85
+ // DESERIALIZERS
86
+ var UserDeserializers = __importStar(require("../helper/deserializers/Users"));
87
+ var TweetDeserializers = __importStar(require("../helper/deserializers/Tweets"));
88
+ /**
89
+ * A service that deals with fetching of data related to user account
90
+ */
91
+ var UserService = /** @class */ (function (_super) {
92
+ __extends(UserService, _super);
93
+ // MEMBER METHODS
94
+ function UserService(auth) {
95
+ return _super.call(this, auth) || this;
96
+ }
97
+ /**
98
+ * @returns The details of the given user
99
+ * @param screenName The screen name of the target user.
100
+ */
101
+ UserService.prototype.getUserDetails = function (screenName) {
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ var res, data, user;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0: return [4 /*yield*/, this.request(UserUrls.userDetailsUrl(screenName), false).then(function (res) { return res.data; })];
107
+ case 1:
108
+ res = _a.sent();
109
+ data = UserExtractors.extractUserDetails(res);
110
+ // Caching data
111
+ this.cacheData(data);
112
+ user = UserDeserializers.toUser(data.required[0]);
113
+ return [2 /*return*/, user];
114
+ }
115
+ });
116
+ });
117
+ };
118
+ /**
119
+ * @returns The details of the user with given rest id
120
+ * @param restId The screen name of the target user.
121
+ */
122
+ UserService.prototype.getUserDetailsById = function (restId) {
123
+ return __awaiter(this, void 0, void 0, function () {
124
+ var cachedData, res, data, user;
125
+ return __generator(this, function (_a) {
126
+ switch (_a.label) {
127
+ case 0: return [4 /*yield*/, this.readData(restId)];
128
+ case 1:
129
+ cachedData = _a.sent();
130
+ // If data exists in cache
131
+ if (cachedData) {
132
+ return [2 /*return*/, cachedData];
133
+ }
134
+ return [4 /*yield*/, this.request(UserUrls.userDetailsByIdUrl(restId), false).then(function (res) { return res.data; })];
135
+ case 2:
136
+ res = _a.sent();
137
+ data = UserExtractors.extractUserDetails(res);
138
+ // Caching data
139
+ this.cacheData(data);
140
+ user = UserDeserializers.toUser(data.required[0]);
141
+ return [2 /*return*/, user];
142
+ }
143
+ });
144
+ });
145
+ };
146
+ /**
147
+ * @returns The list of users followed by the target user
148
+ * @param userId The rest id of the target user
149
+ * @param count The number of following to fetch, should be >= 40 (when no cursor is provided) and <=100
150
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
151
+ */
152
+ UserService.prototype.getUserFollowing = function (userId, count, cursor) {
153
+ return __awaiter(this, void 0, void 0, function () {
154
+ var res, data, users;
155
+ return __generator(this, function (_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ // If user is not authenticated, abort
159
+ if (!this.isAuthenticated) {
160
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
161
+ }
162
+ // If invalid count provided
163
+ if (count < 40 && !cursor) {
164
+ throw new Error(Errors.ValidationErrors.InvalidCount);
165
+ }
166
+ return [4 /*yield*/, this.request(UserUrls.userFollowingUrl(userId, count, cursor)).then(function (res) { return res.data; })];
167
+ case 1:
168
+ res = _a.sent();
169
+ data = UserExtractors.extractUserFollow(res);
170
+ // Caching data
171
+ this.cacheData(data);
172
+ users = data.required.map(function (item) { return UserDeserializers.toUser(item); });
173
+ return [2 /*return*/, {
174
+ list: users,
175
+ next: { value: data.cursor }
176
+ }];
177
+ }
178
+ });
179
+ });
180
+ };
181
+ /**
182
+ * @returns The list of users following the target user
183
+ * @param userId The rest id of the target user
184
+ * @param count The number of followers to fetch, should be >= 40 (when no cursor is provided) and <=100
185
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
186
+ */
187
+ UserService.prototype.getUserFollowers = function (userId, count, cursor) {
188
+ return __awaiter(this, void 0, void 0, function () {
189
+ var res, data, users;
190
+ return __generator(this, function (_a) {
191
+ switch (_a.label) {
192
+ case 0:
193
+ // If user is not authenticated, abort
194
+ if (!this.isAuthenticated) {
195
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
196
+ }
197
+ // If invalid count provided
198
+ if (count < 40 && !cursor) {
199
+ throw new Error(Errors.ValidationErrors.InvalidCount);
200
+ }
201
+ return [4 /*yield*/, this.request(UserUrls.userFollowersUrl(userId, count, cursor)).then(function (res) { return res.data; })];
202
+ case 1:
203
+ res = _a.sent();
204
+ data = UserExtractors.extractUserFollow(res);
205
+ // Caching data
206
+ this.cacheData(data);
207
+ users = data.required.map(function (item) { return UserDeserializers.toUser(item); });
208
+ return [2 /*return*/, {
209
+ list: users,
210
+ next: { value: data.cursor }
211
+ }];
212
+ }
213
+ });
214
+ });
215
+ };
216
+ /**
217
+ * @returns The list of tweets liked by the target user
218
+ * @param userId The rest id of the target user
219
+ * @param count The number of likes to fetch, must be >= 40 (when no cursor is provided) and <= 100
220
+ * @param cursor The cursor to next batch. If blank, first batch is fetched
221
+ */
222
+ UserService.prototype.getUserLikes = function (userId, count, cursor) {
223
+ return __awaiter(this, void 0, void 0, function () {
224
+ var res, data, tweets;
225
+ return __generator(this, function (_a) {
226
+ switch (_a.label) {
227
+ case 0:
228
+ // If user is not authenticated, abort
229
+ if (!this.isAuthenticated) {
230
+ throw new Error(Errors.AuthenticationErrors.NotAuthenticated);
231
+ }
232
+ // If invalid count provided
233
+ if (count < 40 && !cursor) {
234
+ throw new Error(Errors.ValidationErrors.InvalidCount);
235
+ }
236
+ return [4 /*yield*/, this.request(UserUrls.userLikesUrl(userId, count, cursor)).then(function (res) { return res.data; })];
237
+ case 1:
238
+ res = _a.sent();
239
+ data = UserExtractors.extractUserLikes(res);
240
+ // Caching data
241
+ this.cacheData(data);
242
+ tweets = data.required.map(function (item) { return TweetDeserializers.toTweet(item); });
243
+ return [2 /*return*/, {
244
+ list: tweets,
245
+ next: { value: data.cursor }
246
+ }];
247
+ }
248
+ });
249
+ });
250
+ };
251
+ return UserService;
252
+ }(FetcherService_1.FetcherService));
253
+ exports.UserService = UserService;
254
+ ;
255
+ //# sourceMappingURL=UserService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../src/services/data/UserService.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  exports.__esModule = true;
26
26
  exports.extractTweetReplies = exports.extractTweetRetweeters = exports.extractTweetLikers = exports.extractTweet = exports.extractTweets = exports.extractUserTweets = exports.extractUserLikes = exports.extractUserFollow = exports.extractUserAccountDetails = void 0;
27
27
  // TYPES
28
- var Errors_1 = require("../../types/graphql/Errors");
28
+ var Errors_1 = require("../../types/Errors");
29
29
  // PARSERS
30
30
  var Parsers = __importStar(require("./Parser"));
31
31
  /* USERS */