@studyportals/domain-client 3.6.0-2 → 3.6.1-beta.1

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 (281) hide show
  1. package/{bin/index.d.ts → index.d.ts} +5 -1
  2. package/{bin/index.js → index.js} +5 -1
  3. package/index.js.map +1 -0
  4. package/package.json +8 -8
  5. package/{bin/src → src}/domain-client.d.ts +0 -0
  6. package/{bin/src → src}/domain-client.js +0 -0
  7. package/{bin/src → src}/domain-client.js.map +0 -0
  8. package/{bin/src → src}/exceptions/bad-request-exception.d.ts +0 -0
  9. package/{bin/src → src}/exceptions/bad-request-exception.js +0 -0
  10. package/{bin/src → src}/exceptions/bad-request-exception.js.map +0 -0
  11. package/{bin/src → src}/exceptions/client-exception.d.ts +0 -0
  12. package/{bin/src → src}/exceptions/client-exception.js +0 -0
  13. package/{bin/src → src}/exceptions/client-exception.js.map +0 -0
  14. package/{bin/src → src}/exceptions/internal-server-exception.d.ts +0 -0
  15. package/{bin/src → src}/exceptions/internal-server-exception.js +0 -0
  16. package/{bin/src → src}/exceptions/internal-server-exception.js.map +0 -0
  17. package/{bin/src → src}/exceptions/not-found-exception.d.ts +0 -0
  18. package/{bin/src → src}/exceptions/not-found-exception.js +0 -0
  19. package/{bin/src → src}/exceptions/not-found-exception.js.map +0 -0
  20. package/{bin/src → src}/exceptions/property-not-available-exception.d.ts +0 -0
  21. package/{bin/src → src}/exceptions/property-not-available-exception.js +0 -0
  22. package/{bin/src → src}/exceptions/property-not-available-exception.js.map +0 -0
  23. package/{bin/src → src}/factories/DateFactory.d.ts +0 -0
  24. package/{bin/src → src}/factories/DateFactory.js +0 -0
  25. package/{bin/src → src}/factories/DateFactory.js.map +0 -0
  26. package/{bin/src → src}/factories/InternalLinkFactory.d.ts +0 -0
  27. package/{bin/src → src}/factories/InternalLinkFactory.js +0 -0
  28. package/{bin/src → src}/factories/InternalLinkFactory.js.map +1 -1
  29. package/{bin/src → src}/i-api-response.d.ts +0 -0
  30. package/{bin/src → src}/i-api-response.js +0 -0
  31. package/{bin/src → src}/i-api-response.js.map +0 -0
  32. package/{bin/src → src}/i-class-factory.d.ts +0 -0
  33. package/{bin/src → src}/i-class-factory.js +0 -0
  34. package/{bin/src → src}/i-class-factory.js.map +0 -0
  35. package/{bin/src → src}/i-model-description.d.ts +0 -0
  36. package/{bin/src → src}/i-model-description.js +0 -0
  37. package/{bin/src → src}/i-model-description.js.map +0 -0
  38. package/{bin/src → src}/model-client.d.ts +0 -0
  39. package/{bin/src → src}/model-client.js +0 -0
  40. package/{bin/src → src}/model-client.js.map +0 -0
  41. package/{bin/src → src}/model-factory.d.ts +0 -0
  42. package/{bin/src → src}/model-factory.js +2 -2
  43. package/{bin/src → src}/model-factory.js.map +1 -1
  44. package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.d.ts +0 -0
  45. package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js +0 -0
  46. package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js.map +0 -0
  47. package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.d.ts +2 -2
  48. package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js +0 -0
  49. package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js.map +0 -0
  50. package/{bin/src/models/common → src/models/bestfit-programme}/i-city.d.ts +0 -0
  51. package/{bin/src/models/common → src/models/bestfit-programme}/i-city.js +0 -0
  52. package/src/models/bestfit-programme/i-city.js.map +1 -0
  53. package/src/models/bestfit-programme/i-english-requirements.d.ts +37 -0
  54. package/{bin/src/models/common → src/models/bestfit-programme}/i-english-requirements.js +0 -0
  55. package/src/models/bestfit-programme/i-english-requirements.js.map +1 -0
  56. package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.d.ts +0 -0
  57. package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.js +0 -0
  58. package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.js.map +0 -0
  59. package/{bin/src → src}/models/bestfit-programme/i-living-cost.d.ts +0 -0
  60. package/{bin/src → src}/models/bestfit-programme/i-living-cost.js +0 -0
  61. package/{bin/src → src}/models/bestfit-programme/i-living-cost.js.map +0 -0
  62. package/{bin/src/models/common → src/models/bestfit-programme}/i-tuition-fee.d.ts +0 -0
  63. package/{bin/src/models/common → src/models/bestfit-programme}/i-tuition-fee.js +0 -0
  64. package/src/models/bestfit-programme/i-tuition-fee.js.map +1 -0
  65. package/src/models/common/i-city.d.ts +14 -0
  66. package/src/models/common/i-city.js +3 -0
  67. package/{bin/src → src}/models/common/i-city.js.map +0 -0
  68. package/{bin/src → src}/models/common/i-country.d.ts +0 -0
  69. package/{bin/src → src}/models/common/i-country.js +0 -0
  70. package/{bin/src → src}/models/common/i-country.js.map +0 -0
  71. package/{bin/src → src}/models/common/i-english-requirements.d.ts +0 -0
  72. package/src/models/common/i-english-requirements.js +3 -0
  73. package/{bin/src → src}/models/common/i-english-requirements.js.map +0 -0
  74. package/{bin/src → src}/models/common/i-internal-link.d.ts +0 -0
  75. package/{bin/src → src}/models/common/i-internal-link.js +0 -0
  76. package/{bin/src → src}/models/common/i-internal-link.js.map +0 -0
  77. package/{bin/src → src}/models/common/i-logo.d.ts +0 -0
  78. package/{bin/src → src}/models/common/i-logo.js +0 -0
  79. package/{bin/src → src}/models/common/i-logo.js.map +0 -0
  80. package/src/models/common/i-tuition-fee.d.ts +50 -0
  81. package/src/models/common/i-tuition-fee.js +3 -0
  82. package/{bin/src → src}/models/common/i-tuition-fee.js.map +0 -0
  83. package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.d.ts +0 -0
  84. package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js +0 -0
  85. package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js.map +0 -0
  86. package/src/models/dotdigital-organisation/i-city.d.ts +14 -0
  87. package/src/models/dotdigital-organisation/i-city.js +3 -0
  88. package/src/models/dotdigital-organisation/i-city.js.map +1 -0
  89. package/src/models/dotdigital-organisation/i-country.d.ts +14 -0
  90. package/src/models/dotdigital-organisation/i-country.js +3 -0
  91. package/src/models/dotdigital-organisation/i-country.js.map +1 -0
  92. package/src/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +35 -0
  93. package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js +0 -0
  94. package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js.map +0 -0
  95. package/src/models/dotdigital-organisation/i-review.d.ts +7 -0
  96. package/{bin/src → src}/models/dotdigital-organisation/i-review.js +0 -0
  97. package/{bin/src → src}/models/dotdigital-organisation/i-review.js.map +0 -0
  98. package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.d.ts +0 -0
  99. package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js +0 -0
  100. package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js.map +0 -0
  101. package/src/models/dotdigital-programme/i-country.d.ts +14 -0
  102. package/src/models/dotdigital-programme/i-country.js +3 -0
  103. package/src/models/dotdigital-programme/i-country.js.map +1 -0
  104. package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.d.ts +0 -0
  105. package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js +0 -0
  106. package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js.map +0 -0
  107. package/src/models/dotdigital-programme/i-english-requirements.d.ts +37 -0
  108. package/src/models/dotdigital-programme/i-english-requirements.js +3 -0
  109. package/src/models/dotdigital-programme/i-english-requirements.js.map +1 -0
  110. package/src/models/dotdigital-programme/i-internal-link.d.ts +28 -0
  111. package/src/models/dotdigital-programme/i-internal-link.js +3 -0
  112. package/src/models/dotdigital-programme/i-internal-link.js.map +1 -0
  113. package/src/models/dotdigital-programme/i-logo.d.ts +14 -0
  114. package/src/models/dotdigital-programme/i-logo.js +3 -0
  115. package/src/models/dotdigital-programme/i-logo.js.map +1 -0
  116. package/src/models/dotdigital-programme/i-tuition-fee.d.ts +50 -0
  117. package/src/models/dotdigital-programme/i-tuition-fee.js +3 -0
  118. package/src/models/dotdigital-programme/i-tuition-fee.js.map +1 -0
  119. package/{bin/src → src}/models/programme-card/i-click-tracking-data.d.ts +0 -0
  120. package/{bin/src → src}/models/programme-card/i-click-tracking-data.js +0 -0
  121. package/{bin/src → src}/models/programme-card/i-click-tracking-data.js.map +0 -0
  122. package/{bin/src → src}/models/programme-card/i-cover.d.ts +0 -0
  123. package/{bin/src → src}/models/programme-card/i-cover.js +0 -0
  124. package/{bin/src → src}/models/programme-card/i-cover.js.map +0 -0
  125. package/{bin/src → src}/models/programme-card/i-deadline.d.ts +0 -0
  126. package/{bin/src → src}/models/programme-card/i-deadline.js +0 -0
  127. package/{bin/src → src}/models/programme-card/i-deadline.js.map +0 -0
  128. package/{bin/src → src}/models/programme-card/i-duration.d.ts +0 -0
  129. package/{bin/src → src}/models/programme-card/i-duration.js +0 -0
  130. package/{bin/src → src}/models/programme-card/i-duration.js.map +0 -0
  131. package/src/models/programme-card/i-internal-link.d.ts +28 -0
  132. package/src/models/programme-card/i-internal-link.js +3 -0
  133. package/src/models/programme-card/i-internal-link.js.map +1 -0
  134. package/{bin/src → src}/models/programme-card/i-link.d.ts +0 -0
  135. package/{bin/src → src}/models/programme-card/i-link.js +0 -0
  136. package/{bin/src → src}/models/programme-card/i-link.js.map +0 -0
  137. package/{bin/src → src}/models/programme-card/i-location.d.ts +0 -0
  138. package/{bin/src → src}/models/programme-card/i-location.js +0 -0
  139. package/{bin/src → src}/models/programme-card/i-location.js.map +0 -0
  140. package/src/models/programme-card/i-logo.d.ts +14 -0
  141. package/src/models/programme-card/i-logo.js +3 -0
  142. package/src/models/programme-card/i-logo.js.map +1 -0
  143. package/{bin/src → src}/models/programme-card/i-optional-link.d.ts +0 -0
  144. package/{bin/src → src}/models/programme-card/i-optional-link.js +0 -0
  145. package/{bin/src → src}/models/programme-card/i-optional-link.js.map +0 -0
  146. package/{bin/src → src}/models/programme-card/i-programme-card.d.ts +0 -0
  147. package/{bin/src → src}/models/programme-card/i-programme-card.js +0 -0
  148. package/{bin/src → src}/models/programme-card/i-programme-card.js.map +0 -0
  149. package/{bin/src → src}/models/programme-card/i-start-date.d.ts +0 -0
  150. package/{bin/src → src}/models/programme-card/i-start-date.js +0 -0
  151. package/{bin/src → src}/models/programme-card/i-start-date.js.map +0 -0
  152. package/{bin/src → src}/models/programme-card/i-timing.d.ts +0 -0
  153. package/{bin/src → src}/models/programme-card/i-timing.js +0 -0
  154. package/{bin/src → src}/models/programme-card/i-timing.js.map +0 -0
  155. package/{bin/src → src}/models/programme-card/i-tracked-link.d.ts +0 -0
  156. package/{bin/src → src}/models/programme-card/i-tracked-link.js +0 -0
  157. package/{bin/src → src}/models/programme-card/i-tracked-link.js.map +0 -0
  158. package/{bin/src → src}/models/programme-card/i-tracking.d.ts +0 -0
  159. package/{bin/src → src}/models/programme-card/i-tracking.js +0 -0
  160. package/{bin/src → src}/models/programme-card/i-tracking.js.map +0 -0
  161. package/src/models/programme-card/i-tuition-fee.d.ts +50 -0
  162. package/src/models/programme-card/i-tuition-fee.js +3 -0
  163. package/src/models/programme-card/i-tuition-fee.js.map +1 -0
  164. package/{bin/src → src}/models/programme-card/programme-card-client.d.ts +0 -0
  165. package/{bin/src → src}/models/programme-card/programme-card-client.js +0 -0
  166. package/{bin/src → src}/models/programme-card/programme-card-client.js.map +0 -0
  167. package/{bin/src → src}/models/search-country-faq/i-search-country-faq.d.ts +0 -0
  168. package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js +0 -0
  169. package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js.map +0 -0
  170. package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.d.ts +0 -0
  171. package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js +0 -0
  172. package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js.map +0 -0
  173. package/src/models/search-discipline/i-search-discipline.d.ts +26 -0
  174. package/src/models/search-discipline/i-search-discipline.js +3 -0
  175. package/src/models/search-discipline/i-search-discipline.js.map +1 -0
  176. package/src/models/search-discipline/public-search-discipline-client.d.ts +7 -0
  177. package/src/models/search-discipline/public-search-discipline-client.js +17 -0
  178. package/src/models/search-discipline/public-search-discipline-client.js.map +1 -0
  179. package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.d.ts +0 -0
  180. package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js +0 -0
  181. package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js.map +0 -0
  182. package/{bin/src → src}/models/search-projection/i-geo-targeting-values.d.ts +0 -0
  183. package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js +0 -0
  184. package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js.map +0 -0
  185. package/{bin/src → src}/models/search-projection/i-organisation-values.d.ts +0 -0
  186. package/{bin/src → src}/models/search-projection/i-organisation-values.js +0 -0
  187. package/{bin/src → src}/models/search-projection/i-organisation-values.js.map +0 -0
  188. package/{bin/src → src}/models/search-projection/i-premium-values.d.ts +0 -0
  189. package/{bin/src → src}/models/search-projection/i-premium-values.js +0 -0
  190. package/{bin/src → src}/models/search-projection/i-premium-values.js.map +0 -0
  191. package/{bin/src → src}/models/search-projection/i-search-projection.d.ts +0 -0
  192. package/{bin/src → src}/models/search-projection/i-search-projection.js +0 -0
  193. package/{bin/src → src}/models/search-projection/i-search-projection.js.map +0 -0
  194. package/{bin/src → src}/models/search-projection/i-tuition-values.d.ts +0 -0
  195. package/{bin/src → src}/models/search-projection/i-tuition-values.js +0 -0
  196. package/{bin/src → src}/models/search-projection/i-tuition-values.js.map +0 -0
  197. package/{bin/src → src}/models/search-projection/search-projection-client.d.ts +0 -0
  198. package/{bin/src → src}/models/search-projection/search-projection-client.js +0 -0
  199. package/{bin/src → src}/models/search-projection/search-projection-client.js.map +0 -0
  200. package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.d.ts +10 -0
  201. package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js +3 -0
  202. package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js.map +1 -0
  203. package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.d.ts +7 -0
  204. package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js +17 -0
  205. package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js.map +1 -0
  206. package/src/types/portal-map.d.ts +2 -0
  207. package/{bin/src → src}/types/portal-map.js +0 -0
  208. package/{bin/src → src}/types/portal-map.js.map +0 -0
  209. package/{bin/src → src}/types/portal-type.d.ts +0 -0
  210. package/{bin/src → src}/types/portal-type.js +0 -0
  211. package/{bin/src → src}/types/portal-type.js.map +0 -0
  212. package/src/{types.ts → types.d.ts} +1 -1
  213. package/{bin/src → src}/types.js +0 -0
  214. package/{bin/src → src}/types.js.map +0 -0
  215. package/.eslintignore +0 -3
  216. package/.eslintrc.js +0 -12
  217. package/.github/dependabot.yml +0 -17
  218. package/.github/stale.yml +0 -10
  219. package/.mocharc.yml +0 -3
  220. package/.nycrc +0 -15
  221. package/README.md +0 -117
  222. package/bin/index.js.map +0 -1
  223. package/bin/package.json +0 -54
  224. package/bin/src/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +0 -32
  225. package/bin/src/models/dotdigital-organisation/i-review.d.ts +0 -7
  226. package/bin/src/types/portal-map.d.ts +0 -2
  227. package/bin/src/types.d.ts +0 -4
  228. package/index.ts +0 -91
  229. package/src/domain-client.ts +0 -70
  230. package/src/exceptions/bad-request-exception.ts +0 -2
  231. package/src/exceptions/client-exception.ts +0 -2
  232. package/src/exceptions/internal-server-exception.ts +0 -2
  233. package/src/exceptions/not-found-exception.ts +0 -2
  234. package/src/exceptions/property-not-available-exception.ts +0 -2
  235. package/src/factories/DateFactory.ts +0 -8
  236. package/src/factories/InternalLinkFactory.ts +0 -27
  237. package/src/i-api-response.ts +0 -7
  238. package/src/i-class-factory.ts +0 -5
  239. package/src/i-model-description.ts +0 -13
  240. package/src/model-client.ts +0 -77
  241. package/src/model-factory.ts +0 -94
  242. package/src/models/bestfit-programme/bestfit-programme-client.ts +0 -16
  243. package/src/models/bestfit-programme/i-best-fit-programme.ts +0 -102
  244. package/src/models/bestfit-programme/i-g-p-a-requirement.ts +0 -23
  245. package/src/models/bestfit-programme/i-living-cost.ts +0 -23
  246. package/src/models/common/i-city.ts +0 -16
  247. package/src/models/common/i-country.ts +0 -16
  248. package/src/models/common/i-english-requirements.ts +0 -38
  249. package/src/models/common/i-internal-link.ts +0 -32
  250. package/src/models/common/i-logo.ts +0 -16
  251. package/src/models/common/i-tuition-fee.ts +0 -57
  252. package/src/models/dotdigital-organisation/dotdigital-organisation-client.ts +0 -16
  253. package/src/models/dotdigital-organisation/i-dot-digital-organisation.ts +0 -59
  254. package/src/models/dotdigital-organisation/i-review.ts +0 -12
  255. package/src/models/dotdigital-programme/dotdigital-programme-client.ts +0 -16
  256. package/src/models/dotdigital-programme/i-dot-digital-programme.ts +0 -108
  257. package/src/models/programme-card/i-click-tracking-data.ts +0 -8
  258. package/src/models/programme-card/i-cover.ts +0 -16
  259. package/src/models/programme-card/i-deadline.ts +0 -23
  260. package/src/models/programme-card/i-duration.ts +0 -46
  261. package/src/models/programme-card/i-link.ts +0 -25
  262. package/src/models/programme-card/i-location.ts +0 -12
  263. package/src/models/programme-card/i-optional-link.ts +0 -27
  264. package/src/models/programme-card/i-programme-card.ts +0 -152
  265. package/src/models/programme-card/i-start-date.ts +0 -39
  266. package/src/models/programme-card/i-timing.ts +0 -53
  267. package/src/models/programme-card/i-tracked-link.ts +0 -34
  268. package/src/models/programme-card/i-tracking.ts +0 -55
  269. package/src/models/programme-card/programme-card-client.ts +0 -16
  270. package/src/models/search-country-faq/i-search-country-faq.ts +0 -22
  271. package/src/models/search-country-faq/public-search-country-faq-client.ts +0 -16
  272. package/src/models/search-projection/i-geo-targeting-configuration.ts +0 -44
  273. package/src/models/search-projection/i-geo-targeting-values.ts +0 -38
  274. package/src/models/search-projection/i-organisation-values.ts +0 -46
  275. package/src/models/search-projection/i-premium-values.ts +0 -43
  276. package/src/models/search-projection/i-search-projection.ts +0 -216
  277. package/src/models/search-projection/i-tuition-values.ts +0 -63
  278. package/src/models/search-projection/search-projection-client.ts +0 -16
  279. package/src/types/portal-map.ts +0 -3
  280. package/src/types/portal-type.ts +0 -7
  281. package/tsconfig.json +0 -39
