@studyportals/domain-client 3.6.0-0 → 3.6.0-2

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 (226) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +12 -0
  3. package/.github/dependabot.yml +17 -0
  4. package/.github/stale.yml +10 -0
  5. package/.mocharc.yml +3 -0
  6. package/.nycrc +15 -0
  7. package/README.md +117 -0
  8. package/{index.d.ts → bin/index.d.ts} +45 -45
  9. package/{index.js → bin/index.js} +27 -27
  10. package/{index.js.map → bin/index.js.map} +0 -0
  11. package/bin/package.json +54 -0
  12. package/{src → bin/src}/domain-client.d.ts +14 -14
  13. package/{src → bin/src}/domain-client.js +60 -60
  14. package/{src → bin/src}/domain-client.js.map +0 -0
  15. package/{src → bin/src}/exceptions/bad-request-exception.d.ts +2 -2
  16. package/{src → bin/src}/exceptions/bad-request-exception.js +6 -6
  17. package/{src → bin/src}/exceptions/bad-request-exception.js.map +0 -0
  18. package/{src → bin/src}/exceptions/client-exception.d.ts +2 -2
  19. package/{src → bin/src}/exceptions/client-exception.js +6 -6
  20. package/{src → bin/src}/exceptions/client-exception.js.map +0 -0
  21. package/{src → bin/src}/exceptions/internal-server-exception.d.ts +2 -2
  22. package/{src → bin/src}/exceptions/internal-server-exception.js +6 -6
  23. package/{src → bin/src}/exceptions/internal-server-exception.js.map +0 -0
  24. package/{src → bin/src}/exceptions/not-found-exception.d.ts +2 -2
  25. package/{src → bin/src}/exceptions/not-found-exception.js +6 -6
  26. package/{src → bin/src}/exceptions/not-found-exception.js.map +0 -0
  27. package/{src → bin/src}/exceptions/property-not-available-exception.d.ts +2 -2
  28. package/{src → bin/src}/exceptions/property-not-available-exception.js +6 -6
  29. package/{src → bin/src}/exceptions/property-not-available-exception.js.map +0 -0
  30. package/{src → bin/src}/factories/DateFactory.d.ts +5 -5
  31. package/{src → bin/src}/factories/DateFactory.js +9 -9
  32. package/{src → bin/src}/factories/DateFactory.js.map +0 -0
  33. package/{src → bin/src}/factories/InternalLinkFactory.d.ts +9 -9
  34. package/{src → bin/src}/factories/InternalLinkFactory.js +19 -19
  35. package/{src → bin/src}/factories/InternalLinkFactory.js.map +0 -0
  36. package/{src → bin/src}/i-api-response.d.ts +6 -6
  37. package/{src → bin/src}/i-api-response.js +2 -2
  38. package/{src → bin/src}/i-api-response.js.map +0 -0
  39. package/{src → bin/src}/i-class-factory.d.ts +4 -4
  40. package/{src → bin/src}/i-class-factory.js +2 -2
  41. package/{src → bin/src}/i-class-factory.js.map +0 -0
  42. package/{src → bin/src}/i-model-description.d.ts +7 -7
  43. package/{src → bin/src}/i-model-description.js +9 -9
  44. package/{src → bin/src}/i-model-description.js.map +0 -0
  45. package/{src → bin/src}/model-client.d.ts +16 -16
  46. package/{src → bin/src}/model-client.js +45 -45
  47. package/{src → bin/src}/model-client.js.map +0 -0
  48. package/{src → bin/src}/model-factory.d.ts +11 -11
  49. package/{src → bin/src}/model-factory.js +71 -71
  50. package/{src → bin/src}/model-factory.js.map +0 -0
  51. package/{src → bin/src}/models/bestfit-programme/bestfit-programme-client.d.ts +7 -7
  52. package/{src → bin/src}/models/bestfit-programme/bestfit-programme-client.js +16 -16
  53. package/{src → bin/src}/models/bestfit-programme/bestfit-programme-client.js.map +0 -0
  54. package/{src → bin/src}/models/bestfit-programme/i-best-fit-programme.d.ts +82 -82
  55. package/{src → bin/src}/models/bestfit-programme/i-best-fit-programme.js +2 -2
  56. package/{src → bin/src}/models/bestfit-programme/i-best-fit-programme.js.map +0 -0
  57. package/{src → bin/src}/models/bestfit-programme/i-g-p-a-requirement.d.ts +20 -20
  58. package/{src → bin/src}/models/bestfit-programme/i-g-p-a-requirement.js +2 -2
  59. package/{src → bin/src}/models/bestfit-programme/i-g-p-a-requirement.js.map +0 -0
  60. package/{src → bin/src}/models/bestfit-programme/i-living-cost.d.ts +20 -20
  61. package/{src → bin/src}/models/bestfit-programme/i-living-cost.js +2 -2
  62. package/{src → bin/src}/models/bestfit-programme/i-living-cost.js.map +0 -0
  63. package/{src → bin/src}/models/common/i-city.d.ts +14 -14
  64. package/{src → bin/src}/models/common/i-city.js +2 -2
  65. package/{src → bin/src}/models/common/i-city.js.map +0 -0
  66. package/{src → bin/src}/models/common/i-country.d.ts +14 -14
  67. package/{src → bin/src}/models/common/i-country.js +2 -2
  68. package/{src → bin/src}/models/common/i-country.js.map +0 -0
  69. package/{src → bin/src}/models/common/i-english-requirements.d.ts +30 -30
  70. package/{src → bin/src}/models/common/i-english-requirements.js +2 -2
  71. package/{src → bin/src}/models/common/i-english-requirements.js.map +0 -0
  72. package/{src → bin/src}/models/common/i-internal-link.d.ts +28 -28
  73. package/{src → bin/src}/models/common/i-internal-link.js +2 -2
  74. package/{src → bin/src}/models/common/i-internal-link.js.map +0 -0
  75. package/{src → bin/src}/models/common/i-logo.d.ts +14 -14
  76. package/{src → bin/src}/models/common/i-logo.js +2 -2
  77. package/{src → bin/src}/models/common/i-logo.js.map +0 -0
  78. package/{src → bin/src}/models/common/i-tuition-fee.d.ts +50 -50
  79. package/{src → bin/src}/models/common/i-tuition-fee.js +2 -2
  80. package/{src → bin/src}/models/common/i-tuition-fee.js.map +0 -0
  81. package/{src → bin/src}/models/dotdigital-organisation/dotdigital-organisation-client.d.ts +7 -7
  82. package/{src → bin/src}/models/dotdigital-organisation/dotdigital-organisation-client.js +16 -16
  83. package/{src → bin/src}/models/dotdigital-organisation/dotdigital-organisation-client.js.map +0 -0
  84. package/{src → bin/src}/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +32 -30
  85. package/{src → bin/src}/models/dotdigital-organisation/i-dot-digital-organisation.js +2 -2
  86. package/{src → bin/src}/models/dotdigital-organisation/i-dot-digital-organisation.js.map +0 -0
  87. package/{src → bin/src}/models/dotdigital-organisation/i-review.d.ts +7 -7
  88. package/{src → bin/src}/models/dotdigital-organisation/i-review.js +2 -2
  89. package/{src → bin/src}/models/dotdigital-organisation/i-review.js.map +0 -0
  90. package/{src → bin/src}/models/dotdigital-programme/dotdigital-programme-client.d.ts +7 -7
  91. package/{src → bin/src}/models/dotdigital-programme/dotdigital-programme-client.js +16 -16
  92. package/{src → bin/src}/models/dotdigital-programme/dotdigital-programme-client.js.map +0 -0
  93. package/{src → bin/src}/models/dotdigital-programme/i-dot-digital-programme.d.ts +89 -89
  94. package/{src → bin/src}/models/dotdigital-programme/i-dot-digital-programme.js +2 -2
  95. package/{src → bin/src}/models/dotdigital-programme/i-dot-digital-programme.js.map +0 -0
  96. package/{src → bin/src}/models/programme-card/i-click-tracking-data.d.ts +5 -5
  97. package/{src → bin/src}/models/programme-card/i-click-tracking-data.js +2 -2
  98. package/{src → bin/src}/models/programme-card/i-click-tracking-data.js.map +0 -0
  99. package/{src → bin/src}/models/programme-card/i-cover.d.ts +14 -14
  100. package/{src → bin/src}/models/programme-card/i-cover.js +2 -2
  101. package/{src → bin/src}/models/programme-card/i-cover.js.map +0 -0
  102. package/{src → bin/src}/models/programme-card/i-deadline.d.ts +20 -20
  103. package/{src → bin/src}/models/programme-card/i-deadline.js +2 -2
  104. package/{src → bin/src}/models/programme-card/i-deadline.js.map +0 -0
  105. package/{src → bin/src}/models/programme-card/i-duration.d.ts +40 -40
  106. package/{src → bin/src}/models/programme-card/i-duration.js +2 -2
  107. package/{src → bin/src}/models/programme-card/i-duration.js.map +0 -0
  108. package/{src → bin/src}/models/programme-card/i-link.d.ts +22 -22
  109. package/{src → bin/src}/models/programme-card/i-link.js +2 -2
  110. package/{src → bin/src}/models/programme-card/i-link.js.map +0 -0
  111. package/{src → bin/src}/models/programme-card/i-location.d.ts +7 -7
  112. package/{src → bin/src}/models/programme-card/i-location.js +2 -2
  113. package/{src → bin/src}/models/programme-card/i-location.js.map +0 -0
  114. package/{src → bin/src}/models/programme-card/i-optional-link.d.ts +23 -23
  115. package/{src → bin/src}/models/programme-card/i-optional-link.js +2 -2
  116. package/{src → bin/src}/models/programme-card/i-optional-link.js.map +0 -0
  117. package/{src → bin/src}/models/programme-card/i-programme-card.d.ts +126 -126
  118. package/{src → bin/src}/models/programme-card/i-programme-card.js +2 -2
  119. package/{src → bin/src}/models/programme-card/i-programme-card.js.map +0 -0
  120. package/{src → bin/src}/models/programme-card/i-start-date.d.ts +33 -33
  121. package/{src → bin/src}/models/programme-card/i-start-date.js +2 -2
  122. package/{src → bin/src}/models/programme-card/i-start-date.js.map +0 -0
  123. package/{src → bin/src}/models/programme-card/i-timing.d.ts +45 -45
  124. package/{src → bin/src}/models/programme-card/i-timing.js +2 -2
  125. package/{src → bin/src}/models/programme-card/i-timing.js.map +0 -0
  126. package/{src → bin/src}/models/programme-card/i-tracked-link.d.ts +29 -29
  127. package/{src → bin/src}/models/programme-card/i-tracked-link.js +2 -2
  128. package/{src → bin/src}/models/programme-card/i-tracked-link.js.map +0 -0
  129. package/{src → bin/src}/models/programme-card/i-tracking.d.ts +46 -46
  130. package/{src → bin/src}/models/programme-card/i-tracking.js +2 -2
  131. package/{src → bin/src}/models/programme-card/i-tracking.js.map +0 -0
  132. package/{src → bin/src}/models/programme-card/programme-card-client.d.ts +7 -7
  133. package/{src → bin/src}/models/programme-card/programme-card-client.js +16 -16
  134. package/{src → bin/src}/models/programme-card/programme-card-client.js.map +0 -0
  135. package/{src → bin/src}/models/search-country-faq/i-search-country-faq.d.ts +18 -18
  136. package/{src → bin/src}/models/search-country-faq/i-search-country-faq.js +2 -2
  137. package/{src → bin/src}/models/search-country-faq/i-search-country-faq.js.map +0 -0
  138. package/{src → bin/src}/models/search-country-faq/public-search-country-faq-client.d.ts +7 -7
  139. package/{src → bin/src}/models/search-country-faq/public-search-country-faq-client.js +16 -16
  140. package/{src → bin/src}/models/search-country-faq/public-search-country-faq-client.js.map +0 -0
  141. package/{src → bin/src}/models/search-projection/i-geo-targeting-configuration.d.ts +38 -38
  142. package/{src → bin/src}/models/search-projection/i-geo-targeting-configuration.js +2 -2
  143. package/{src → bin/src}/models/search-projection/i-geo-targeting-configuration.js.map +0 -0
  144. package/{src → bin/src}/models/search-projection/i-geo-targeting-values.d.ts +30 -30
  145. package/{src → bin/src}/models/search-projection/i-geo-targeting-values.js +2 -2
  146. package/{src → bin/src}/models/search-projection/i-geo-targeting-values.js.map +0 -0
  147. package/{src → bin/src}/models/search-projection/i-organisation-values.d.ts +40 -40
  148. package/{src → bin/src}/models/search-projection/i-organisation-values.js +2 -2
  149. package/{src → bin/src}/models/search-projection/i-organisation-values.js.map +0 -0
  150. package/{src → bin/src}/models/search-projection/i-premium-values.d.ts +35 -35
  151. package/{src → bin/src}/models/search-projection/i-premium-values.js +2 -2
  152. package/{src → bin/src}/models/search-projection/i-premium-values.js.map +0 -0
  153. package/{src → bin/src}/models/search-projection/i-search-projection.d.ts +180 -180
  154. package/{src → bin/src}/models/search-projection/i-search-projection.js +2 -2
  155. package/{src → bin/src}/models/search-projection/i-search-projection.js.map +0 -0
  156. package/{src → bin/src}/models/search-projection/i-tuition-values.d.ts +50 -50
  157. package/{src → bin/src}/models/search-projection/i-tuition-values.js +2 -2
  158. package/{src → bin/src}/models/search-projection/i-tuition-values.js.map +0 -0
  159. package/{src → bin/src}/models/search-projection/search-projection-client.d.ts +7 -7
  160. package/{src → bin/src}/models/search-projection/search-projection-client.js +16 -16
  161. package/{src → bin/src}/models/search-projection/search-projection-client.js.map +0 -0
  162. package/{src → bin/src}/types/portal-map.d.ts +2 -2
  163. package/{src → bin/src}/types/portal-map.js +2 -2
  164. package/{src → bin/src}/types/portal-map.js.map +0 -0
  165. package/{src → bin/src}/types/portal-type.d.ts +7 -7
  166. package/{src → bin/src}/types/portal-type.js +11 -11
  167. package/{src → bin/src}/types/portal-type.js.map +0 -0
  168. package/{src → bin/src}/types.d.ts +4 -4
  169. package/{src → bin/src}/types.js +2 -2
  170. package/{src → bin/src}/types.js.map +0 -0
  171. package/index.ts +91 -0
  172. package/package.json +1 -1
  173. package/src/domain-client.ts +70 -0
  174. package/src/exceptions/bad-request-exception.ts +2 -0
  175. package/src/exceptions/client-exception.ts +2 -0
  176. package/src/exceptions/internal-server-exception.ts +2 -0
  177. package/src/exceptions/not-found-exception.ts +2 -0
  178. package/src/exceptions/property-not-available-exception.ts +2 -0
  179. package/src/factories/DateFactory.ts +8 -0
  180. package/src/factories/InternalLinkFactory.ts +27 -0
  181. package/src/i-api-response.ts +7 -0
  182. package/src/i-class-factory.ts +5 -0
  183. package/src/i-model-description.ts +13 -0
  184. package/src/model-client.ts +77 -0
  185. package/src/model-factory.ts +94 -0
  186. package/src/models/bestfit-programme/bestfit-programme-client.ts +16 -0
  187. package/src/models/bestfit-programme/i-best-fit-programme.ts +102 -0
  188. package/src/models/bestfit-programme/i-g-p-a-requirement.ts +23 -0
  189. package/src/models/bestfit-programme/i-living-cost.ts +23 -0
  190. package/src/models/common/i-city.ts +16 -0
  191. package/src/models/common/i-country.ts +16 -0
  192. package/src/models/common/i-english-requirements.ts +38 -0
  193. package/src/models/common/i-internal-link.ts +32 -0
  194. package/src/models/common/i-logo.ts +16 -0
  195. package/src/models/common/i-tuition-fee.ts +57 -0
  196. package/src/models/dotdigital-organisation/dotdigital-organisation-client.ts +16 -0
  197. package/src/models/dotdigital-organisation/i-dot-digital-organisation.ts +59 -0
  198. package/src/models/dotdigital-organisation/i-review.ts +12 -0
  199. package/src/models/dotdigital-programme/dotdigital-programme-client.ts +16 -0
  200. package/src/models/dotdigital-programme/i-dot-digital-programme.ts +108 -0
  201. package/src/models/programme-card/i-click-tracking-data.ts +8 -0
  202. package/src/models/programme-card/i-cover.ts +16 -0
  203. package/src/models/programme-card/i-deadline.ts +23 -0
  204. package/src/models/programme-card/i-duration.ts +46 -0
  205. package/src/models/programme-card/i-link.ts +25 -0
  206. package/src/models/programme-card/i-location.ts +12 -0
  207. package/src/models/programme-card/i-optional-link.ts +27 -0
  208. package/src/models/programme-card/i-programme-card.ts +152 -0
  209. package/src/models/programme-card/i-start-date.ts +39 -0
  210. package/src/models/programme-card/i-timing.ts +53 -0
  211. package/src/models/programme-card/i-tracked-link.ts +34 -0
  212. package/src/models/programme-card/i-tracking.ts +55 -0
  213. package/src/models/programme-card/programme-card-client.ts +16 -0
  214. package/src/models/search-country-faq/i-search-country-faq.ts +22 -0
  215. package/src/models/search-country-faq/public-search-country-faq-client.ts +16 -0
  216. package/src/models/search-projection/i-geo-targeting-configuration.ts +44 -0
  217. package/src/models/search-projection/i-geo-targeting-values.ts +38 -0
  218. package/src/models/search-projection/i-organisation-values.ts +46 -0
  219. package/src/models/search-projection/i-premium-values.ts +43 -0
  220. package/src/models/search-projection/i-search-projection.ts +216 -0
  221. package/src/models/search-projection/i-tuition-values.ts +63 -0
  222. package/src/models/search-projection/search-projection-client.ts +16 -0
  223. package/src/types/portal-map.ts +3 -0
  224. package/src/types/portal-type.ts +7 -0
  225. package/src/types.ts +4 -0
  226. package/tsconfig.json +39 -0
