recombee-api-client 3.2.0 → 4.1.0

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 (342) hide show
  1. package/README.md +2 -2
  2. package/doc/AddBookmark.html +506 -0
  3. package/doc/AddCartAddition.html +512 -0
  4. package/doc/AddDetailView.html +509 -0
  5. package/doc/AddGroup.html +447 -0
  6. package/doc/AddItem.html +448 -0
  7. package/doc/AddItemProperty.html +478 -0
  8. package/doc/AddPurchase.html +515 -0
  9. package/doc/AddRating.html +529 -0
  10. package/doc/AddSearchSynonym.html +501 -0
  11. package/doc/AddSeries.html +447 -0
  12. package/doc/AddUser.html +447 -0
  13. package/doc/AddUserProperty.html +476 -0
  14. package/doc/ApiClient.html +433 -0
  15. package/doc/ApiError.html +170 -0
  16. package/doc/Batch.html +476 -0
  17. package/doc/DeleteAllSearchSynonyms.html +398 -0
  18. package/doc/DeleteBookmark.html +497 -0
  19. package/doc/DeleteCartAddition.html +497 -0
  20. package/doc/DeleteDetailView.html +497 -0
  21. package/doc/DeleteGroup.html +448 -0
  22. package/doc/DeleteItem.html +449 -0
  23. package/doc/DeleteItemProperty.html +447 -0
  24. package/doc/DeleteMoreItems.html +448 -0
  25. package/doc/DeletePurchase.html +497 -0
  26. package/doc/DeleteRating.html +497 -0
  27. package/doc/DeleteSearchSynonym.html +447 -0
  28. package/doc/DeleteSeries.html +448 -0
  29. package/doc/DeleteUser.html +448 -0
  30. package/doc/DeleteUserProperty.html +447 -0
  31. package/doc/DeleteViewPortion.html +497 -0
  32. package/doc/GetItemPropertyInfo.html +447 -0
  33. package/doc/GetItemValues.html +447 -0
  34. package/doc/GetUserPropertyInfo.html +447 -0
  35. package/doc/GetUserValues.html +447 -0
  36. package/doc/InsertToGroup.html +520 -0
  37. package/doc/InsertToSeries.html +543 -0
  38. package/doc/ListGroupItems.html +447 -0
  39. package/doc/ListGroups.html +398 -0
  40. package/doc/ListItemBookmarks.html +447 -0
  41. package/doc/ListItemCartAdditions.html +447 -0
  42. package/doc/ListItemDetailViews.html +447 -0
  43. package/doc/ListItemProperties.html +398 -0
  44. package/doc/ListItemPurchases.html +447 -0
  45. package/doc/ListItemRatings.html +447 -0
  46. package/doc/ListItemViewPortions.html +447 -0
  47. package/doc/ListItems.html +497 -0
  48. package/doc/ListSearchSynonyms.html +454 -0
  49. package/doc/ListSeries.html +398 -0
  50. package/doc/ListSeriesItems.html +447 -0
  51. package/doc/ListUserBookmarks.html +447 -0
  52. package/doc/ListUserCartAdditions.html +447 -0
  53. package/doc/ListUserDetailViews.html +447 -0
  54. package/doc/ListUserProperties.html +398 -0
  55. package/doc/ListUserPurchases.html +447 -0
  56. package/doc/ListUserRatings.html +447 -0
  57. package/doc/ListUserViewPortions.html +447 -0
  58. package/doc/ListUsers.html +491 -0
  59. package/doc/MergeUsers.html +498 -0
  60. package/doc/RecommendItemsToItem.html +635 -0
  61. package/doc/RecommendItemsToUser.html +598 -0
  62. package/doc/RecommendNextItems.html +480 -0
  63. package/doc/RecommendUsersToItem.html +579 -0
  64. package/doc/RecommendUsersToUser.html +588 -0
  65. package/doc/RemoveFromGroup.html +493 -0
  66. package/doc/RemoveFromSeries.html +516 -0
  67. package/doc/Request.html +292 -0
  68. package/doc/ResetDatabase.html +398 -0
  69. package/doc/ResponseError.html +269 -0
  70. package/doc/SearchItems.html +610 -0
  71. package/doc/SetItemValues.html +279 -0
  72. package/doc/SetUserValues.html +277 -0
  73. package/doc/SetValues.html +480 -0
  74. package/doc/SetViewPortion.html +533 -0
  75. package/doc/TimeoutError.html +246 -0
  76. package/doc/UpdateMoreItems.html +472 -0
  77. package/doc/api-client.js.html +248 -0
  78. package/doc/errors_api-error.js.html +71 -0
  79. package/doc/errors_response-error.js.html +72 -0
  80. package/doc/errors_timeout-error.js.html +71 -0
  81. package/doc/fonts/OpenSans-Bold-webfont.eot +0 -0
  82. package/doc/fonts/OpenSans-Bold-webfont.svg +1830 -0
  83. package/doc/fonts/OpenSans-Bold-webfont.woff +0 -0
  84. package/doc/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  85. package/doc/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  86. package/doc/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  87. package/doc/fonts/OpenSans-Italic-webfont.eot +0 -0
  88. package/doc/fonts/OpenSans-Italic-webfont.svg +1830 -0
  89. package/doc/fonts/OpenSans-Italic-webfont.woff +0 -0
  90. package/doc/fonts/OpenSans-Light-webfont.eot +0 -0
  91. package/doc/fonts/OpenSans-Light-webfont.svg +1831 -0
  92. package/doc/fonts/OpenSans-Light-webfont.woff +0 -0
  93. package/doc/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  94. package/doc/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  95. package/doc/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  96. package/doc/fonts/OpenSans-Regular-webfont.eot +0 -0
  97. package/doc/fonts/OpenSans-Regular-webfont.svg +1831 -0
  98. package/doc/fonts/OpenSans-Regular-webfont.woff +0 -0
  99. package/doc/index.html +65 -0
  100. package/doc/requests_add-bookmark.js.html +128 -0
  101. package/doc/requests_add-cart-addition.js.html +142 -0
  102. package/doc/requests_add-detail-view.js.html +135 -0
  103. package/doc/requests_add-group.js.html +93 -0
  104. package/doc/requests_add-item-property.js.html +104 -0
  105. package/doc/requests_add-item.js.html +94 -0
  106. package/doc/requests_add-purchase.js.html +149 -0
  107. package/doc/requests_add-rating.js.html +131 -0
  108. package/doc/requests_add-search-synonym.js.html +111 -0
  109. package/doc/requests_add-series.js.html +93 -0
  110. package/doc/requests_add-user-property.js.html +102 -0
  111. package/doc/requests_add-user.js.html +93 -0
  112. package/doc/requests_batch.js.html +121 -0
  113. package/doc/requests_delete-all-search-synonyms.js.html +91 -0
  114. package/doc/requests_delete-bookmark.js.html +106 -0
  115. package/doc/requests_delete-cart-addition.js.html +106 -0
  116. package/doc/requests_delete-detail-view.js.html +106 -0
  117. package/doc/requests_delete-group.js.html +94 -0
  118. package/doc/requests_delete-item-property.js.html +93 -0
  119. package/doc/requests_delete-item.js.html +95 -0
  120. package/doc/requests_delete-more-items.js.html +95 -0
  121. package/doc/requests_delete-purchase.js.html +106 -0
  122. package/doc/requests_delete-rating.js.html +106 -0
  123. package/doc/requests_delete-search-synonym.js.html +93 -0
  124. package/doc/requests_delete-series.js.html +94 -0
  125. package/doc/requests_delete-user-property.js.html +93 -0
  126. package/doc/requests_delete-user.js.html +94 -0
  127. package/doc/requests_delete-view-portion.js.html +106 -0
  128. package/doc/requests_get-item-property-info.js.html +93 -0
  129. package/doc/requests_get-item-values.js.html +93 -0
  130. package/doc/requests_get-user-property-info.js.html +93 -0
  131. package/doc/requests_get-user-values.js.html +93 -0
  132. package/doc/requests_insert-to-group.js.html +109 -0
  133. package/doc/requests_insert-to-series.js.html +112 -0
  134. package/doc/requests_list-group-items.js.html +93 -0
  135. package/doc/requests_list-groups.js.html +91 -0
  136. package/doc/requests_list-item-bookmarks.js.html +93 -0
  137. package/doc/requests_list-item-cart-additions.js.html +93 -0
  138. package/doc/requests_list-item-detail-views.js.html +93 -0
  139. package/doc/requests_list-item-properties.js.html +91 -0
  140. package/doc/requests_list-item-purchases.js.html +93 -0
  141. package/doc/requests_list-item-ratings.js.html +93 -0
  142. package/doc/requests_list-item-view-portions.js.html +93 -0
  143. package/doc/requests_list-items.js.html +158 -0
  144. package/doc/requests_list-search-synonyms.js.html +106 -0
  145. package/doc/requests_list-series-items.js.html +93 -0
  146. package/doc/requests_list-series.js.html +91 -0
  147. package/doc/requests_list-user-bookmarks.js.html +93 -0
  148. package/doc/requests_list-user-cart-additions.js.html +93 -0
  149. package/doc/requests_list-user-detail-views.js.html +93 -0
  150. package/doc/requests_list-user-properties.js.html +91 -0
  151. package/doc/requests_list-user-purchases.js.html +93 -0
  152. package/doc/requests_list-user-ratings.js.html +93 -0
  153. package/doc/requests_list-user-view-portions.js.html +93 -0
  154. package/doc/requests_list-users.js.html +152 -0
  155. package/doc/requests_merge-users.js.html +105 -0
  156. package/doc/requests_recommend-items-to-item.js.html +276 -0
  157. package/doc/requests_recommend-items-to-user.js.html +255 -0
  158. package/doc/requests_recommend-next-items.js.html +106 -0
  159. package/doc/requests_recommend-users-to-item.js.html +224 -0
  160. package/doc/requests_recommend-users-to-user.js.html +245 -0
  161. package/doc/requests_remove-from-group.js.html +99 -0
  162. package/doc/requests_remove-from-series.js.html +102 -0
  163. package/doc/requests_request.js.html +73 -0
  164. package/doc/requests_reset-database.js.html +91 -0
  165. package/doc/requests_search-items.js.html +231 -0
  166. package/doc/requests_set-item-values.js.html +80 -0
  167. package/doc/requests_set-user-values.js.html +79 -0
  168. package/doc/requests_set-values.js.html +102 -0
  169. package/doc/requests_set-view-portion.js.html +139 -0
  170. package/doc/requests_update-more-items.js.html +104 -0
  171. package/doc/scripts/linenumber.js +25 -0
  172. package/doc/scripts/prettify/Apache-License-2.0.txt +202 -0
  173. package/doc/scripts/prettify/lang-css.js +2 -0
  174. package/doc/scripts/prettify/prettify.js +28 -0
  175. package/doc/styles/jsdoc-default.css +358 -0
  176. package/doc/styles/prettify-jsdoc.css +111 -0
  177. package/doc/styles/prettify-tomorrow.css +132 -0
  178. package/lib/api-client.js +49 -36
  179. package/lib/requests/add-bookmark.js +1 -1
  180. package/lib/requests/add-cart-addition.js +3 -3
  181. package/lib/requests/add-detail-view.js +1 -1
  182. package/lib/requests/add-group.js +1 -1
  183. package/lib/requests/add-item-property.js +1 -1
  184. package/lib/requests/add-item.js +2 -2
  185. package/lib/requests/add-manual-reql-segment.js +58 -0
  186. package/lib/requests/add-purchase.js +4 -4
  187. package/lib/requests/add-rating.js +1 -1
  188. package/lib/requests/add-series.js +1 -1
  189. package/lib/requests/add-user-property.js +2 -2
  190. package/lib/requests/create-auto-reql-segmentation.js +66 -0
  191. package/lib/requests/create-manual-reql-segmentation.js +63 -0
  192. package/lib/requests/create-property-based-segmentation.js +67 -0
  193. package/lib/requests/delete-bookmark.js +3 -3
  194. package/lib/requests/delete-cart-addition.js +3 -3
  195. package/lib/requests/delete-detail-view.js +3 -3
  196. package/lib/requests/delete-group.js +2 -2
  197. package/lib/requests/delete-item.js +3 -3
  198. package/lib/requests/delete-manual-reql-segment.js +44 -0
  199. package/lib/requests/delete-more-items.js +44 -0
  200. package/lib/requests/delete-purchase.js +3 -3
  201. package/lib/requests/delete-rating.js +2 -2
  202. package/lib/requests/delete-search-synonym.js +1 -1
  203. package/lib/requests/delete-segmentation.js +42 -0
  204. package/lib/requests/delete-series.js +1 -1
  205. package/lib/requests/delete-user-property.js +1 -1
  206. package/lib/requests/delete-user.js +2 -2
  207. package/lib/requests/get-item-values.js +2 -2
  208. package/lib/requests/get-segmentation.js +42 -0
  209. package/lib/requests/get-user-values.js +2 -2
  210. package/lib/requests/index.js +18 -2
  211. package/lib/requests/insert-to-group.js +2 -2
  212. package/lib/requests/insert-to-series.js +2 -2
  213. package/lib/requests/list-group-items.js +1 -1
  214. package/lib/requests/list-item-bookmarks.js +2 -2
  215. package/lib/requests/list-item-cart-additions.js +2 -2
  216. package/lib/requests/list-item-detail-views.js +2 -2
  217. package/lib/requests/list-item-purchases.js +2 -2
  218. package/lib/requests/list-item-ratings.js +2 -2
  219. package/lib/requests/list-item-view-portions.js +2 -2
  220. package/lib/requests/list-items.js +1 -1
  221. package/lib/requests/list-segmentations.js +43 -0
  222. package/lib/requests/list-series-items.js +2 -2
  223. package/lib/requests/list-user-bookmarks.js +1 -1
  224. package/lib/requests/list-user-cart-additions.js +1 -1
  225. package/lib/requests/list-user-detail-views.js +1 -1
  226. package/lib/requests/list-user-purchases.js +1 -1
  227. package/lib/requests/list-user-ratings.js +1 -1
  228. package/lib/requests/list-user-view-portions.js +1 -1
  229. package/lib/requests/list-users.js +1 -1
  230. package/lib/requests/merge-users.js +2 -2
  231. package/lib/requests/recommend-item-segments-to-item-segment.js +125 -0
  232. package/lib/requests/recommend-item-segments-to-item.js +125 -0
  233. package/lib/requests/recommend-item-segments-to-user.js +110 -0
  234. package/lib/requests/recommend-items-to-item.js +26 -26
  235. package/lib/requests/recommend-items-to-user.js +23 -23
  236. package/lib/requests/recommend-next-items.js +2 -2
  237. package/lib/requests/recommend-users-to-item.js +18 -18
  238. package/lib/requests/recommend-users-to-user.js +21 -21
  239. package/lib/requests/reset-database.js +1 -1
  240. package/lib/requests/search-item-segments.js +112 -0
  241. package/lib/requests/search-items.js +17 -17
  242. package/lib/requests/set-view-portion.js +3 -3
  243. package/lib/requests/update-auto-reql-segmentation.js +66 -0
  244. package/lib/requests/update-manual-reql-segment.js +57 -0
  245. package/lib/requests/update-manual-reql-segmentation.js +59 -0
  246. package/lib/requests/update-more-items.js +53 -0
  247. package/lib/requests/update-property-based-segmentation.js +66 -0
  248. package/package.json +2 -3
  249. package/test/add-bookmark-test.js +24 -12
  250. package/test/add-cart-addition-test.js +24 -12
  251. package/test/add-detail-view-test.js +24 -12
  252. package/test/add-group-test.js +12 -6
  253. package/test/add-item-property-test.js +12 -6
  254. package/test/add-item-test.js +12 -6
  255. package/test/add-manual-reql-segment-batch_test.js +40 -0
  256. package/test/add-manual-reql-segment-callback_test.js +43 -0
  257. package/test/add-manual-reql-segment-test.js +35 -0
  258. package/test/add-purchase-test.js +24 -12
  259. package/test/add-rating-test.js +30 -15
  260. package/test/add-search-synonym-test.js +6 -3
  261. package/test/add-series-test.js +12 -6
  262. package/test/add-user-property-test.js +12 -6
  263. package/test/add-user-test.js +12 -6
  264. package/test/create-auto-reql-segmentation-batch_test.js +35 -0
  265. package/test/create-auto-reql-segmentation-callback_test.js +45 -0
  266. package/test/create-auto-reql-segmentation-test.js +43 -0
  267. package/test/create-manual-reql-segmentation-batch_test.js +35 -0
  268. package/test/create-manual-reql-segmentation-callback_test.js +45 -0
  269. package/test/create-manual-reql-segmentation-test.js +43 -0
  270. package/test/create-property-based-segmentation-batch_test.js +35 -0
  271. package/test/create-property-based-segmentation-callback_test.js +45 -0
  272. package/test/create-property-based-segmentation-test.js +43 -0
  273. package/test/delete-bookmark-test.js +6 -3
  274. package/test/delete-cart-addition-test.js +6 -3
  275. package/test/delete-detail-view-test.js +6 -3
  276. package/test/delete-group-test.js +18 -9
  277. package/test/delete-item-property-test.js +18 -9
  278. package/test/delete-item-test.js +18 -9
  279. package/test/delete-manual-reql-segment-batch_test.js +47 -0
  280. package/test/delete-manual-reql-segment-callback_test.js +51 -0
  281. package/test/delete-manual-reql-segment-test.js +39 -0
  282. package/test/{user-based-recommendation-batch_test.js → delete-more-items-batch_test.js} +4 -10
  283. package/test/delete-more-items-callback_test.js +37 -0
  284. package/test/delete-more-items-test.js +33 -0
  285. package/test/delete-purchase-test.js +6 -3
  286. package/test/delete-rating-test.js +6 -3
  287. package/test/delete-search-synonym-test.js +6 -3
  288. package/test/delete-segmentation-batch_test.js +42 -0
  289. package/test/delete-segmentation-callback_test.js +53 -0
  290. package/test/delete-segmentation-test.js +47 -0
  291. package/test/delete-series-test.js +18 -9
  292. package/test/delete-user-property-test.js +18 -9
  293. package/test/delete-user-test.js +18 -9
  294. package/test/delete-view-portion-test.js +6 -3
  295. package/test/get-segmentation-batch_test.js +41 -0
  296. package/test/get-segmentation-callback_test.js +44 -0
  297. package/test/get-segmentation-test.js +36 -0
  298. package/test/insert-to-group-test.js +6 -3
  299. package/test/insert-to-series-test.js +6 -3
  300. package/test/list-segmentations-batch_test.js +41 -0
  301. package/test/list-segmentations-callback_test.js +44 -0
  302. package/test/list-segmentations-test.js +36 -0
  303. package/test/merge-users-test.js +6 -3
  304. package/test/recommend-item-segments-to-item-batch_test.js +33 -0
  305. package/test/recommend-item-segments-to-item-callback_test.js +37 -0
  306. package/test/recommend-item-segments-to-item-segment-batch_test.js +33 -0
  307. package/test/recommend-item-segments-to-item-segment-callback_test.js +37 -0
  308. package/test/recommend-item-segments-to-item-segment-test.js +39 -0
  309. package/test/recommend-item-segments-to-item-test.js +39 -0
  310. package/test/recommend-item-segments-to-user-batch_test.js +33 -0
  311. package/test/recommend-item-segments-to-user-callback_test.js +37 -0
  312. package/test/recommend-item-segments-to-user-test.js +39 -0
  313. package/test/remove-from-group-test.js +6 -3
  314. package/test/remove-from-series-test.js +12 -6
  315. package/test/search-item-segments-batch_test.js +33 -0
  316. package/test/search-item-segments-callback_test.js +37 -0
  317. package/test/search-item-segments-test.js +39 -0
  318. package/test/set-environment.js +6 -4
  319. package/test/set-item-values-test.js +6 -3
  320. package/test/set-user-values-test.js +6 -3
  321. package/test/set-view-portion-test.js +30 -15
  322. package/test/update-auto-reql-segmentation-batch_test.js +40 -0
  323. package/test/update-auto-reql-segmentation-callback_test.js +43 -0
  324. package/test/update-auto-reql-segmentation-test.js +35 -0
  325. package/test/update-manual-reql-segment-batch_test.js +47 -0
  326. package/test/update-manual-reql-segment-callback_test.js +51 -0
  327. package/test/update-manual-reql-segment-test.js +39 -0
  328. package/test/update-manual-reql-segmentation-batch_test.js +40 -0
  329. package/test/update-manual-reql-segmentation-callback_test.js +43 -0
  330. package/test/update-manual-reql-segmentation-test.js +35 -0
  331. package/test/{item-based-recommendation-batch_test.js → update-more-items-batch_test.js} +4 -10
  332. package/test/update-more-items-callback_test.js +37 -0
  333. package/test/update-more-items-test.js +33 -0
  334. package/test/update-property-based-segmentation-batch_test.js +40 -0
  335. package/test/update-property-based-segmentation-callback_test.js +43 -0
  336. package/test/update-property-based-segmentation-test.js +35 -0
  337. package/lib/requests/item-based-recommendation.js +0 -187
  338. package/lib/requests/user-based-recommendation.js +0 -168
  339. package/test/item-based-recommendation-callback_test.js +0 -65
  340. package/test/item-based-recommendation-test.js +0 -53
  341. package/test/user-based-recommendation-callback_test.js +0 -65
  342. package/test/user-based-recommendation-test.js +0 -53
