@studyportals/domain-client 3.18.0 → 3.20.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 (354) hide show
  1. package/{bin/index.d.ts → index.d.ts} +73 -73
  2. package/{bin/index.js → index.js} +53 -53
  3. package/package.json +55 -55
  4. package/{bin/src → src}/domain-client.d.ts +14 -14
  5. package/{bin/src → src}/domain-client.js +60 -60
  6. package/{bin/src → src}/exceptions/bad-request-exception.d.ts +2 -2
  7. package/{bin/src → src}/exceptions/bad-request-exception.js +6 -6
  8. package/{bin/src → src}/exceptions/client-exception.d.ts +2 -2
  9. package/{bin/src → src}/exceptions/client-exception.js +6 -6
  10. package/{bin/src → src}/exceptions/internal-server-exception.d.ts +2 -2
  11. package/{bin/src → src}/exceptions/internal-server-exception.js +6 -6
  12. package/{bin/src → src}/exceptions/not-found-exception.d.ts +2 -2
  13. package/{bin/src → src}/exceptions/not-found-exception.js +6 -6
  14. package/{bin/src → src}/exceptions/property-not-available-exception.d.ts +2 -2
  15. package/{bin/src → src}/exceptions/property-not-available-exception.js +6 -6
  16. package/{bin/src → src}/factories/DateFactory.d.ts +5 -5
  17. package/{bin/src → src}/factories/DateFactory.js +9 -9
  18. package/{bin/src → src}/factories/InternalLinkFactory.d.ts +9 -9
  19. package/{bin/src → src}/factories/InternalLinkFactory.js +19 -19
  20. package/{bin/src → src}/i-api-response.d.ts +6 -6
  21. package/{bin/src → src}/i-api-response.js +2 -2
  22. package/{bin/src → src}/i-class-factory.d.ts +4 -4
  23. package/{bin/src → src}/i-class-factory.js +2 -2
  24. package/{bin/src → src}/i-model-description.d.ts +7 -7
  25. package/{bin/src → src}/i-model-description.js +9 -9
  26. package/{bin/src → src}/model-client.d.ts +16 -16
  27. package/{bin/src → src}/model-client.js +45 -45
  28. package/{bin/src → src}/model-factory.d.ts +11 -11
  29. package/{bin/src → src}/model-factory.js +71 -71
  30. package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.d.ts +7 -7
  31. package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js +16 -16
  32. package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.d.ts +82 -82
  33. package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js +2 -2
  34. package/{bin/src/models/common → src/models/bestfit-programme}/i-city.d.ts +14 -14
  35. package/{bin/src/models/common → src/models/bestfit-programme}/i-city.js +2 -2
  36. package/{bin/src → src}/models/bestfit-programme/i-living-cost.d.ts +20 -20
  37. package/{bin/src → src}/models/bestfit-programme/i-living-cost.js +2 -2
  38. package/{bin/src/models/bestfit-programme → src/models/common}/i-city.d.ts +14 -14
  39. package/{bin/src/models/bestfit-programme → src/models/common}/i-city.js +2 -2
  40. package/{bin/src → src}/models/common/i-country.d.ts +20 -20
  41. package/{bin/src → src}/models/common/i-country.js +2 -2
  42. package/{bin/src → src}/models/common/i-english-requirements.d.ts +44 -44
  43. package/{bin/src → src}/models/common/i-english-requirements.js +2 -2
  44. package/{bin/src → src}/models/common/i-g-p-a-requirement.d.ts +20 -20
  45. package/{bin/src → src}/models/common/i-g-p-a-requirement.js +2 -2
  46. package/{bin/src → src}/models/common/i-internal-link.d.ts +28 -28
  47. package/{bin/src → src}/models/common/i-internal-link.js +2 -2
  48. package/{bin/src/models/programme-card → src/models/common}/i-logo.d.ts +14 -14
  49. package/{bin/src/models/programme-card → src/models/common}/i-logo.js +2 -2
  50. package/{bin/src/models/programme-card → src/models/common}/i-tuition-fee.d.ts +50 -50
  51. package/{bin/src → src}/models/common/i-tuition-fee.js +2 -2
  52. package/{bin/src → src}/models/compare-programme/compare-programme-client.d.ts +7 -7
  53. package/{bin/src → src}/models/compare-programme/compare-programme-client.js +16 -16
  54. package/{bin/src → src}/models/compare-programme/i-compare-programme.d.ts +108 -108
  55. package/{bin/src → src}/models/compare-programme/i-compare-programme.js +2 -2
  56. package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.d.ts +7 -7
  57. package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js +16 -16
  58. package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +35 -35
  59. package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js +2 -2
  60. package/{bin/src → src}/models/dotdigital-organisation/i-review.d.ts +7 -7
  61. package/{bin/src → src}/models/dotdigital-organisation/i-review.js +2 -2
  62. package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.d.ts +7 -7
  63. package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js +16 -16
  64. package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.d.ts +101 -101
  65. package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js +2 -2
  66. package/{bin/src/models/programme-card → src/models/dotdigital-programme}/i-internal-link.d.ts +28 -28
  67. package/{bin/src → src}/models/dotdigital-programme/i-internal-link.js +2 -2
  68. package/{bin/src → src}/models/programme-card/i-click-tracking-data.d.ts +5 -5
  69. package/{bin/src → src}/models/programme-card/i-click-tracking-data.js +2 -2
  70. package/{bin/src → src}/models/programme-card/i-cover.d.ts +14 -14
  71. package/{bin/src → src}/models/programme-card/i-cover.js +2 -2
  72. package/{bin/src → src}/models/programme-card/i-deadline.d.ts +20 -20
  73. package/{bin/src → src}/models/programme-card/i-deadline.js +2 -2
  74. package/{bin/src → src}/models/programme-card/i-duration.d.ts +40 -40
  75. package/{bin/src → src}/models/programme-card/i-duration.js +2 -2
  76. package/{bin/src/models/dotdigital-programme → src/models/programme-card}/i-internal-link.d.ts +28 -28
  77. package/{bin/src → src}/models/programme-card/i-internal-link.js +2 -2
  78. package/{bin/src → src}/models/programme-card/i-link.d.ts +22 -22
  79. package/{bin/src → src}/models/programme-card/i-link.js +2 -2
  80. package/{bin/src → src}/models/programme-card/i-location.d.ts +12 -12
  81. package/{bin/src → src}/models/programme-card/i-location.js +2 -2
  82. package/{bin/src/models/common → src/models/programme-card}/i-logo.d.ts +14 -14
  83. package/{bin/src/models/common → src/models/programme-card}/i-logo.js +2 -2
  84. package/{bin/src → src}/models/programme-card/i-optional-link.d.ts +23 -23
  85. package/{bin/src → src}/models/programme-card/i-optional-link.js +2 -2
  86. package/{bin/src → src}/models/programme-card/i-programme-card.d.ts +186 -178
  87. package/{bin/src → src}/models/programme-card/i-programme-card.js +2 -2
  88. package/{bin/src → src}/models/programme-card/i-start-date.d.ts +33 -33
  89. package/{bin/src → src}/models/programme-card/i-start-date.js +2 -2
  90. package/{bin/src → src}/models/programme-card/i-timing.d.ts +45 -45
  91. package/{bin/src → src}/models/programme-card/i-timing.js +2 -2
  92. package/{bin/src → src}/models/programme-card/i-tracked-link.d.ts +29 -29
  93. package/{bin/src → src}/models/programme-card/i-tracked-link.js +2 -2
  94. package/{bin/src → src}/models/programme-card/i-tracking.d.ts +46 -46
  95. package/{bin/src → src}/models/programme-card/i-tracking.js +2 -2
  96. package/{bin/src/models/common → src/models/programme-card}/i-tuition-fee.d.ts +50 -50
  97. package/{bin/src → src}/models/programme-card/i-tuition-fee.js +2 -2
  98. package/{bin/src → src}/models/programme-card/programme-card-client.d.ts +7 -7
  99. package/{bin/src → src}/models/programme-card/programme-card-client.js +16 -16
  100. package/{bin/src → src}/models/ranking-cards/i-ranking-card.d.ts +63 -63
  101. package/{bin/src → src}/models/ranking-cards/i-ranking-card.js +2 -2
  102. package/{bin/src → src}/models/ranking-cards/i-ranking-cards.d.ts +15 -15
  103. package/{bin/src → src}/models/ranking-cards/i-ranking-cards.js +2 -2
  104. package/{bin/src → src}/models/ranking-cards/i-ranking.d.ts +18 -18
  105. package/{bin/src → src}/models/ranking-cards/i-ranking.js +2 -2
  106. package/{bin/src → src}/models/ranking-cards/public-ranking-cards-client.d.ts +7 -7
  107. package/{bin/src → src}/models/ranking-cards/public-ranking-cards-client.js +16 -16
  108. package/{bin/src → src}/models/scholarship-card/i-scholarship-card.d.ts +15 -14
  109. package/{bin/src → src}/models/scholarship-card/i-scholarship-card.js +2 -2
  110. package/{bin/src → src}/models/scholarship-card/public-scholarship-card-client.d.ts +7 -7
  111. package/{bin/src → src}/models/scholarship-card/public-scholarship-card-client.js +16 -16
  112. package/{bin/src → src}/models/search-country-faq/i-search-country-faq.d.ts +18 -18
  113. package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js +2 -2
  114. package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.d.ts +7 -7
  115. package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js +16 -16
  116. package/{bin/src → src}/models/search-discipline/i-search-discipline.d.ts +26 -26
  117. package/{bin/src → src}/models/search-discipline/i-search-discipline.js +2 -2
  118. package/{bin/src → src}/models/search-discipline/public-search-discipline-client.d.ts +7 -7
  119. package/{bin/src → src}/models/search-discipline/public-search-discipline-client.js +16 -16
  120. package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.d.ts +38 -38
  121. package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js +2 -2
  122. package/{bin/src → src}/models/search-projection/i-geo-targeting-values.d.ts +30 -30
  123. package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js +2 -2
  124. package/{bin/src → src}/models/search-projection/i-organisation-values.d.ts +40 -40
  125. package/{bin/src → src}/models/search-projection/i-organisation-values.js +2 -2
  126. package/{bin/src → src}/models/search-projection/i-premium-values.d.ts +35 -35
  127. package/{bin/src → src}/models/search-projection/i-premium-values.js +2 -2
  128. package/{bin/src → src}/models/search-projection/i-search-projection.d.ts +180 -180
  129. package/{bin/src → src}/models/search-projection/i-search-projection.js +2 -2
  130. package/{bin/src → src}/models/search-projection/i-tuition-values.d.ts +50 -50
  131. package/{bin/src → src}/models/search-projection/i-tuition-values.js +2 -2
  132. package/{bin/src → src}/models/search-projection/search-projection-client.d.ts +7 -7
  133. package/{bin/src → src}/models/search-projection/search-projection-client.js +16 -16
  134. package/{bin/src → src}/models/sitemap-articles-info/i-sitemap-article-info.d.ts +14 -14
  135. package/{bin/src → src}/models/sitemap-articles-info/i-sitemap-article-info.js +2 -2
  136. package/{bin/src → src}/models/sitemap-articles-info/sitemap-articles-info-client.d.ts +7 -7
  137. package/{bin/src → src}/models/sitemap-articles-info/sitemap-articles-info-client.js +16 -16
  138. package/{bin/src → src}/models/sitemap-cities-info/i-sitemap-city-info.d.ts +14 -14
  139. package/{bin/src → src}/models/sitemap-cities-info/i-sitemap-city-info.js +2 -2
  140. package/{bin/src → src}/models/sitemap-cities-info/sitemap-cities-info-client.d.ts +7 -7
  141. package/{bin/src → src}/models/sitemap-cities-info/sitemap-cities-info-client.js +16 -16
  142. package/{bin/src → src}/models/sitemap-countries-info/i-sitemap-country-info.d.ts +14 -14
  143. package/{bin/src → src}/models/sitemap-countries-info/i-sitemap-country-info.js +2 -2
  144. package/{bin/src → src}/models/sitemap-countries-info/sitemap-countries-info-client.d.ts +7 -7
  145. package/{bin/src → src}/models/sitemap-countries-info/sitemap-countries-info-client.js +16 -16
  146. package/{bin/src → src}/models/sitemap-country-degree-info/i-degree-info.d.ts +14 -14
  147. package/{bin/src → src}/models/sitemap-country-degree-info/i-degree-info.js +2 -2
  148. package/{bin/src → src}/models/sitemap-country-degree-info/i-sitemap-country-degree-info.d.ts +11 -11
  149. package/{bin/src → src}/models/sitemap-country-degree-info/i-sitemap-country-degree-info.js +2 -2
  150. package/{bin/src → src}/models/sitemap-country-degree-info/sitemap-country-degree-info-client.d.ts +7 -7
  151. package/{bin/src → src}/models/sitemap-country-degree-info/sitemap-country-degree-info-client.js +16 -16
  152. package/{bin/src → src}/models/sitemap-disciplines-info/i-sitemap-discipline-info.d.ts +14 -14
  153. package/{bin/src → src}/models/sitemap-disciplines-info/i-sitemap-discipline-info.js +2 -2
  154. package/{bin/src → src}/models/sitemap-disciplines-info/sitemap-disciplines-info-client.d.ts +7 -7
  155. package/{bin/src → src}/models/sitemap-disciplines-info/sitemap-disciplines-info-client.js +16 -16
  156. package/{bin/src → src}/models/sitemap-organisations-info/i-sitemap-organisation-info.d.ts +26 -26
  157. package/{bin/src → src}/models/sitemap-organisations-info/i-sitemap-organisation-info.js +2 -2
  158. package/{bin/src → src}/models/sitemap-organisations-info/sitemap-organisations-info-client.d.ts +7 -7
  159. package/{bin/src → src}/models/sitemap-organisations-info/sitemap-organisations-info-client.js +16 -16
  160. package/{bin/src → src}/models/sitemap-programme-info/i-sitemap-programme-info.d.ts +26 -26
  161. package/{bin/src → src}/models/sitemap-programme-info/i-sitemap-programme-info.js +2 -2
  162. package/{bin/src → src}/models/sitemap-programme-info/sitemap-programme-info-client.d.ts +7 -7
  163. package/{bin/src → src}/models/sitemap-programme-info/sitemap-programme-info-client.js +16 -16
  164. package/{bin/src → src}/models/sitemap-rankings-info/i-sitemap-rankings-info.d.ts +14 -14
  165. package/{bin/src → src}/models/sitemap-rankings-info/i-sitemap-rankings-info.js +2 -2
  166. package/{bin/src → src}/models/sitemap-rankings-info/sitemap-rankings-info-client.d.ts +7 -7
  167. package/{bin/src → src}/models/sitemap-rankings-info/sitemap-rankings-info-client.js +16 -16
  168. package/{bin/src → src}/types/portal-map.d.ts +2 -2
  169. package/{bin/src → src}/types/portal-map.js +2 -2
  170. package/{bin/src → src}/types/portal-type.d.ts +7 -7
  171. package/{bin/src → src}/types/portal-type.js +11 -11
  172. package/{bin/src → src}/types.d.ts +4 -4
  173. package/{bin/src → src}/types.js +2 -2
  174. package/.eslintignore +0 -3
  175. package/.eslintrc.js +0 -13
  176. package/.github/dependabot.yml +0 -17
  177. package/.github/stale.yml +0 -10
  178. package/.mocharc.yml +0 -3
  179. package/.nycrc +0 -15
  180. package/README.md +0 -117
  181. package/bin/package.json +0 -55
  182. package/index.ts +0 -147
  183. package/src/domain-client.ts +0 -70
  184. package/src/exceptions/bad-request-exception.ts +0 -2
  185. package/src/exceptions/client-exception.ts +0 -2
  186. package/src/exceptions/internal-server-exception.ts +0 -2
  187. package/src/exceptions/not-found-exception.ts +0 -2
  188. package/src/exceptions/property-not-available-exception.ts +0 -2
  189. package/src/factories/DateFactory.ts +0 -8
  190. package/src/factories/InternalLinkFactory.ts +0 -27
  191. package/src/i-api-response.ts +0 -7
  192. package/src/i-class-factory.ts +0 -5
  193. package/src/i-model-description.ts +0 -13
  194. package/src/model-client.ts +0 -77
  195. package/src/model-factory.ts +0 -94
  196. package/src/models/bestfit-programme/bestfit-programme-client.ts +0 -16
  197. package/src/models/bestfit-programme/i-best-fit-programme.ts +0 -102
  198. package/src/models/bestfit-programme/i-city.ts +0 -16
  199. package/src/models/bestfit-programme/i-living-cost.ts +0 -23
  200. package/src/models/common/i-city.ts +0 -16
  201. package/src/models/common/i-country.ts +0 -23
  202. package/src/models/common/i-english-requirements.ts +0 -56
  203. package/src/models/common/i-g-p-a-requirement.ts +0 -23
  204. package/src/models/common/i-internal-link.ts +0 -32
  205. package/src/models/common/i-logo.ts +0 -16
  206. package/src/models/common/i-tuition-fee.ts +0 -57
  207. package/src/models/compare-programme/compare-programme-client.ts +0 -16
  208. package/src/models/compare-programme/i-compare-programme.ts +0 -126
  209. package/src/models/dotdigital-organisation/dotdigital-organisation-client.ts +0 -16
  210. package/src/models/dotdigital-organisation/i-dot-digital-organisation.ts +0 -62
  211. package/src/models/dotdigital-organisation/i-review.ts +0 -12
  212. package/src/models/dotdigital-programme/dotdigital-programme-client.ts +0 -16
  213. package/src/models/dotdigital-programme/i-dot-digital-programme.ts +0 -122
  214. package/src/models/dotdigital-programme/i-internal-link.ts +0 -32
  215. package/src/models/programme-card/i-click-tracking-data.ts +0 -8
  216. package/src/models/programme-card/i-cover.ts +0 -16
  217. package/src/models/programme-card/i-deadline.ts +0 -23
  218. package/src/models/programme-card/i-duration.ts +0 -46
  219. package/src/models/programme-card/i-internal-link.ts +0 -32
  220. package/src/models/programme-card/i-link.ts +0 -25
  221. package/src/models/programme-card/i-location.ts +0 -22
  222. package/src/models/programme-card/i-logo.ts +0 -16
  223. package/src/models/programme-card/i-optional-link.ts +0 -27
  224. package/src/models/programme-card/i-programme-card.ts +0 -212
  225. package/src/models/programme-card/i-start-date.ts +0 -39
  226. package/src/models/programme-card/i-timing.ts +0 -53
  227. package/src/models/programme-card/i-tracked-link.ts +0 -34
  228. package/src/models/programme-card/i-tracking.ts +0 -55
  229. package/src/models/programme-card/i-tuition-fee.ts +0 -57
  230. package/src/models/programme-card/programme-card-client.ts +0 -16
  231. package/src/models/ranking-cards/i-ranking-card.ts +0 -74
  232. package/src/models/ranking-cards/i-ranking-cards.ts +0 -18
  233. package/src/models/ranking-cards/i-ranking.ts +0 -22
  234. package/src/models/ranking-cards/public-ranking-cards-client.ts +0 -16
  235. package/src/models/scholarship-card/i-scholarship-card.ts +0 -26
  236. package/src/models/scholarship-card/public-scholarship-card-client.ts +0 -16
  237. package/src/models/search-country-faq/i-search-country-faq.ts +0 -22
  238. package/src/models/search-country-faq/public-search-country-faq-client.ts +0 -16
  239. package/src/models/search-discipline/i-search-discipline.ts +0 -32
  240. package/src/models/search-discipline/public-search-discipline-client.ts +0 -16
  241. package/src/models/search-projection/i-geo-targeting-configuration.ts +0 -44
  242. package/src/models/search-projection/i-geo-targeting-values.ts +0 -38
  243. package/src/models/search-projection/i-organisation-values.ts +0 -46
  244. package/src/models/search-projection/i-premium-values.ts +0 -43
  245. package/src/models/search-projection/i-search-projection.ts +0 -216
  246. package/src/models/search-projection/i-tuition-values.ts +0 -63
  247. package/src/models/search-projection/search-projection-client.ts +0 -16
  248. package/src/models/sitemap-articles-info/i-sitemap-article-info.ts +0 -17
  249. package/src/models/sitemap-articles-info/sitemap-articles-info-client.ts +0 -16
  250. package/src/models/sitemap-cities-info/i-sitemap-city-info.ts +0 -17
  251. package/src/models/sitemap-cities-info/sitemap-cities-info-client.ts +0 -16
  252. package/src/models/sitemap-countries-info/i-sitemap-country-info.ts +0 -17
  253. package/src/models/sitemap-countries-info/sitemap-countries-info-client.ts +0 -16
  254. package/src/models/sitemap-country-degree-info/i-degree-info.ts +0 -17
  255. package/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.ts +0 -14
  256. package/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.ts +0 -16
  257. package/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.ts +0 -17
  258. package/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.ts +0 -16
  259. package/src/models/sitemap-organisations-info/i-sitemap-organisation-info.ts +0 -32
  260. package/src/models/sitemap-organisations-info/sitemap-organisations-info-client.ts +0 -16
  261. package/src/models/sitemap-programme-info/i-sitemap-programme-info.ts +0 -32
  262. package/src/models/sitemap-programme-info/sitemap-programme-info-client.ts +0 -16
  263. package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.ts +0 -17
  264. package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.ts +0 -16
  265. package/src/types/portal-map.ts +0 -3
  266. package/src/types/portal-type.ts +0 -7
  267. package/src/types.ts +0 -4
  268. package/tsconfig.json +0 -40
  269. /package/{bin/index.js.map → index.js.map} +0 -0
  270. /package/{bin/src → src}/domain-client.js.map +0 -0
  271. /package/{bin/src → src}/exceptions/bad-request-exception.js.map +0 -0
  272. /package/{bin/src → src}/exceptions/client-exception.js.map +0 -0
  273. /package/{bin/src → src}/exceptions/internal-server-exception.js.map +0 -0
  274. /package/{bin/src → src}/exceptions/not-found-exception.js.map +0 -0
  275. /package/{bin/src → src}/exceptions/property-not-available-exception.js.map +0 -0
  276. /package/{bin/src → src}/factories/DateFactory.js.map +0 -0
  277. /package/{bin/src → src}/factories/InternalLinkFactory.js.map +0 -0
  278. /package/{bin/src → src}/i-api-response.js.map +0 -0
  279. /package/{bin/src → src}/i-class-factory.js.map +0 -0
  280. /package/{bin/src → src}/i-model-description.js.map +0 -0
  281. /package/{bin/src → src}/model-client.js.map +0 -0
  282. /package/{bin/src → src}/model-factory.js.map +0 -0
  283. /package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js.map +0 -0
  284. /package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js.map +0 -0
  285. /package/{bin/src → src}/models/bestfit-programme/i-city.js.map +0 -0
  286. /package/{bin/src → src}/models/bestfit-programme/i-living-cost.js.map +0 -0
  287. /package/{bin/src → src}/models/common/i-city.js.map +0 -0
  288. /package/{bin/src → src}/models/common/i-country.js.map +0 -0
  289. /package/{bin/src → src}/models/common/i-english-requirements.js.map +0 -0
  290. /package/{bin/src → src}/models/common/i-g-p-a-requirement.js.map +0 -0
  291. /package/{bin/src → src}/models/common/i-internal-link.js.map +0 -0
  292. /package/{bin/src → src}/models/common/i-logo.js.map +0 -0
  293. /package/{bin/src → src}/models/common/i-tuition-fee.js.map +0 -0
  294. /package/{bin/src → src}/models/compare-programme/compare-programme-client.js.map +0 -0
  295. /package/{bin/src → src}/models/compare-programme/i-compare-programme.js.map +0 -0
  296. /package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js.map +0 -0
  297. /package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js.map +0 -0
  298. /package/{bin/src → src}/models/dotdigital-organisation/i-review.js.map +0 -0
  299. /package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js.map +0 -0
  300. /package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js.map +0 -0
  301. /package/{bin/src → src}/models/dotdigital-programme/i-internal-link.js.map +0 -0
  302. /package/{bin/src → src}/models/programme-card/i-click-tracking-data.js.map +0 -0
  303. /package/{bin/src → src}/models/programme-card/i-cover.js.map +0 -0
  304. /package/{bin/src → src}/models/programme-card/i-deadline.js.map +0 -0
  305. /package/{bin/src → src}/models/programme-card/i-duration.js.map +0 -0
  306. /package/{bin/src → src}/models/programme-card/i-internal-link.js.map +0 -0
  307. /package/{bin/src → src}/models/programme-card/i-link.js.map +0 -0
  308. /package/{bin/src → src}/models/programme-card/i-location.js.map +0 -0
  309. /package/{bin/src → src}/models/programme-card/i-logo.js.map +0 -0
  310. /package/{bin/src → src}/models/programme-card/i-optional-link.js.map +0 -0
  311. /package/{bin/src → src}/models/programme-card/i-programme-card.js.map +0 -0
  312. /package/{bin/src → src}/models/programme-card/i-start-date.js.map +0 -0
  313. /package/{bin/src → src}/models/programme-card/i-timing.js.map +0 -0
  314. /package/{bin/src → src}/models/programme-card/i-tracked-link.js.map +0 -0
  315. /package/{bin/src → src}/models/programme-card/i-tracking.js.map +0 -0
  316. /package/{bin/src → src}/models/programme-card/i-tuition-fee.js.map +0 -0
  317. /package/{bin/src → src}/models/programme-card/programme-card-client.js.map +0 -0
  318. /package/{bin/src → src}/models/ranking-cards/i-ranking-card.js.map +0 -0
  319. /package/{bin/src → src}/models/ranking-cards/i-ranking-cards.js.map +0 -0
  320. /package/{bin/src → src}/models/ranking-cards/i-ranking.js.map +0 -0
  321. /package/{bin/src → src}/models/ranking-cards/public-ranking-cards-client.js.map +0 -0
  322. /package/{bin/src → src}/models/scholarship-card/i-scholarship-card.js.map +0 -0
  323. /package/{bin/src → src}/models/scholarship-card/public-scholarship-card-client.js.map +0 -0
  324. /package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js.map +0 -0
  325. /package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js.map +0 -0
  326. /package/{bin/src → src}/models/search-discipline/i-search-discipline.js.map +0 -0
  327. /package/{bin/src → src}/models/search-discipline/public-search-discipline-client.js.map +0 -0
  328. /package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js.map +0 -0
  329. /package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js.map +0 -0
  330. /package/{bin/src → src}/models/search-projection/i-organisation-values.js.map +0 -0
  331. /package/{bin/src → src}/models/search-projection/i-premium-values.js.map +0 -0
  332. /package/{bin/src → src}/models/search-projection/i-search-projection.js.map +0 -0
  333. /package/{bin/src → src}/models/search-projection/i-tuition-values.js.map +0 -0
  334. /package/{bin/src → src}/models/search-projection/search-projection-client.js.map +0 -0
  335. /package/{bin/src → src}/models/sitemap-articles-info/i-sitemap-article-info.js.map +0 -0
  336. /package/{bin/src → src}/models/sitemap-articles-info/sitemap-articles-info-client.js.map +0 -0
  337. /package/{bin/src → src}/models/sitemap-cities-info/i-sitemap-city-info.js.map +0 -0
  338. /package/{bin/src → src}/models/sitemap-cities-info/sitemap-cities-info-client.js.map +0 -0
  339. /package/{bin/src → src}/models/sitemap-countries-info/i-sitemap-country-info.js.map +0 -0
  340. /package/{bin/src → src}/models/sitemap-countries-info/sitemap-countries-info-client.js.map +0 -0
  341. /package/{bin/src → src}/models/sitemap-country-degree-info/i-degree-info.js.map +0 -0
  342. /package/{bin/src → src}/models/sitemap-country-degree-info/i-sitemap-country-degree-info.js.map +0 -0
  343. /package/{bin/src → src}/models/sitemap-country-degree-info/sitemap-country-degree-info-client.js.map +0 -0
  344. /package/{bin/src → src}/models/sitemap-disciplines-info/i-sitemap-discipline-info.js.map +0 -0
  345. /package/{bin/src → src}/models/sitemap-disciplines-info/sitemap-disciplines-info-client.js.map +0 -0
  346. /package/{bin/src → src}/models/sitemap-organisations-info/i-sitemap-organisation-info.js.map +0 -0
  347. /package/{bin/src → src}/models/sitemap-organisations-info/sitemap-organisations-info-client.js.map +0 -0
  348. /package/{bin/src → src}/models/sitemap-programme-info/i-sitemap-programme-info.js.map +0 -0
  349. /package/{bin/src → src}/models/sitemap-programme-info/sitemap-programme-info-client.js.map +0 -0
  350. /package/{bin/src → src}/models/sitemap-rankings-info/i-sitemap-rankings-info.js.map +0 -0
  351. /package/{bin/src → src}/models/sitemap-rankings-info/sitemap-rankings-info-client.js.map +0 -0
  352. /package/{bin/src → src}/types/portal-map.js.map +0 -0
  353. /package/{bin/src → src}/types/portal-type.js.map +0 -0
  354. /package/{bin/src → src}/types.js.map +0 -0