@@ -0,0 +1,53 @@
1
+ import { IDeadline, IStartDate } from "../../..";
2
+
3
+ export interface ITiming {
4
+
5
+ /**
6
+ * Get the IDeadline applicable for this type and programme.
7
+ *
8
+ * Note: In case of extendable start dates, all information in the
9
+ * Deadline object has already been extended to the first available start
10
+ * date.
11
+ *
12
+ * @return IDeadline
13
+ * @throws PropertyNotAvailableException
14
+ */
15
+ getDeadline(): IDeadline;
16
+
17
+ canShowDeadline(): boolean;
18
+
19
+ /**
20
+ * Get the IStartDate applicable for this type and programme.
21
+ *
22
+ * Note: In case of extendable start dates, all information in the
23
+ * StartDate objects has already been extended to the first available start
24
+ * date.
25
+ *
26
+ * @return IStartDate
27
+ * @throws PropertyNotAvailableException
28
+ */
29
+ getStartDate(): IStartDate;
30
+
31
+ canShowStartDate(): boolean;
32
+
33
+ /**
34
+ * Type of user the timing is applicable to (e.g. general, eea, national).
35
+ *
36
+ * @return string
37
+ */
38
+ getType(): string;
39
+
40
+ /**
41
+ * True if the programme allows to apply at any time (rolling application).
42
+ *
43
+ * @return boolean
44
+ */
45
+ isApplyingAnytime(): boolean;
46
+
47
+ /**
48
+ * True if the programme can start at any time (rolling admission).
49
+ *
50
+ * @return boolean
51
+ */
52
+ isStartingAnytime(): boolean;
53
+ }
@@ -0,0 +1,34 @@
1
+ import { ITracking } from "../../..";
2
+
3
+ export interface ITrackedLink {
4
+
5
+ /**
6
+ * Get an optional text describing the link (typically <a>-tags contents).
7
+ *
8
+ * @return string
9
+ * @throws PropertyNotAvailableException
10
+ */
11
+ getDescription(): string;
12
+
13
+ canShowDescription(): boolean;
14
+
15
+ /**
16
+ * Get an object containing all information needed to properly track a link.
17
+ *
18
+ * @return ITracking
19
+ */
20
+ getTracking(): ITracking;
21
+
22
+ /**
23
+ * Get the url to refer to.
24
+ *
25
+ * Note that the url provided is always a relative URL. A base URL is needed
26
+ * to make it a full valid path.
27
+ * The only exception is when an external link is provided (meaning, outside
28
+ * of StudyPortals-maintained domains). In this case a full url will be
29
+ * provided.
30
+ *
31
+ * @return string
32
+ */
33
+ getUrl(): string;
34
+ }
@@ -0,0 +1,55 @@
1
+ import { IClickTrackingData } from "../../..";
2
+
3
+ export interface ITracking {
4
+
5
+ /**
6
+ * Get the value of the data-action attribute.
7
+ *
8
+ * @return string
9
+ */
10
+ getAction(): string;
11
+
12
+ /**
13
+ * Get all the data that is need to make click tracking possible
14
+ *
15
+ * @return IClickTrackingData
16
+ */
17
+ getClickTrackingData(): IClickTrackingData;
18
+
19
+ canShowClickTrackingData(): boolean;
20
+
21
+ /**
22
+ * Get the value of the data-description attribute.
23
+ *
24
+ * @return string
25
+ */
26
+ getDescription(): string;
27
+
28
+ /**
29
+ * Get the extra information value.
30
+ *
31
+ * @return string
32
+ */
33
+ getExtra(): string;
34
+
35
+ /**
36
+ * Get the value of the data-id attribute.
37
+ *
38
+ * @return number
39
+ */
40
+ getId(): number;
41
+
42
+ /**
43
+ * Get the value of the data-label attribute.
44
+ *
45
+ * @return string
46
+ */
47
+ getLabel(): string;
48
+
49
+ /**
50
+ * Get the value of the data-type attribute.
51
+ *
52
+ * @return string
53
+ */
54
+ getType(): string;
55
+ }
@@ -0,0 +1,16 @@
1
+ import { IProgrammeCard } from "../../..";
2
+ import { ModelClient } from "../../model-client";
3
+
4
+ export class ProgrammeCardClient extends ModelClient<IProgrammeCard> {
5
+ protected getModelName(): string {
6
+ return 'programme-card';
7
+ }
8
+
9
+ protected getVersion(): string {
10
+ return 'v1';
11
+ }
12
+
13
+ public isPublic(): boolean {
14
+ return false;
15
+ }
16
+ }
@@ -0,0 +1,22 @@
1
+ export interface ISearchCountryFaq {
2
+
3
+ /**
4
+ * @return number
5
+ */
6
+ getId(): number;
7
+
8
+ /**
9
+ * @return string
10
+ */
11
+ getName(): string;
12
+
13
+ /**
14
+ * @return string
15
+ */
16
+ getRankingCountryLink(): string;
17
+
18
+ /**
19
+ * @return string[]
20
+ */
21
+ getTopFiveUniversities(): string[];
22
+ }
@@ -0,0 +1,16 @@
1
+ import { ISearchCountryFaq } from "../../..";
2
+ import { ModelClient } from "../../model-client";
3
+
4
+ export class PublicSearchCountryFaqClient extends ModelClient<ISearchCountryFaq> {
5
+ protected getModelName(): string {
6
+ return 'search-country-faq';
7
+ }
8
+
9
+ protected getVersion(): string {
10
+ return 'v1';
11
+ }
12
+
13
+ public isPublic(): boolean {
14
+ return true;
15
+ }
16
+ }
@@ -0,0 +1,44 @@
1
+ export interface IGeoTargetingConfiguration {
2
+
3
+ /**
4
+ * Bit set 1 of targeted country ID information.
5
+ *
6
+ * @return number
7
+ */
8
+ getBit1(): number;
9
+
10
+ /**
11
+ * Bit set 2 of targeted country ID information.
12
+ *
13
+ * @return number
14
+ */
15
+ getBit2(): number;
16
+
17
+ /**
18
+ * Bit set 3 of targeted country ID information.
19
+ *
20
+ * @return number
21
+ */
22
+ getBit3(): number;
23
+
24
+ /**
25
+ * Bit set 4 of targeted country ID information.
26
+ *
27
+ * @return number
28
+ */
29
+ getBit4(): number;
30
+
31
+ /**
32
+ * Bit set 5 of targeted country ID information.
33
+ *
34
+ * @return number
35
+ */
36
+ getBit5(): number;
37
+
38
+ /**
39
+ * List of all configured country IDs.
40
+ *
41
+ * @return number[]
42
+ */
43
+ getTargetedCountries(): number[];
44
+ }
@@ -0,0 +1,38 @@
1
+ import { IGeoTargetingConfiguration } from "../../..";
2
+
3
+ export interface IGeoTargetingValues {
4
+
5
+ /**
6
+ * Geo-targeting configuration for "light premium" listing.
7
+ *
8
+ * @return IGeoTargetingConfiguration
9
+ */
10
+ getLightPremium(): IGeoTargetingConfiguration;
11
+
12
+ canShowLightPremium(): boolean;
13
+
14
+ /**
15
+ * Geo-targeting configuration for "premium" listing.
16
+ *
17
+ * @return IGeoTargetingConfiguration
18
+ */
19
+ getPremium(): IGeoTargetingConfiguration;
20
+
21
+ canShowPremium(): boolean;
22
+
23
+ /**
24
+ * Geo-targeting configuration for "super premium" listing.
25
+ *
26
+ * @return IGeoTargetingConfiguration
27
+ */
28
+ getSuperPremium(): IGeoTargetingConfiguration;
29
+
30
+ canShowSuperPremium(): boolean;
31
+
32
+ /**
33
+ * Programme has active geo-targeting settings.
34
+ *
35
+ * @return boolean
36
+ */
37
+ isGeoTargeted(): boolean;
38
+ }
@@ -0,0 +1,46 @@
1
+ export interface IOrganisationValues {
2
+
3
+ /**
4
+ * Country ID of the top level organisation.
5
+ *
6
+ * @return number
7
+ */
8
+ getCountryId(): number;
9
+
10
+ /**
11
+ * ID of the programme's main organisation.
12
+ *
13
+ * First premium organisation or top level organisation.
14
+ *
15
+ * @return number
16
+ */
17
+ getId(): number;
18
+
19
+ /**
20
+ * Name of the programme's main organisation.
21
+ *
22
+ * First premium organisation or top level organisation.
23
+ *
24
+ * @return string
25
+ */
26
+ getName(): string;
27
+
28
+ /**
29
+ * List of all organisation IDs attached to the programme (main + sub).
30
+ *
31
+ * @return number[]
32
+ */
33
+ getOrganisations(): number[];
34
+
35
+ /**
36
+ * Region ID of the top level organisation.
37
+ *
38
+ * Currently only possible region ID is 38 (EEA region). All other regions
39
+ * are ignored for this field.
40
+ *
41
+ * @return number
42
+ */
43
+ getRegionId(): number;
44
+
45
+ canShowRegionId(): boolean;
46
+ }
@@ -0,0 +1,43 @@
1
+ export interface IPremiumValues {
2
+
3
+ /**
4
+ * Bottom of the premium probability range (between 0.0 asn 1.0).
5
+ *
6
+ * @return number
7
+ */
8
+ getPremiumBottom(): number;
9
+
10
+ canShowPremiumBottom(): boolean;
11
+
12
+ /**
13
+ * CPM value attached to the premium listing.
14
+ *
15
+ * @return number
16
+ */
17
+ getPremiumCpm(): number;
18
+
19
+ canShowPremiumCpm(): boolean;
20
+
21
+ /**
22
+ * Top of the premium probability range (between 0.0 asn 1.0).
23
+ *
24
+ * @return number
25
+ */
26
+ getPremiumTop(): number;
27
+
28
+ canShowPremiumTop(): boolean;
29
+
30
+ /**
31
+ * Short hand premium type (sp, p, lp, slp, sslp, b).
32
+ *
33
+ * @return string
34
+ */
35
+ getPremiumType(): string;
36
+
37
+ /**
38
+ * Premium weight value used in Cloudsearch commercial sorting.
39
+ *
40
+ * @return number
41
+ */
42
+ getPremiumValue(): number;
43
+ }
@@ -0,0 +1,216 @@
1
+ import { IGeoTargetingValues, IOrganisationValues, IPremiumValues, ITuitionValues } from "../../..";
2
+
3
+ export interface ISearchProjection {
4
+
5
+ /**
6
+ * List of area IDs where the programme is taught at (through venues).
7
+ *
8
+ * @return number[]
9
+ */
10
+ getAreas(): number[];
11
+
12
+ /**
13
+ * Current boost value for the programme (campaign automation).
14
+ *
15
+ * @return number
16
+ */
17
+ getBoost(): number;
18
+
19
+ /**
20
+ * Contents text of the programme (stripped of html tags).
21
+ *
22
+ * @return string
23
+ */
24
+ getContents(): string;
25
+
26
+ /**
27
+ * List of country IDs where the programme is taught at (through venues).
28
+ *
29
+ * @return number[]
30
+ */
31
+ getCountries(): number[];
32
+
33
+ /**
34
+ * Unformatted degree of the programme.
35
+ *
36
+ * @return string
37
+ */
38
+ getDegree(): string;
39
+
40
+ /**
41
+ * Formatted degree of the programme.
42
+ *
43
+ * @return string
44
+ */
45
+ getDegreeFormatted(): string;
46
+
47
+ /**
48
+ * List of intensity densities of the programme.
49
+ *
50
+ * @return string[]
51
+ */
52
+ getDensity(): string[];
53
+
54
+ /**
55
+ * Description text of the programme (stripped of html tags).
56
+ *
57
+ * @return string
58
+ */
59
+ getDescription(): string;
60
+
61
+ /**
62
+ * List of disciplines connected to the programme (includes parent IDs).
63
+ *
64
+ * @return number[]
65
+ */
66
+ getDisciplines(): number[];
67
+
68
+ /**
69
+ * List of educational forms.
70
+ *
71
+ * @return string[]
72
+ */
73
+ getEducationalForms(): string[];
74
+
75
+ /**
76
+ * Full time duration in days.
77
+ *
78
+ * @return number
79
+ */
80
+ getFullTimeDuration(): number;
81
+
82
+ canShowFullTimeDuration(): boolean;
83
+
84
+ getGeoTargetingValues(): IGeoTargetingValues;
85
+
86
+ /**
87
+ * Id of the programme.
88
+ *
89
+ * @return number
90
+ */
91
+ getId(): number;
92
+
93
+ /**
94
+ * List of language IDs the programme is taught in.
95
+ *
96
+ * @return number[]
97
+ */
98
+ getLanguages(): number[];
99
+
100
+ /**
101
+ * Study level of the programme.
102
+ *
103
+ * @return string
104
+ */
105
+ getLevel(): string;
106
+
107
+ /**
108
+ * Url of the logo to display (square if available, legacy otherwise).
109
+ *
110
+ * @return string
111
+ */
112
+ getLogo(): string;
113
+
114
+ canShowLogo(): boolean;
115
+
116
+ /**
117
+ * Url of the legacy logo to display.
118
+ *
119
+ * @return string
120
+ */
121
+ getLogoOld(): string;
122
+
123
+ canShowLogoOld(): boolean;
124
+
125
+ /**
126
+ * List of study methods.
127
+ *
128
+ * @return string[]
129
+ */
130
+ getMethods(): string[];
131
+
132
+ getOrganisationValues(): IOrganisationValues;
133
+
134
+ /**
135
+ * Part time duration in days.
136
+ *
137
+ * @return number
138
+ */
139
+ getPartTimeDuration(): number;
140
+
141
+ canShowPartTimeDuration(): boolean;
142
+
143
+ getPremiumValues(): IPremiumValues;
144
+
145
+ /**
146
+ * The programme's probability seed value (previously known as 'entropy').
147
+ *
148
+ * Should be a value between 0 and 4095.
149
+ *
150
+ * @return number
151
+ */
152
+ getProbabilitySeed(): number;
153
+
154
+ /**
155
+ * List of region IDs where the programme is taught at (through venues).
156
+ *
157
+ * Includes both the direct regions as the parent regions.
158
+ *
159
+ * @return number[]
160
+ */
161
+ getRegions(): number[];
162
+
163
+ /**
164
+ * List of special programme types (executive, joint, erasmus).
165
+ *
166
+ * @return string[]
167
+ */
168
+ getSpecialStudy(): string[];
169
+
170
+ /**
171
+ * List of the start months for the programme.
172
+ *
173
+ * @return number[]
174
+ */
175
+ getStartDates(): number[];
176
+
177
+ /**
178
+ * Summary text of the programme (stripped of html tags).
179
+ *
180
+ * @return string
181
+ */
182
+ getSummary(): string;
183
+
184
+ /**
185
+ * Title of the programme.
186
+ *
187
+ * @return string
188
+ */
189
+ getTitle(): string;
190
+
191
+ getTuitionValues(): ITuitionValues;
192
+
193
+ canShowTuitionValues(): boolean;
194
+
195
+ /**
196
+ * List of json encoded venue descriptions.
197
+ *
198
+ * Example of structure:
199
+ * {
200
+ *'city': 'Eindhoven',
201
+ *'country': 'Netherlands',
202
+ *'area': 'North Brabant',
203
+ *'display_area': true
204
+ * }
205
+ *
206
+ * @return string[]
207
+ */
208
+ getVenues(): string[];
209
+
210
+ /**
211
+ * Public status of the programme.
212
+ *
213
+ * @return boolean
214
+ */
215
+ isPublic(): boolean;
216
+ }
@@ -0,0 +1,63 @@
1
+ export interface ITuitionValues {
2
+
3
+ /**
4
+ * Tuition (converted to per year if possible) for EEA students.
5
+ *
6
+ * @return number
7
+ */
8
+ getTuitionEea(): number;
9
+
10
+ canShowTuitionEea(): boolean;
11
+
12
+ /**
13
+ * Tuition currency.
14
+ *
15
+ * @return number
16
+ */
17
+ getTuitionEeaCurrency(): number;
18
+
19
+ canShowTuitionEeaCurrency(): boolean;
20
+
21
+ /**
22
+ * Tuition (converted to per year if possible) for international students.
23
+ *
24
+ * @return number
25
+ */
26
+ getTuitionInternational(): number;
27
+
28
+ canShowTuitionInternational(): boolean;
29
+
30
+ /**
31
+ * Tuition currency.
32
+ *
33
+ * @return number
34
+ */
35
+ getTuitionInternationalCurrency(): number;
36
+
37
+ canShowTuitionInternationalCurrency(): boolean;
38
+
39
+ /**
40
+ * Tuition (converted to per year if possible) for national students.
41
+ *
42
+ * @return number
43
+ */
44
+ getTuitionNational(): number;
45
+
46
+ canShowTuitionNational(): boolean;
47
+
48
+ /**
49
+ * Tuition currency.
50
+ *
51
+ * @return number
52
+ */
53
+ getTuitionNationalCurrency(): number;
54
+
55
+ canShowTuitionNationalCurrency(): boolean;
56
+
57
+ /**
58
+ * Unit all tuition fees are provided in.
59
+ *
60
+ * @return number
61
+ */
62
+ getTuitionUnitType(): number;
63
+ }
@@ -0,0 +1,16 @@
1
+ import { ISearchProjection } from "../../..";
2
+ import { ModelClient } from "../../model-client";
3
+
4
+ export class SearchProjectionClient extends ModelClient<ISearchProjection> {
5
+ protected getModelName(): string {
6
+ return 'search-projection';
7
+ }
8
+
9
+ protected getVersion(): string {
10
+ return 'v1';
11
+ }
12
+
13
+ public isPublic(): boolean {
14
+ return false;
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ import { PortalType } from "./portal-type";
2
+
3
+ export type PortalMap = Map<PortalType, string>
@@ -0,0 +1,7 @@
1
+ export enum PortalType {
2
+ MASTER= 'master',
3
+ BACHELOR = 'bachelor',
4
+ PHD = 'phd',
5
+ SHORT = 'short',
6
+ DISTANCE_LEARNING = 'distance_learning',
7
+ }
package/src/types.ts ADDED
@@ -0,0 +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;