@@ -0,0 +1,111 @@
1
+ /* JSDoc prettify.js theme */
2
+
3
+ /* plain text */
4
+ .pln {
5
+ color: #000000;
6
+ font-weight: normal;
7
+ font-style: normal;
8
+ }
9
+
10
+ /* string content */
11
+ .str {
12
+ color: #006400;
13
+ font-weight: normal;
14
+ font-style: normal;
15
+ }
16
+
17
+ /* a keyword */
18
+ .kwd {
19
+ color: #000000;
20
+ font-weight: bold;
21
+ font-style: normal;
22
+ }
23
+
24
+ /* a comment */
25
+ .com {
26
+ font-weight: normal;
27
+ font-style: italic;
28
+ }
29
+
30
+ /* a type name */
31
+ .typ {
32
+ color: #000000;
33
+ font-weight: normal;
34
+ font-style: normal;
35
+ }
36
+
37
+ /* a literal value */
38
+ .lit {
39
+ color: #006400;
40
+ font-weight: normal;
41
+ font-style: normal;
42
+ }
43
+
44
+ /* punctuation */
45
+ .pun {
46
+ color: #000000;
47
+ font-weight: bold;
48
+ font-style: normal;
49
+ }
50
+
51
+ /* lisp open bracket */
52
+ .opn {
53
+ color: #000000;
54
+ font-weight: bold;
55
+ font-style: normal;
56
+ }
57
+
58
+ /* lisp close bracket */
59
+ .clo {
60
+ color: #000000;
61
+ font-weight: bold;
62
+ font-style: normal;
63
+ }
64
+
65
+ /* a markup tag name */
66
+ .tag {
67
+ color: #006400;
68
+ font-weight: normal;
69
+ font-style: normal;
70
+ }
71
+
72
+ /* a markup attribute name */
73
+ .atn {
74
+ color: #006400;
75
+ font-weight: normal;
76
+ font-style: normal;
77
+ }
78
+
79
+ /* a markup attribute value */
80
+ .atv {
81
+ color: #006400;
82
+ font-weight: normal;
83
+ font-style: normal;
84
+ }
85
+
86
+ /* a declaration */
87
+ .dec {
88
+ color: #000000;
89
+ font-weight: bold;
90
+ font-style: normal;
91
+ }
92
+
93
+ /* a variable name */
94
+ .var {
95
+ color: #000000;
96
+ font-weight: normal;
97
+ font-style: normal;
98
+ }
99
+
100
+ /* a function name */
101
+ .fun {
102
+ color: #000000;
103
+ font-weight: bold;
104
+ font-style: normal;
105
+ }
106
+
107
+ /* Specify class=linenums on a pre to get line numbering */
108
+ ol.linenums {
109
+ margin-top: 0;
110
+ margin-bottom: 0;
111
+ }
@@ -0,0 +1,132 @@
1
+ /* Tomorrow Theme */
2
+ /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3
+ /* Pretty printing styles. Used with prettify.js. */
4
+ /* SPAN elements with the classes below are added by prettyprint. */
5
+ /* plain text */
6
+ .pln {
7
+ color: #4d4d4c; }
8
+
9
+ @media screen {
10
+ /* string content */
11
+ .str {
12
+ color: #718c00; }
13
+
14
+ /* a keyword */
15
+ .kwd {
16
+ color: #8959a8; }
17
+
18
+ /* a comment */
19
+ .com {
20
+ color: #8e908c; }
21
+
22
+ /* a type name */
23
+ .typ {
24
+ color: #4271ae; }
25
+
26
+ /* a literal value */
27
+ .lit {
28
+ color: #f5871f; }
29
+
30
+ /* punctuation */
31
+ .pun {
32
+ color: #4d4d4c; }
33
+
34
+ /* lisp open bracket */
35
+ .opn {
36
+ color: #4d4d4c; }
37
+
38
+ /* lisp close bracket */
39
+ .clo {
40
+ color: #4d4d4c; }
41
+
42
+ /* a markup tag name */
43
+ .tag {
44
+ color: #c82829; }
45
+
46
+ /* a markup attribute name */
47
+ .atn {
48
+ color: #f5871f; }
49
+
50
+ /* a markup attribute value */
51
+ .atv {
52
+ color: #3e999f; }
53
+
54
+ /* a declaration */
55
+ .dec {
56
+ color: #f5871f; }
57
+
58
+ /* a variable name */
59
+ .var {
60
+ color: #c82829; }
61
+
62
+ /* a function name */
63
+ .fun {
64
+ color: #4271ae; } }
65
+ /* Use higher contrast and text-weight for printable form. */
66
+ @media print, projection {
67
+ .str {
68
+ color: #060; }
69
+
70
+ .kwd {
71
+ color: #006;
72
+ font-weight: bold; }
73
+
74
+ .com {
75
+ color: #600;
76
+ font-style: italic; }
77
+
78
+ .typ {
79
+ color: #404;
80
+ font-weight: bold; }
81
+
82
+ .lit {
83
+ color: #044; }
84
+
85
+ .pun, .opn, .clo {
86
+ color: #440; }
87
+
88
+ .tag {
89
+ color: #006;
90
+ font-weight: bold; }
91
+
92
+ .atn {
93
+ color: #404; }
94
+
95
+ .atv {
96
+ color: #060; } }
97
+ /* Style */
98
+ /*
99
+ pre.prettyprint {
100
+ background: white;
101
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
102
+ font-size: 12px;
103
+ line-height: 1.5;
104
+ border: 1px solid #ccc;
105
+ padding: 10px; }
106
+ */
107
+
108
+ /* Specify class=linenums on a pre to get line numbering */
109
+ ol.linenums {
110
+ margin-top: 0;
111
+ margin-bottom: 0; }
112
+
113
+ /* IE indents via margin-left */
114
+ li.L0,
115
+ li.L1,
116
+ li.L2,
117
+ li.L3,
118
+ li.L4,
119
+ li.L5,
120
+ li.L6,
121
+ li.L7,
122
+ li.L8,
123
+ li.L9 {
124
+ /* */ }
125
+
126
+ /* Alternate shading for lines */
127
+ li.L1,
128
+ li.L3,
129
+ li.L5,
130
+ li.L7,
131
+ li.L9 {
132
+ /* */ }
package/lib/api-client.js CHANGED
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const jsSHA = require("jssha");
4
- const rp = require('request-promise');
5
- const rp_errors = require('request-promise/errors');
4
+ const got = require('got');
6
5
 
7
6
  const api_errors = require('./errors');
8
7
  const requests = require('./requests');
@@ -17,15 +16,17 @@ class ApiClient {
17
16
  * Construct the client
18
17
  * @param {string} databaseId - ID of your database
19
18
  * @param {string} secretToken - Corresponding secret token
20
- * @param {boolean} alwaysUseHttps - If true, all requests are sent using HTTPS (default: true)
21
19
  * @param {Object} options - Other custom options
22
20
  */
23
- constructor (databaseId, token, alwaysUseHttps, options) {
21
+ constructor (databaseId, token, options) {
24
22
  this.databaseId = databaseId;
25
23
  this.token = token;
26
- this.alwaysUseHttps = (alwaysUseHttps === undefined) ? true : alwaysUseHttps;
27
24
  this.options = options || {};
28
- this.baseUri = process.env.RAPI_URI || this.options.baseUri || 'rapi.recombee.com';
25
+
26
+ if (Object.getPrototypeOf(this.options) !== Object.prototype) throw new Error(`options must be given as an Object (${this.options} given instead)`);
27
+
28
+ this.protocol = this.options.protocol || 'https';
29
+ this.baseUri = this._getBaseUri()
29
30
  }
30
31
 
31
32
  /**
@@ -41,50 +42,70 @@ class ApiClient {
41
42
  let url = this._buildRequestUrl(request);
42
43
  let options = {
43
44
  method: request.method,
44
- uri: url,
45
+ url: url,
45
46
  headers: {'Accept': 'application/json',
46
47
  'Content-Type': 'application/json',
47
- 'User-Agent': 'recombee-node-api-client/3.2.0'},
48
+ 'User-Agent': 'recombee-node-api-client/4.1.0'},
48
49
  timeout: request.timeout,
49
- resolveWithFullResponse: true,
50
- json: true
50
+ agent: this.options.agent
51
51
  };
52
52
 
53
- if (this.options.proxy)
54
- options.proxy = this.options.proxy;
55
-
56
- if (request.bodyParameters())
57
- options.body = request.bodyParameters();
53
+ if (Object.entries(request.bodyParameters()).length > 0)
54
+ options.json = request.bodyParameters();
58
55
 
59
- return rp(options)
60
- .then(this._parseResponse)
56
+ return got(options)
57
+ .json()
61
58
  .then((response)=> {
62
59
  return new Promise( (resolve) => {
63
60
  if (callback) { return callback(null, response); }
64
61
  return resolve(response);
65
62
  });
66
63
  })
67
- .catch(rp_errors.StatusCodeError,((error) => {
68
- throw new api_errors.ResponseError(request, error.statusCode, error.message);
64
+ .catch((error) => {
65
+ if (error instanceof got.HTTPError) {
66
+ error = new api_errors.ResponseError(request, error.response.statusCode, error.response.body);
69
67
  }
70
- ))
71
- .catch(rp_errors.RequestError,((error) => {
72
- if(error.cause.code === 'ETIMEDOUT' || error.cause.code === 'ESOCKETTIMEDOUT')
73
- throw new api_errors.TimeoutError(request, error);
74
- throw error;
68
+ else if (error instanceof got.RequestError) {
69
+ if(error.code === 'ETIMEDOUT' || error.code === 'ESOCKETTIMEDOUT') {
70
+ error = new api_errors.TimeoutError(request, error);
71
+ }
75
72
  }
76
- ))
77
- .catch((error) => {
78
73
  if (callback) {return callback(error)};
79
74
  throw error;
80
75
  });
81
76
  }
82
77
 
78
+ _getRegionalBaseUri(region) {
79
+ const uri = {
80
+ 'ap-se': 'rapi-ap-se.recombee.com',
81
+ 'ca-east': 'rapi-ca-east.recombee.com',
82
+ 'eu-west': 'rapi-eu-west.recombee.com',
83
+ 'us-west': 'rapi-us-west.recombee.com'
84
+ }[region.toLowerCase()];
85
+
86
+ if (uri === undefined) {
87
+ throw new Error(`Region "${region}" is unknown. You may need to update the version of the SDK.`)
88
+ }
89
+
90
+ return uri;
91
+ }
92
+
93
+ _getBaseUri() {
94
+ let baseUri = process.env.RAPI_URI || this.options.baseUri;
95
+ if (this.options.region) {
96
+ if (baseUri) {
97
+ throw new Error('baseUri and region cannot be specified at the same time');
98
+ }
99
+ baseUri = this._getRegionalBaseUri(this.options.region);
100
+ }
101
+ return baseUri || 'rapi.recombee.com';
102
+ }
103
+
83
104
  _buildRequestUrl(request) {
84
- let protocol = (request.ensureHttps || this.alwaysUseHttps) ? 'https' : 'http';
105
+ let usedProtocol = (request.ensureHttps) ? 'https' : this.protocol;
85
106
  let reqUrl = request.path + this._encodeRequestQueryParams(request);
86
107
  let signedUrl = this._signUrl(reqUrl);
87
- return protocol + '://' + this.baseUri + signedUrl;
108
+ return usedProtocol + '://' + this.baseUri + signedUrl;
88
109
  }
89
110
 
90
111
  _encodeRequestQueryParams(request) {
@@ -161,14 +182,6 @@ class ApiClient {
161
182
  });
162
183
  }
163
184
 
164
- _parseResponse(response) {
165
- return new Promise(
166
- function (resolve, reject) {
167
- resolve(response.body);
168
- }
169
- );
170
- }
171
-
172
185
  _signUrl (req_part) {
173
186
  let url = '/' + this.databaseId + req_part;
174
187
  url += (req_part.indexOf("?") == -1 ? "?" : "&" ) + "hmac_timestamp=" + parseInt(new Date().getTime() / 1000);
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds a bookmark of a given item made by a given user.
9
+ * Adds a bookmark of the given item made by the given user.
10
10
  */
11
11
  class AddBookmark extends rqs.Request {
12
12
 
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds a cart addition of a given item made by a given user.
9
+ * Adds a cart addition of the given item made by the given user.
10
10
  */
11
11
  class AddCartAddition extends rqs.Request {
12
12
 
@@ -24,10 +24,10 @@ class AddCartAddition extends rqs.Request {
24
24
  * - Description: Sets whether the given user/item should be created if not present in the database.
25
25
  * - *amount*
26
26
  * - Type: number
27
- * - Description: Amount (number) added to cart. The default is 1. For example if `user-x` adds two `item-y` during a single order (session...), the `amount` should equal to 2.
27
+ * - Description: Amount (number) added to cart. The default is 1. For example, if `user-x` adds two `item-y` during a single order (session...), the `amount` should equal 2.
28
28
  * - *price*
29
29
  * - Type: number
30
- * - Description: Price of the added item. If `amount` is greater than 1, sum of prices of all the items should be given.
30
+ * - Description: Price of the added item. If `amount` is greater than 1, the sum of prices of all the items should be given.
31
31
  * - *recommId*
32
32
  * - Type: string
33
33
  * - Description: If this cart addition is based on a recommendation request, `recommId` is the id of the clicked recommendation.
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds a detail view of a given item made by a given user.
9
+ * Adds a detail view of the given item made by the given user.
10
10
  */
11
11
  class AddDetailView extends rqs.Request {
12
12
 
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Creates new group in the database.
9
+ * Creates a new group in the database.
10
10
  */
11
11
  class AddGroup extends rqs.Request {
12
12
 
@@ -12,7 +12,7 @@ class AddItemProperty extends rqs.Request {
12
12
 
13
13
  /**
14
14
  * Construct the request
15
- * @param {string} propertyName - Name of the item property to be created. Currently, the following names are reserved:`id`, `itemid`, case insensitively. Also, the length of the property name must not exceed 63 characters.
15
+ * @param {string} propertyName - Name of the item property to be created. Currently, the following names are reserved: `id`, `itemid`, case-insensitively. Also, the length of the property name must not exceed 63 characters.
16
16
  * @param {string} type - Value type of the item property to be created. One of: `int`, `double`, `string`, `boolean`, `timestamp`, `set`, `image` or `imageList`.
17
17
  * * `int`- Signed integer number.
18
18
  * * `double` - Floating point number. It uses 64-bit base-2 format (IEEE 754 standard).
@@ -6,8 +6,8 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds new item of given `itemId` to the items catalog.
10
- * All the item properties for the newly created items are set null.
9
+ * Adds new item of the given `itemId` to the items catalog.
10
+ * All the item properties for the newly created items are set to null.
11
11
  */
12
12
  class AddItem extends rqs.Request {
13
13
 
@@ -0,0 +1,58 @@
1
+ /*
2
+ This file is auto-generated, do not edit
3
+ */
4
+
5
+ 'use strict';
6
+ const rqs = require("./request");
7
+
8
+ /**
9
+ * Adds a new Segment into a Manual ReQL Segmentation.
10
+ * The new Segment is defined by a [ReQL](https://docs.recombee.com/reql.html) filter that returns `true` for an item in case that this item belongs to the segment.
11
+ */
12
+ class AddManualReqlSegment extends rqs.Request {
13
+
14
+ /**
15
+ * Construct the request
16
+ * @param {string} segmentationId - ID of the Segmentation to which the new Segment should be added
17
+ * @param {string} segmentId - ID of the newly created Segment
18
+ * @param {string} filter - ReQL filter that returns `true` for items that belong to this Segment. Otherwise returns `false`.
19
+ * @param {Object} optional - Optional parameters given as an object with structure name of the parameter: value
20
+ * - Allowed parameters:
21
+ * - *title*
22
+ * - Type: string
23
+ * - Description: Human-readable name of the Segment that is shown in the Recombee Admin UI.
24
+ */
25
+ constructor(segmentationId, segmentId, filter, optional) {
26
+ super('PUT', `/segmentations/manual-reql/${segmentationId}/segments/${segmentId}`, 10000, false);
27
+ this.segmentationId = segmentationId;
28
+ this.segmentId = segmentId;
29
+ this.filter = filter;
30
+ optional = optional || {};
31
+ this.title = optional.title;
32
+ }
33
+
34
+ /**
35
+ * Get body parameters
36
+ * @return {Object} The values of body parameters (name of parameter: value of the parameter)
37
+ */
38
+ bodyParameters() {
39
+ let params = {};
40
+ params.filter = this.filter;
41
+
42
+ if(this.title !== undefined)
43
+ params.title = this.title;
44
+
45
+ return params;
46
+ }
47
+
48
+ /**
49
+ * Get query parameters
50
+ * @return {Object} The values of query parameters (name of parameter: value of the parameter)
51
+ */
52
+ queryParameters() {
53
+ let params = {};
54
+ return params;
55
+ }
56
+ }
57
+
58
+ exports.AddManualReqlSegment = AddManualReqlSegment
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds a purchase of a given item made by a given user.
9
+ * Adds a purchase of the given item made by the given user.
10
10
  */
11
11
  class AddPurchase extends rqs.Request {
12
12
 
@@ -24,13 +24,13 @@ class AddPurchase extends rqs.Request {
24
24
  * - Description: Sets whether the given user/item should be created if not present in the database.
25
25
  * - *amount*
26
26
  * - Type: number
27
- * - Description: Amount (number) of purchased items. The default is 1. For example if `user-x` purchases two `item-y` during a single order (session...), the `amount` should equal to 2.
27
+ * - Description: Amount (number) of purchased items. The default is 1. For example, if `user-x` purchases two `item-y` during a single order (session...), the `amount` should equal 2.
28
28
  * - *price*
29
29
  * - Type: number
30
- * - Description: Price paid by the user for the item. If `amount` is greater than 1, sum of prices of all the items should be given.
30
+ * - Description: Price paid by the user for the item. If `amount` is greater than 1, the sum of prices of all the items should be given.
31
31
  * - *profit*
32
32
  * - Type: number
33
- * - Description: Your profit from the purchased item. The profit is natural in e-commerce domain (for example if `user-x` purchases `item-y` for $100 and the gross margin is 30 %, then the profit is $30), but is applicable also in other domains (for example at a news company it may be income from displayed advertisement on article page). If `amount` is greater than 1, sum of profit of all the items should be given.
33
+ * - Description: Your profit from the purchased item. The profit is natural in the e-commerce domain (for example, if `user-x` purchases `item-y` for $100 and the gross margin is 30 %, then the profit is $30) but is also applicable in other domains (for example, at a news company it may be income from a displayed advertisement on article page). If `amount` is greater than 1, the sum of profit of all the items should be given.
34
34
  * - *recommId*
35
35
  * - Type: string
36
36
  * - Description: If this purchase is based on a recommendation request, `recommId` is the id of the clicked recommendation.
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adds a rating of given item made by a given user.
9
+ * Adds a rating of the given item made by the given user.
10
10
  */
11
11
  class AddRating extends rqs.Request {
12
12
 
@@ -6,7 +6,7 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Creates new series in the database.
9
+ * Creates a new series in the database.
10
10
  */
11
11
  class AddSeries extends rqs.Request {
12
12
 
@@ -6,13 +6,13 @@
6
6
  const rqs = require("./request");
7
7
 
8
8
  /**
9
- * Adding an user property is somehow equivalent to adding a column to the table of users. The users may be characterized by various properties of different types.
9
+ * Adding a user property is somehow equivalent to adding a column to the table of users. The users may be characterized by various properties of different types.
10
10
  */
11
11
  class AddUserProperty extends rqs.Request {
12
12
 
13
13
  /**
14
14
  * Construct the request
15
- * @param {string} propertyName - Name of the user property to be created. Currently, the following names are reserved:`id`, `userid`, case insensitively. Also, the length of the property name must not exceed 63 characters.
15
+ * @param {string} propertyName - Name of the user property to be created. Currently, the following names are reserved: `id`, `userid`, case-insensitively. Also, the length of the property name must not exceed 63 characters.
16
16
  * @param {string} type - Value type of the user property to be created. One of: `int`, `double`, `string`, `boolean`, `timestamp`, `set`.
17
17
  * * `int` - Signed integer number.
18
18
  * * `double` - Floating point number. It uses 64-bit base-2 format (IEEE 754 standard).
@@ -0,0 +1,66 @@
1
+ /*
2
+ This file is auto-generated, do not edit
3
+ */
4
+
5
+ 'use strict';
6
+ const rqs = require("./request");
7
+
8
+ /**
9
+ * Segment the items using a [ReQL](https://docs.recombee.com/reql.html) expression.
10
+ * For each item, the expression should return a set that contains IDs of segments to which the item belongs to.
11
+ */
12
+ class CreateAutoReqlSegmentation extends rqs.Request {
13
+
14
+ /**
15
+ * Construct the request
16
+ * @param {string} segmentationId - ID of the newly created Segmentation
17
+ * @param {string} sourceType - What type of data should be segmented. Currently only `items` are supported.
18
+ * @param {string} expression - ReQL expression that returns for each item a set with IDs of segments to which the item belongs
19
+ * @param {Object} optional - Optional parameters given as an object with structure name of the parameter: value
20
+ * - Allowed parameters:
21
+ * - *title*
22
+ * - Type: string
23
+ * - Description: Human-readable name that is shown in the Recombee Admin UI.
24
+ * - *description*
25
+ * - Type: string
26
+ * - Description: Description that is shown in the Recombee Admin UI.
27
+ */
28
+ constructor(segmentationId, sourceType, expression, optional) {
29
+ super('PUT', `/segmentations/auto-reql/${segmentationId}`, 10000, false);
30
+ this.segmentationId = segmentationId;
31
+ this.sourceType = sourceType;
32
+ this.expression = expression;
33
+ optional = optional || {};
34
+ this.title = optional.title;
35
+ this.description = optional.description;
36
+ }
37
+
38
+ /**
39
+ * Get body parameters
40
+ * @return {Object} The values of body parameters (name of parameter: value of the parameter)
41
+ */
42
+ bodyParameters() {
43
+ let params = {};
44
+ params.sourceType = this.sourceType;
45
+ params.expression = this.expression;
46
+
47
+ if(this.title !== undefined)
48
+ params.title = this.title;
49
+
50
+ if(this.description !== undefined)
51
+ params.description = this.description;
52
+
53
+ return params;
54
+ }
55
+
56
+ /**
57
+ * Get query parameters
58
+ * @return {Object} The values of query parameters (name of parameter: value of the parameter)
59
+ */
60
+ queryParameters() {
61
+ let params = {};
62
+ return params;
63
+ }
64
+ }
65
+
66
+ exports.CreateAutoReqlSegmentation = CreateAutoReqlSegmentation