@@ -1,94 +0,0 @@
1
- import { InternalLinkFactory } from "./factories/InternalLinkFactory";
2
- import { DateFactory } from "./factories/DateFactory";
3
- import { IClassFactory } from "./i-class-factory";
4
- import { IModelDescription, isModelDescription } from "./i-model-description";
5
- import { PropertyNotAvailableException } from "./exceptions/property-not-available-exception";
6
- import { Callable, CallableReturnType, Model } from "./types";
7
- import { PortalMap } from "./types/portal-map";
8
- import { PortalType } from "./types/portal-type";
9
-
10
- export class ModelFactory<T> {
11
-
12
- private customClassFactories: Map<string, IClassFactory>;
13
-
14
- constructor(portalMap: PortalMap = new Map<PortalType, string>()) {
15
- const factories = new Map<string, IClassFactory>();
16
- factories.set('IInternalLink', new InternalLinkFactory(portalMap));
17
- factories.set('SerializableDateTime', new DateFactory());
18
-
19
- this.customClassFactories = factories;
20
- }
21
-
22
- public fromDescription(data: IModelDescription): T {
23
- return this.unpackClass(data) as unknown as T;
24
- }
25
-
26
- public fromDescriptions(data: IModelDescription[]): T[] {
27
- const models: T[] = [];
28
- for (const modelDescription of data) {
29
- models.push(this.unpackClass(modelDescription) as unknown as T);
30
- }
31
- return models;
32
- }
33
-
34
- private unpackClass(data: IModelDescription): CallableReturnType {
35
-
36
-
37
- const unpacked: Model = {};
38
- for (const functionName in data.func) {
39
- unpacked[functionName] = this.getCallable(functionName, data);
40
- }
41
-
42
- const factory = this.customClassFactories.get(data.class);
43
- if (factory !== undefined) {
44
- return factory.create(unpacked, data.parameters);
45
- }
46
-
47
- return unpacked;
48
- }
49
-
50
- private getCallable(
51
- functionName: string,
52
- data: IModelDescription
53
- ): Callable {
54
- const propertyName = functionName.substr(3);
55
- const canShowFunction = 'canShow' + propertyName;
56
-
57
- const value: unknown = data.func[functionName];
58
- let returnValue: CallableReturnType|CallableReturnType[];
59
-
60
- if (isModelDescription(value)) {
61
- returnValue = this.unpackClass(value);
62
- } else if (Array.isArray(value)) {
63
- returnValue = this.unpackArray(value);
64
- } else {
65
- returnValue = value as CallableReturnType;
66
- }
67
-
68
- if (canShowFunction in data.func) {
69
- return () => {
70
- if (data.func[canShowFunction] === false) {
71
- throw new PropertyNotAvailableException(
72
- `Property '${propertyName}' not available`
73
- );
74
- }
75
- return returnValue;
76
- };
77
- }
78
- return () => {
79
- return returnValue;
80
- };
81
- }
82
-
83
- private unpackArray(list: any[]): CallableReturnType[] {
84
- return list.map(
85
- item => {
86
- if (isModelDescription(item)) {
87
- return this.unpackClass(item)
88
- }
89
-
90
- return item as CallableReturnType;
91
- }
92
- );
93
- }
94
- }
@@ -1,16 +0,0 @@
1
- import { IBestFitProgramme } from "../../..";
2
- import { ModelClient } from "../../model-client";
3
-
4
- export class BestfitProgrammeClient extends ModelClient<IBestFitProgramme> {
5
- protected getModelName(): string {
6
- return 'bestfit-programme';
7
- }
8
-
9
- protected getVersion(): string {
10
- return 'v1';
11
- }
12
-
13
- public isPublic(): boolean {
14
- return false;
15
- }
16
- }
@@ -1,102 +0,0 @@
1
- import { ICity, IEnglishRequirements, IGPARequirement, ILivingCost, ITuitionFee } from "../../..";
2
-
3
- export interface IBestFitProgramme {
4
-
5
- /**
6
- * Average university ranking across multiple ranking institutes.
7
- *
8
- * @return number
9
- */
10
- getAverageRankingPosition(): number;
11
-
12
- canShowAverageRankingPosition(): boolean;
13
-
14
- /**
15
- * City which programme is given in
16
- *
17
- * @return ICity
18
- */
19
- getCity(): ICity;
20
-
21
- /**
22
- * Get country id the programme is teached in
23
- *
24
- * @return number
25
- */
26
- getCountryId(): number;
27
-
28
- /**
29
- * Discipline ids which the program is linked to.
30
- *
31
- * @return number[]
32
- */
33
- getDisciplineIds(): number[];
34
-
35
- canShowDisciplineIds(): boolean;
36
-
37
- /**
38
- * English level requirements.
39
- *
40
- * @return IEnglishRequirements
41
- */
42
- getEnglishRequirements(): IEnglishRequirements;
43
-
44
- /**
45
- * GPA requirements
46
- *
47
- * @return IGPARequirement
48
- */
49
- getGPA(): IGPARequirement;
50
-
51
- canShowGPA(): boolean;
52
-
53
- /**
54
- * Id of the programme.
55
- *
56
- * @return number
57
- */
58
- getId(): number;
59
-
60
- /**
61
- * Estimated living cost based on universities location.
62
- *
63
- * @return ILivingCost
64
- */
65
- getLivingCost(): ILivingCost;
66
-
67
- canShowLivingCost(): boolean;
68
-
69
- /**
70
- * Minimum required education level
71
- *
72
- * @return string
73
- */
74
- getRequiredEducationalLevel(): string;
75
-
76
- canShowRequiredEducationalLevel(): boolean;
77
-
78
- /**
79
- * The programmes tuition fees
80
- *
81
- * @return ITuitionFee[]
82
- */
83
- getTuitionFees(): ITuitionFee[];
84
-
85
- canShowTuitionFees(): boolean;
86
-
87
- /**
88
- * Amount of years required as work experience
89
- *
90
- * @return number
91
- */
92
- getWorkExperienceYears(): number;
93
-
94
- canShowWorkExperienceYears(): boolean;
95
-
96
- /**
97
- * Indicates whenever a programme is fully online or not
98
- *
99
- * @return boolean
100
- */
101
- isFullyOnline(): boolean;
102
- }
@@ -1,23 +0,0 @@
1
- export interface IGPARequirement {
2
-
3
- /**
4
- * The used GPA scale for this requirement
5
- *
6
- * @return string
7
- */
8
- getScale(): string;
9
-
10
- /**
11
- * Required minimum score.
12
- *
13
- * @return string
14
- */
15
- getScore(): string;
16
-
17
- /**
18
- * Is GPA recommended or required.
19
- *
20
- * @return boolean
21
- */
22
- isRequired(): boolean;
23
- }
@@ -1,23 +0,0 @@
1
- export interface ILivingCost {
2
-
3
- /**
4
- * Get the applicable currency.
5
- *
6
- * @return string
7
- */
8
- getCurrency(): string;
9
-
10
- /**
11
- * Get the maximum living cost in the provided currency.
12
- *
13
- * @return number
14
- */
15
- getMax(): number;
16
-
17
- /**
18
- * Get the minimum living cost in the provided currency.
19
- *
20
- * @return number
21
- */
22
- getMin(): number;
23
- }
@@ -1,16 +0,0 @@
1
- export interface ICity {
2
-
3
- /**
4
- * Get city id
5
- *
6
- * @return number
7
- */
8
- getId(): number;
9
-
10
- /**
11
- * Get city name
12
- *
13
- * @return string
14
- */
15
- getName(): string;
16
- }
@@ -1,16 +0,0 @@
1
- export interface ICountry {
2
-
3
- /**
4
- * Get country id
5
- *
6
- * @return number
7
- */
8
- getId(): number;
9
-
10
- /**
11
- * Get country name
12
- *
13
- * @return string
14
- */
15
- getName(): string;
16
- }
@@ -1,38 +0,0 @@
1
- export interface IEnglishRequirements {
2
-
3
- /**
4
- * Required score for IELTS tests
5
- *
6
- * @return number
7
- */
8
- getIELTS(): number;
9
-
10
- canShowIELTS(): boolean;
11
-
12
- /**
13
- * Required score for PTE
14
- *
15
- * @return number
16
- */
17
- getPTE(): number;
18
-
19
- canShowPTE(): boolean;
20
-
21
- /**
22
- * Required score for TOEFL internet
23
- *
24
- * @return number
25
- */
26
- getTOEFLInternet(): number;
27
-
28
- canShowTOEFLInternet(): boolean;
29
-
30
- /**
31
- * Required score for TOEFL paper
32
- *
33
- * @return number
34
- */
35
- getTOEFLPaper(): number;
36
-
37
- canShowTOEFLPaper(): boolean;
38
- }
@@ -1,32 +0,0 @@
1
- export interface IInternalLink {
2
-
3
- /**
4
- * Get an optional text describing the link (typically <a>-tags contents).
5
- *
6
- * @return string
7
- * @throws PropertyNotAvailableException
8
- */
9
- getDescription(): string;
10
-
11
- canShowDescription(): boolean;
12
-
13
- /**
14
- * Returns on which portal a this link should link towards.
15
- *
16
- * @return string
17
- */
18
- getPortalType(): string;
19
-
20
- /**
21
- * Get the url to refer to.
22
- *
23
- * Note that the url provided is always a relative URL. A base URL is needed
24
- * to make it a full valid path.
25
- * The only exception is when an external link is provided (meaning, outside
26
- * of StudyPortals-maintained domains). In this case a full url will be
27
- * provided.
28
- *
29
- * @return string
30
- */
31
- getUrl(): string;
32
- }
@@ -1,16 +0,0 @@
1
- export interface ILogo {
2
-
3
- /**
4
- * Get the file ID of the logo.
5
- *
6
- * @return number
7
- */
8
- getId(): number;
9
-
10
- /**
11
- * Get the imgix URL of the logo.
12
- *
13
- * @return string
14
- */
15
- getSource(): string;
16
- }
@@ -1,57 +0,0 @@
1
- export interface ITuitionFee {
2
-
3
- /**
4
- * Get the tuition amount per unit in the provided currency.
5
- *
6
- * Note: all transformable units will be converted to yearly amounts. This
7
- * includes per semester and full programme tuition fees.
8
- *
9
- * @return number
10
- */
11
- getAmount(): number;
12
-
13
- /**
14
- * Get the applicable currency.
15
- *
16
- * @return string
17
- */
18
- getCurrency(): string;
19
-
20
- /**
21
- * Get the original tuition amount before any transformation step.
22
- *
23
- * @return number
24
- */
25
- getOriginalAmount(): number;
26
-
27
- /**
28
- * Get the original tuition unit before any transformation step.
29
- *
30
- * @return string
31
- */
32
- getOriginalUnit(): string;
33
-
34
- /**
35
- * Get targeted audience (national, international, eea, etc).
36
- *
37
- * @return string
38
- */
39
- getTarget(): string;
40
-
41
- /**
42
- * Get the unit the tuition fee applies for.
43
- *
44
- * Note: all transformable units will be converted to 'year'. This means
45
- * this value will be either 'year', 'module' or 'credit'.
46
- *
47
- * @return string
48
- */
49
- getUnit(): string;
50
-
51
- /**
52
- * True if the study is free for this target audience.
53
- *
54
- * @return boolean
55
- */
56
- isFree(): boolean;
57
- }
@@ -1,16 +0,0 @@
1
- import { IDotDigitalOrganisation } from "../../..";
2
- import { ModelClient } from "../../model-client";
3
-
4
- export class DotdigitalOrganisationClient extends ModelClient<IDotDigitalOrganisation> {
5
- protected getModelName(): string {
6
- return 'dotdigital-organisation';
7
- }
8
-
9
- protected getVersion(): string {
10
- return 'v1';
11
- }
12
-
13
- public isPublic(): boolean {
14
- return false;
15
- }
16
- }
@@ -1,59 +0,0 @@
1
- import { ICity, ICountry, IReview } from "../../..";
2
-
3
- export interface IDotDigitalOrganisation {
4
-
5
- getAboutCareer(): string;
6
-
7
- getAboutEducation(): string;
8
-
9
- getAboutHistory(): string;
10
-
11
- getAboutResearch(): string;
12
-
13
- getAcademicStaff(): number;
14
-
15
- getAmountOfProgrammes(): number;
16
-
17
- getCity(): ICity;
18
-
19
- getCountry(): ICountry;
20
-
21
- getCoverUrl(): string;
22
-
23
- getFemaleStudents(): number;
24
-
25
- getId(): number;
26
-
27
- getAverageStudentRating(): number;
28
-
29
- getLogoUrl(): string;
30
-
31
- getName(): string;
32
-
33
- getOrganisationUrl(): string;
34
-
35
- getReasons(): string[];
36
-
37
- /**
38
- * @return IReview[]
39
- */
40
- getReviews(): IReview[];
41
-
42
- getServicesHousing(): string;
43
-
44
- getServicesICT(): string;
45
-
46
- getServicesLibrary(): string;
47
-
48
- getServicesMedical(): string;
49
-
50
- getServicesStudent(): string;
51
-
52
- getStudentLifeCampus(): string;
53
-
54
- getStudentLifeSport(): string;
55
-
56
- getStudents(): number;
57
-
58
- getStudentsInternational(): number;
59
- }
@@ -1,12 +0,0 @@
1
- export interface IReview {
2
-
3
- getEndDate(): Date;
4
-
5
- getRating(): number;
6
-
7
- getReview(): string;
8
-
9
- getStartDate(): Date;
10
-
11
- getTitle(): string;
12
- }
@@ -1,16 +0,0 @@
1
- import { IDotDigitalProgramme } from "../../..";
2
- import { ModelClient } from "../../model-client";
3
-
4
- export class DotdigitalProgrammeClient extends ModelClient<IDotDigitalProgramme> {
5
- protected getModelName(): string {
6
- return 'dotdigital-programme';
7
- }
8
-
9
- protected getVersion(): string {
10
- return 'v1';
11
- }
12
-
13
- public isPublic(): boolean {
14
- return false;
15
- }
16
- }
@@ -1,108 +0,0 @@
1
- import { ICountry, IEnglishRequirements, IInternalLink, ILogo, ITuitionFee } from "../../..";
2
-
3
- export interface IDotDigitalProgramme {
4
-
5
- /**
6
- * Campaign type of the campaign the programme is attached to
7
- *
8
- * @return number
9
- */
10
- getCampaignType(): number;
11
-
12
- canShowCampaignType(): boolean;
13
-
14
- /**
15
- * Get country the programme is teached in
16
- *
17
- * @return ICountry
18
- */
19
- getCountry(): ICountry;
20
-
21
- canShowCountry(): boolean;
22
-
23
- /**
24
- * Education level
25
- *
26
- * @return string
27
- */
28
- getEducationalLevel(): string;
29
-
30
- /**
31
- * English level requirements.
32
- *
33
- * @return IEnglishRequirements
34
- */
35
- getEnglishRequirements(): IEnglishRequirements;
36
-
37
- /**
38
- * Id of the programme.
39
- *
40
- * @return number
41
- */
42
- getId(): number;
43
-
44
- /**
45
- * The last time the programme has been updated and verified
46
- *
47
- * @return Date
48
- */
49
- getLastUpdated(): Date;
50
-
51
- /**
52
- * University logo url
53
- *
54
- * @return ILogo
55
- */
56
- getLogo(): ILogo;
57
-
58
- canShowLogo(): boolean;
59
-
60
- /**
61
- * Get a link to the programme page.
62
- *
63
- * The link contains the page path as url and the programme name as the
64
- * link description.
65
- *
66
- * @return IInternalLink
67
- */
68
- getProgrammeLink(): IInternalLink;
69
-
70
- /**
71
- * The universities review rating
72
- *
73
- * @return number
74
- */
75
- getReviewRating(): number;
76
-
77
- canShowReviewRating(): boolean;
78
-
79
- /**
80
- * Title of the programme.
81
- *
82
- * @return string
83
- */
84
- getTitle(): string;
85
-
86
- /**
87
- * The programmes tuition fees
88
- *
89
- * @return ITuitionFee[]
90
- */
91
- getTuitionFees(): ITuitionFee[];
92
-
93
- canShowTuitionFees(): boolean;
94
-
95
- /**
96
- * University title
97
- *
98
- * @return string
99
- */
100
- getUniversityTitle(): string;
101
-
102
- /**
103
- * Is programme public
104
- *
105
- * @return boolean
106
- */
107
- isPublic(): boolean;
108
- }
@@ -1,8 +0,0 @@
1
- export interface IClickTrackingData {
2
-
3
- getAction(): string;
4
-
5
- getCategory(): string;
6
-
7
- getLabel(): string;
8
- }
@@ -1,16 +0,0 @@
1
- export interface ICover {
2
-
3
- /**
4
- * Get the file ID of the cover (as known in the system)
5
- *
6
- * @return number
7
- */
8
- getId(): number;
9
-
10
- /**
11
- * Get the source URL for the cover.
12
- *
13
- * @return string
14
- */
15
- getSource(): string;
16
- }
@@ -1,23 +0,0 @@
1
- export interface IDeadline {
2
-
3
- /**
4
- * Get the date this deadline expires on.
5
- *
6
- * @return Date
7
- */
8
- getDate(): Date;
9
-
10
- /**
11
- * Get the deadline type (e.g. general, national, eea, etc).
12
- *
13
- * @return string
14
- */
15
- getType(): string;
16
-
17
- /**
18
- * True if the deadline has passed (e.g. you can't apply anymore).
19
- *
20
- * @return boolean
21
- */
22
- isPassed(): boolean;
23
- }