@@ -1,7 +1,7 @@
1
- export declare enum PortalType {
2
- MASTER = "master",
3
- BACHELOR = "bachelor",
4
- PHD = "phd",
5
- SHORT = "short",
6
- DISTANCE_LEARNING = "distance_learning"
7
- }
1
+ export declare enum PortalType {
2
+ MASTER = "master",
3
+ BACHELOR = "bachelor",
4
+ PHD = "phd",
5
+ SHORT = "short",
6
+ DISTANCE_LEARNING = "distance_learning"
7
+ }
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PortalType = void 0;
4
- var PortalType;
5
- (function (PortalType) {
6
- PortalType["MASTER"] = "master";
7
- PortalType["BACHELOR"] = "bachelor";
8
- PortalType["PHD"] = "phd";
9
- PortalType["SHORT"] = "short";
10
- PortalType["DISTANCE_LEARNING"] = "distance_learning";
11
- })(PortalType = exports.PortalType || (exports.PortalType = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PortalType = void 0;
4
+ var PortalType;
5
+ (function (PortalType) {
6
+ PortalType["MASTER"] = "master";
7
+ PortalType["BACHELOR"] = "bachelor";
8
+ PortalType["PHD"] = "phd";
9
+ PortalType["SHORT"] = "short";
10
+ PortalType["DISTANCE_LEARNING"] = "distance_learning";
11
+ })(PortalType = exports.PortalType || (exports.PortalType = {}));
12
12
  //# sourceMappingURL=portal-type.js.map
@@ -1,4 +1,4 @@
1
- export type Model = Record<string, Callable>;
2
- export type Callable = () => CallableReturnType | CallableReturnType[];
3
- export type CallableReturnType = AcceptedType | Model;
4
- export type AcceptedType = string | string[] | number | number[] | boolean | null | Date;
1
+ export type Model = Record<string, Callable>;
2
+ export type Callable = () => CallableReturnType | CallableReturnType[];
3
+ export type CallableReturnType = AcceptedType | Model;
4
+ export type AcceptedType = string | string[] | number | number[] | boolean | null | Date;
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=types.js.map
package/.eslintignore DELETED
@@ -1,3 +0,0 @@
1
- **/node_modules/*
2
- **/bin/*
3
- **/tests/*
package/.eslintrc.js DELETED
@@ -1,13 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- env: {
4
- node: true
5
- },
6
- rules: {
7
- "no-shadow": "off",
8
- "max-len": "off"
9
- },
10
- extends: [
11
- './node_modules/@studyportals/code-style/.eslintrc.js'
12
- ]
13
- }
@@ -1,17 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: npm
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- time: "04:00"
8
- open-pull-requests-limit: 10
9
- reviewers:
10
- - studyportals/plop
11
- labels:
12
- - component-library
13
- allow:
14
- - dependency-name: "@studyportals/*"
15
- ignore:
16
- - dependency-name: "@studyportals/*"
17
- update-types: ["version-update:semver-patch"]
package/.github/stale.yml DELETED
@@ -1,10 +0,0 @@
1
- daysUntilStale: 14
2
- daysUntilClose: 46
3
- exemptLabels:
4
- - pinned
5
- staleLabel: stale
6
- markComment: >
7
- This issue has been automatically marked as stale because it has not had
8
- recent activity. It will be closed if no further activity occurs. Thank you
9
- for your contributions.
10
- closeComment: false
package/.mocharc.yml DELETED
@@ -1,3 +0,0 @@
1
- require:
2
- - source-map-support/register
3
- - ts-node/register
package/.nycrc DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "all": true,
3
- "check-coverage": true,
4
- "reporter": "text",
5
- "exclude": [
6
- "src/models/**/*.ts",
7
- "src/i-*.ts",
8
- "tests/**/*.ts",
9
- "**/*.js"
10
- ],
11
- "branches": 100,
12
- "lines": 100,
13
- "functions": 100,
14
- "statements": 100
15
- }
package/README.md DELETED
@@ -1,117 +0,0 @@
1
- # Domain Client
2
-
3
- A lightweight client for fetching data from the Domain API and returning it as
4
- strongly typed classes defined by the `Domain API`.
5
-
6
- ## Installation
7
-
8
- ```
9
- npm install @studyportals/domain-client --save
10
- ```
11
-
12
- ## Publishing new version
13
- To publish a new version to npm run one of the following commnads
14
- ```bash
15
- npm run publish-beta # Increase the beta version and publishes
16
- npm run publish-major # Increases the major version publishes
17
- npm run publish-minor # Increases the minor version and publishes
18
- npm run publish-patch # Increases the patch version and publishes
19
- npm run publish-current # Publishes the current version.
20
- ```
21
-
22
- ## Default usage
23
-
24
- Instantiate your client class (_ProgrammeCard client as example_) with all
25
- parameters:
26
- ```typescript
27
- const client = new ProgrammeCardClient(
28
- domainApiUrl, // The url to the Domain API endpoint
29
- apiKey, // The API key provided by PLOP for your implementation
30
- probabilitySeed, // Number between 1 and 100 (inclusive)
31
- portalMap // PortalMap mapping between PortalType and portal base url
32
- );
33
- ```
34
-
35
- A PortalMap example:
36
- ```typescript
37
- const portalMap = new Map<PortalType, string>()
38
- .set(PortalType.MASTER, 'https://42069.mastersportal.fyi')
39
- .set(PortalType.PHD, 'https://42069.phdportal.fyi')
40
- .set(PortalType.BACHELOR, 'https://42069.bachelorsportal.fyi')
41
- .set(PortalType.SHORT, 'https://42069.shortcoursesportal.fyi')
42
- .set(PortalType.DISTANCE_LEARNING, 'https://42069.distancelearningportal.fyi')
43
- ```
44
-
45
- Fetch your model using the `fetch()` method with the requested ID (_in this
46
- example programme ID_):
47
- ```typescript
48
- const card: IProgrammeCard = await client.fetch(5);
49
- ```
50
- Or get multiple using `fetchMultiple()` with the requested IDs (_in this example
51
- programme IDs_):
52
- ```typescript
53
- const cards: IProgrammeCard[] = await client.fetchMultiple([5, 9, 13]);
54
- ```
55
- Some functions are accompanied by a `canShow` function that indicates its
56
- availability. If the value is not set the function will throw a
57
- `PropertyNotAvailableException`:
58
-
59
- ```typescript
60
- const card: IProgrammeCard = await client.fetch(5);
61
-
62
- // Might throw PropertyNotAvailableException
63
- const cover: ICover = card.getCover();
64
-
65
- // Safe behaviour
66
- if (card.canShowCover()) {
67
- const cover: ICover = card.getCover();
68
- }
69
- ```
70
-
71
- ## Separated usage
72
-
73
- In some cases you might want to separate the fetching of the information from
74
- the usage of that information; for instance getting the information in your
75
- back-end service and passing it to the front-end application for usage.
76
-
77
- First instantiate your client class with all parameters:
78
- ```typescript
79
- const client = new ProgrammeCardClient(
80
- domainApiUrl, // The url to the Domain API endpoint
81
- apiKey, // The API key provided by PLOP for your implementation
82
- probabilitySeed // Number between 1 and 100 (inclusive)
83
- );
84
- ```
85
- To do this you can use the `fetchDescription()` method instead and encode it as
86
- JSON:
87
- ```typescript
88
- const card: IModelDescription = await client.fetchDescription(5);
89
- const jsonData: string = JSON.stringify(card);
90
- ```
91
- Or use the `fetchMultipleDescriptions()` function to fetch multiple descriptions:
92
- ```typescript
93
- const cards: IModelDescription[] = await client.fetchMultipleDescriptions([5, 9, 13]);
94
- const jsonData: string = JSON.stringify(cards);
95
- ```
96
-
97
- When you're ready to use the information in the models you can use the existing
98
- client or instantiate a new one without parameters:
99
- ```typescript
100
- const client = new ProgrammeCardClient();
101
- ```
102
- After which you can use the `fromDescription()` and `fromDescriptions()`
103
- functions to retrieve your models:
104
- ```typescript
105
- const descriptions: IModelDescription[] = JSON.parse(jsonData);
106
- const card: IProgrammeCard = client.fromDescription(descriptions[0]);
107
- const cards: IProgrammeCard[] = client.fromDescriptions(descriptions);
108
- ```
109
- Note that creating a client without providing the required parameters will
110
- result in all network functionalities of the client being unavailable. In this
111
- case the following functions will throw a `ClientException`:
112
- ```typescript
113
- await client.fetch(1);
114
- await client.fetchMultiple([5, 9, 13]);
115
- await client.fetchDescription(1);
116
- await client.fetchMultipleDescriptions([5, 9, 13]);
117
- ```
package/bin/package.json DELETED
@@ -1,55 +0,0 @@
1
- {
2
- "name": "@studyportals/domain-client",
3
- "version": "3.18.0",
4
- "description": "Responsible for fetching data from the Domain API",
5
- "main": "bin/index.js",
6
- "author": "StudyPortals B.V.",
7
- "contributors": [
8
- "braaibander <danny@studyportals.com>"
9
- ],
10
- "license": "BSD-3-Clause",
11
- "scripts": {
12
- "test": "mocha --reporter spec \"tests/**/*.test.ts\"",
13
- "coverage": "nyc mocha --reporter dot \"tests/**/*.test.ts\"",
14
- "lint": "eslint . --ext .ts --max-warnings=0",
15
- "lint:fix": "eslint . --ext .ts --fix",
16
- "pre-push": "npm run test && npm run coverage && npm run lint",
17
- "prepare-dist": "npm run test && rm -fR bin && npx tsc && cp package.json bin/package.json && rm -fR bin/tests",
18
- "publish-beta": "npm version prerelease --preid=beta && npm run prepare-dist && npm publish ./bin --tag beta",
19
- "publish-major": "npm version major && npm run prepare-dist && npm publish ./bin",
20
- "publish-minor": "npm version minor && npm run prepare-dist && npm publish ./bin",
21
- "publish-patch": "npm version patch && npm run prepare-dist && npm publish ./bin",
22
- "publish-current": "npm run prepare-dist && npm publish ./bin"
23
- },
24
- "husky": {
25
- "hooks": {
26
- "pre-push": "npm run pre-push"
27
- }
28
- },
29
- "dependencies": {
30
- "axios": "^0.21.0"
31
- },
32
- "devDependencies": {
33
- "@studyportals/code-style": "^1.8.1",
34
- "@testdeck/mocha": "^0.3.3",
35
- "@types/axios": "^0.14.0",
36
- "@types/mocha": "^10.0.0",
37
- "@types/moxios": "^0.4.9",
38
- "@types/node": "^14.14.8",
39
- "@types/reflect-metadata": "^0.1.0",
40
- "@typescript-eslint/eslint-plugin": "^4.8.1",
41
- "@typescript-eslint/parser": "^4.8.1",
42
- "eslint": "^7.13.0",
43
- "eslint-plugin-import": "^2.22.1",
44
- "eslint-plugin-mocha": "^10.1.0",
45
- "husky": "^4.3.0",
46
- "mocha": "^10.1.0",
47
- "moxios": "^0.4.0",
48
- "nyc": "^15.1.0",
49
- "source-map-support": "^0.5.19",
50
- "ts-node": "^10.9.1",
51
- "tslint": "^6.1.3",
52
- "typemoq": "^2.1.0",
53
- "typescript": "^4.9.3"
54
- }
55
- }
package/index.ts DELETED
@@ -1,147 +0,0 @@
1
- import { BadRequestException } from "./src/exceptions/bad-request-exception"
2
- import { ClientException } from "./src/exceptions/client-exception"
3
- import { InternalServerException } from "./src/exceptions/internal-server-exception"
4
- import { NotFoundException } from "./src/exceptions/not-found-exception"
5
- import { PropertyNotAvailableException } from "./src/exceptions/property-not-available-exception"
6
- import { ICover } from "./src/models/programme-card/i-cover";
7
- import { ILink } from "./src/models/programme-card/i-link";
8
- import { IOptionalLink } from "./src/models/programme-card/i-optional-link";
9
- import { ILocation } from "./src/models/programme-card/i-location";
10
- import { IClickTrackingData } from "./src/models/programme-card/i-click-tracking-data";
11
- import { ITracking } from "./src/models/programme-card/i-tracking";
12
- import { IDuration } from "./src/models/programme-card/i-duration";
13
- import { IDeadline } from "./src/models/programme-card/i-deadline";
14
- import { IStartDate } from "./src/models/programme-card/i-start-date";
15
- import { ITiming } from "./src/models/programme-card/i-timing";
16
- import { ITrackedLink } from "./src/models/programme-card/i-tracked-link";
17
- import { IProgrammeCard } from "./src/models/programme-card/i-programme-card";
18
- import { ProgrammeCardClient } from "./src/models/programme-card/programme-card-client";
19
- import { ITuitionValues } from "./src/models/search-projection/i-tuition-values";
20
- import { IPremiumValues } from "./src/models/search-projection/i-premium-values";
21
- import { IOrganisationValues } from "./src/models/search-projection/i-organisation-values";
22
- import { IGeoTargetingConfiguration } from "./src/models/search-projection/i-geo-targeting-configuration";
23
- import { IGeoTargetingValues } from "./src/models/search-projection/i-geo-targeting-values";
24
- import { ISearchProjection } from "./src/models/search-projection/i-search-projection";
25
- import { SearchProjectionClient } from "./src/models/search-projection/search-projection-client";
26
- import { ILivingCost } from "./src/models/bestfit-programme/i-living-cost";
27
- import { IGPARequirement } from "./src/models/common/i-g-p-a-requirement";
28
- import { IBestFitProgramme } from "./src/models/bestfit-programme/i-best-fit-programme";
29
- import { BestfitProgrammeClient } from "./src/models/bestfit-programme/bestfit-programme-client";
30
- import { ILogo } from "./src/models/common/i-logo";
31
- import { ITuitionFee } from "./src/models/common/i-tuition-fee";
32
- import { IEnglishRequirements } from "./src/models/common/i-english-requirements";
33
- import { IInternalLink } from "./src/models/dotdigital-programme/i-internal-link";
34
- import { IDotDigitalProgramme } from "./src/models/dotdigital-programme/i-dot-digital-programme";
35
- import { DotdigitalProgrammeClient } from "./src/models/dotdigital-programme/dotdigital-programme-client";
36
- import { ISitemapProgrammeInfo } from "./src/models/sitemap-programme-info/i-sitemap-programme-info";
37
- import { SitemapProgrammeInfoClient } from "./src/models/sitemap-programme-info/sitemap-programme-info-client";
38
- import { ISearchCountryFaq } from "./src/models/search-country-faq/i-search-country-faq";
39
- import { PublicSearchCountryFaqClient } from "./src/models/search-country-faq/public-search-country-faq-client";
40
- import { ISitemapCountryInfo } from "./src/models/sitemap-countries-info/i-sitemap-country-info";
41
- import { SitemapCountriesInfoClient } from "./src/models/sitemap-countries-info/sitemap-countries-info-client";
42
- import { IDegreeInfo } from "./src/models/sitemap-country-degree-info/i-degree-info";
43
- import { ISitemapCountryDegreeInfo } from "./src/models/sitemap-country-degree-info/i-sitemap-country-degree-info";
44
- import { SitemapCountryDegreeInfoClient } from "./src/models/sitemap-country-degree-info/sitemap-country-degree-info-client";
45
- import { ISearchDiscipline } from "./src/models/search-discipline/i-search-discipline";
46
- import { PublicSearchDisciplineClient } from "./src/models/search-discipline/public-search-discipline-client";
47
- import { ISitemapDisciplineInfo } from "./src/models/sitemap-disciplines-info/i-sitemap-discipline-info";
48
- import { SitemapDisciplinesInfoClient } from "./src/models/sitemap-disciplines-info/sitemap-disciplines-info-client";
49
- import { ICountry } from "./src/models/common/i-country";
50
- import { ICity } from "./src/models/common/i-city";
51
- import { IReview } from "./src/models/dotdigital-organisation/i-review";
52
- import { IDotDigitalOrganisation } from "./src/models/dotdigital-organisation/i-dot-digital-organisation";
53
- import { DotdigitalOrganisationClient } from "./src/models/dotdigital-organisation/dotdigital-organisation-client";
54
- import { ISitemapOrganisationInfo } from "./src/models/sitemap-organisations-info/i-sitemap-organisation-info";
55
- import { SitemapOrganisationsInfoClient } from "./src/models/sitemap-organisations-info/sitemap-organisations-info-client";
56
- import { ISitemapRankingsInfo } from "./src/models/sitemap-rankings-info/i-sitemap-rankings-info";
57
- import { SitemapRankingsInfoClient } from "./src/models/sitemap-rankings-info/sitemap-rankings-info-client";
58
- import { ISitemapArticleInfo } from "./src/models/sitemap-articles-info/i-sitemap-article-info";
59
- import { SitemapArticlesInfoClient } from "./src/models/sitemap-articles-info/sitemap-articles-info-client";
60
- import { ISitemapCityInfo } from "./src/models/sitemap-cities-info/i-sitemap-city-info";
61
- import { SitemapCitiesInfoClient } from "./src/models/sitemap-cities-info/sitemap-cities-info-client";
62
- import { IScholarshipCard } from "./src/models/scholarship-card/i-scholarship-card";
63
- import { PublicScholarshipCardClient } from "./src/models/scholarship-card/public-scholarship-card-client";
64
- import { IRankingCards } from './src/models/ranking-cards/i-ranking-cards';
65
- import { IRankingCard } from './src/models/ranking-cards/i-ranking-card';
66
- import { IRanking } from './src/models/ranking-cards/i-ranking';
67
- import { PublicRankingCardsClient } from './src/models/ranking-cards/public-ranking-cards-client';
68
- import { PortalType } from "./src/types/portal-type";
69
- import { PortalMap } from "./src/types/portal-map";
70
- import { ModelClient } from "./src/model-client";
71
- import { ICompareProgramme } from "./src/models/compare-programme/i-compare-programme"
72
- import { CompareProgrammeClient } from "./src/models/compare-programme/compare-programme-client"
73
-
74
- export {
75
- BadRequestException,
76
- ClientException,
77
- InternalServerException,
78
- NotFoundException,
79
- PropertyNotAvailableException,
80
- ICover,
81
- ILink,
82
- IOptionalLink,
83
- ILocation,
84
- IClickTrackingData,
85
- ITracking,
86
- IDuration,
87
- IDeadline,
88
- IStartDate,
89
- ITiming,
90
- ITrackedLink,
91
- IProgrammeCard,
92
- ProgrammeCardClient,
93
- ITuitionValues,
94
- IPremiumValues,
95
- IOrganisationValues,
96
- IGeoTargetingConfiguration,
97
- IGeoTargetingValues,
98
- ISearchProjection,
99
- SearchProjectionClient,
100
- ILivingCost,
101
- IGPARequirement,
102
- IBestFitProgramme,
103
- BestfitProgrammeClient,
104
- ILogo,
105
- ITuitionFee,
106
- IEnglishRequirements,
107
- IInternalLink,
108
- IDotDigitalProgramme,
109
- DotdigitalProgrammeClient,
110
- ISitemapProgrammeInfo,
111
- SitemapProgrammeInfoClient,
112
- ISearchCountryFaq,
113
- PublicSearchCountryFaqClient,
114
- ISitemapCountryInfo,
115
- SitemapCountriesInfoClient,
116
- IDegreeInfo,
117
- ISitemapCountryDegreeInfo,
118
- SitemapCountryDegreeInfoClient,
119
- ISearchDiscipline,
120
- PublicSearchDisciplineClient,
121
- ISitemapDisciplineInfo,
122
- SitemapDisciplinesInfoClient,
123
- ICountry,
124
- ICity,
125
- IReview,
126
- IDotDigitalOrganisation,
127
- DotdigitalOrganisationClient,
128
- ISitemapOrganisationInfo,
129
- SitemapOrganisationsInfoClient,
130
- ISitemapRankingsInfo,
131
- SitemapRankingsInfoClient,
132
- ISitemapArticleInfo,
133
- SitemapArticlesInfoClient,
134
- ISitemapCityInfo,
135
- SitemapCitiesInfoClient,
136
- IScholarshipCard,
137
- PublicScholarshipCardClient,
138
- IRankingCards,
139
- IRankingCard,
140
- IRanking,
141
- PublicRankingCardsClient,
142
- ICompareProgramme,
143
- CompareProgrammeClient,
144
- PortalType,
145
- PortalMap,
146
- ModelClient
147
- }
@@ -1,70 +0,0 @@
1
- import Axios, { AxiosRequestConfig } from "axios";
2
-
3
- import { BadRequestException } from "./exceptions/bad-request-exception";
4
- import { InternalServerException } from "./exceptions/internal-server-exception";
5
- import { NotFoundException } from "./exceptions/not-found-exception";
6
- import { IApiResponse } from "./i-api-response";
7
- import { IModelDescription } from "./i-model-description";
8
-
9
-
10
- export class DomainClient {
11
-
12
- constructor(
13
- public readonly baseUrl: string,
14
- public readonly apiKey: string | undefined,
15
- public readonly model: string,
16
- public readonly version: string,
17
- public readonly isPublic: boolean,
18
- public readonly seed: number
19
- ) {
20
- }
21
-
22
- public async doRequest(ids: number[]): Promise<IModelDescription[]> {
23
- const url = this.buildUrl(ids);
24
- const config: AxiosRequestConfig = { baseURL: this.baseUrl }
25
- if (this.apiKey !== undefined) {
26
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
27
- config["headers"] = {'x-api-key': this.apiKey}
28
- }
29
- const axiosResponse = await Axios.get(url, config);
30
- const response = axiosResponse.data as IApiResponse;
31
- this.handleErrors(response);
32
-
33
- const models: IModelDescription[] = [];
34
- for (const id of ids) {
35
- const modelData = response.data[id];
36
- if (!modelData) {
37
- continue;
38
- }
39
- models.push(modelData);
40
- }
41
- return models;
42
- }
43
-
44
- private handleErrors(response: IApiResponse): void {
45
- if (!response.status) {
46
- throw new InternalServerException(response.message);
47
- }
48
-
49
- if (response.status === 400) {
50
- throw new BadRequestException(response.message);
51
- }
52
-
53
- if (response.status === 404) {
54
- throw new NotFoundException(response.message);
55
- }
56
- }
57
-
58
- private buildUrl(ids: number[]): string {
59
- const publicPrefix = this.shouldAddPublicPrefix() ? 'public/' : '';
60
- let query = `${publicPrefix}${this.model}/${this.version}/?seed=${this.seed}`;
61
- for (const id of ids) {
62
- query += `&id=${id}`;
63
- }
64
- return query;
65
- }
66
-
67
- private shouldAddPublicPrefix(): boolean {
68
- return this.isPublic && this.apiKey === undefined;
69
- }
70
- }
@@ -1,2 +0,0 @@
1
- export class BadRequestException extends Error {
2
- }
@@ -1,2 +0,0 @@
1
- export class ClientException extends Error {
2
- }
@@ -1,2 +0,0 @@
1
- export class InternalServerException extends Error {
2
- }
@@ -1,2 +0,0 @@
1
- export class NotFoundException extends Error {
2
- }
@@ -1,2 +0,0 @@
1
- export class PropertyNotAvailableException extends Error {
2
- }
@@ -1,8 +0,0 @@
1
- import { IClassFactory } from "../i-class-factory";
2
- import { CallableReturnType, Model } from "../types";
3
-
4
- export class DateFactory implements IClassFactory {
5
- public create(data: Model, parameters: string[]): CallableReturnType {
6
- return new Date(parameters[0]);
7
- }
8
- }
@@ -1,27 +0,0 @@
1
- import { IClassFactory } from "../i-class-factory";
2
- import { PortalType } from "../types/portal-type";
3
- import { CallableReturnType, Model } from "../types";
4
- import { PortalMap } from "../types/portal-map";
5
-
6
- export class InternalLinkFactory implements IClassFactory {
7
- private portalMap: PortalMap;
8
-
9
- constructor(portalMap: PortalMap) {
10
- this.portalMap = portalMap;
11
- }
12
-
13
- public create(link: Model): CallableReturnType {
14
- const portalBaseUrl = this.getPortalBaseUrl(link.getPortalType() as PortalType);
15
-
16
- const path = link['getUrl']() as string;
17
- link['getUrl'] = (): string => portalBaseUrl + path;
18
-
19
- return link;
20
- }
21
-
22
- private getPortalBaseUrl(portalType: PortalType): string {
23
- const url = this.portalMap.get(portalType);
24
- return url || '';
25
- }
26
-
27
- }
@@ -1,7 +0,0 @@
1
- import { IModelDescription } from "./i-model-description";
2
-
3
- export interface IApiResponse {
4
- status: number;
5
- data: Record<number, IModelDescription>;
6
- message: string
7
- }
@@ -1,5 +0,0 @@
1
- import { CallableReturnType, Model } from "./types";
2
-
3
- export interface IClassFactory {
4
- create(data: Model, parameters?: any[]): CallableReturnType
5
- }
@@ -1,13 +0,0 @@
1
- import { AcceptedType } from "./types";
2
-
3
- export interface IModelDescription {
4
- class: string;
5
- func: Record<string, AcceptedType | IModelDescription>;
6
- parameters?: any[];
7
- }
8
-
9
- // eslint-disable-next-line
10
- export function isModelDescription(arg: any): arg is IModelDescription {
11
- // eslint-disable-next-line
12
- return arg && arg.class && (arg.func || arg.parameters);
13
- }