@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,32 @@
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
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,57 @@
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
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,59 @@
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
+ }
@@ -0,0 +1,12 @@
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
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,108 @@
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
+ }
@@ -0,0 +1,8 @@
1
+ export interface IClickTrackingData {
2
+
3
+ getAction(): string;
4
+
5
+ getCategory(): string;
6
+
7
+ getLabel(): string;
8
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,23 @@
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
+ }
@@ -0,0 +1,46 @@
1
+ export interface IDuration {
2
+
3
+ /**
4
+ * Get the amount of periods the programme takes to complete.
5
+ *
6
+ * Note: Durations of more than 70 days (with period === 'days') are
7
+ * automatically calculated back to an amount of months.
8
+ *
9
+ * @return number
10
+ */
11
+ getAmount(): number;
12
+
13
+ /**
14
+ * Get an optional textual description of the duration.
15
+ *
16
+ * @return string
17
+ * @throws PropertyNotAvailableException
18
+ */
19
+ getDescription(): string;
20
+
21
+ canShowDescription(): boolean;
22
+
23
+ /**
24
+ * Get the original duration amount before any calculations.
25
+ *
26
+ * @return number
27
+ */
28
+ getOriginalDuration(): number;
29
+
30
+ /**
31
+ * Get the original duration period before any calculations.
32
+ *
33
+ * @return string
34
+ */
35
+ getOriginalPeriod(): string;
36
+
37
+ /**
38
+ * Get the period this duration is provided in (days or months).
39
+ *
40
+ * Note: Durations of more than 70 days (with period === 'days') are
41
+ * automatically calculated back to an amount of months.
42
+ *
43
+ * @return string
44
+ */
45
+ getPeriod(): string;
46
+ }
@@ -0,0 +1,25 @@
1
+ export interface ILink {
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
+ * Get the url to refer to.
15
+ *
16
+ * Note that the url provided is always a relative URL. A base URL is needed
17
+ * to make it a full valid path.
18
+ * The only exception is when an external link is provided (meaning, outside
19
+ * of StudyPortals-maintained domains). In this case a full url will be
20
+ * provided.
21
+ *
22
+ * @return string
23
+ */
24
+ getUrl(): string;
25
+ }
@@ -0,0 +1,12 @@
1
+ import { IOptionalLink } from "../../..";
2
+
3
+ export interface ILocation {
4
+
5
+ getArea(): IOptionalLink;
6
+
7
+ canShowArea(): boolean;
8
+
9
+ getCity(): IOptionalLink;
10
+
11
+ getCountry(): IOptionalLink;
12
+ }
@@ -0,0 +1,27 @@
1
+ export interface IOptionalLink {
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
+ * Get the url to refer to.
15
+ *
16
+ * Note that the url provided is always a relative URL. A base URL is needed
17
+ * to make it a full valid path.
18
+ * The only exception is when an external link is provided (meaning, outside
19
+ * of StudyPortals-maintained domains). In this case a full url will be
20
+ * provided.
21
+ *
22
+ * @return string
23
+ */
24
+ getUrl(): string;
25
+
26
+ canShowUrl(): boolean;
27
+ }
@@ -0,0 +1,152 @@
1
+ import { ICover, IDuration, IInternalLink, ILink, ILocation, ILogo, ITiming, ITrackedLink, ITracking, ITuitionFee } from "../../..";
2
+
3
+ export interface IProgrammeCard {
4
+
5
+ /**
6
+ * Get the Cover of the programme if available.
7
+ *
8
+ * @return ICover
9
+ */
10
+ getCover(): ICover;
11
+
12
+ canShowCover(): boolean;
13
+
14
+ /**
15
+ * Get the degree name of the programme.
16
+ *
17
+ * @return string
18
+ */
19
+ getDegree(): string;
20
+
21
+ /**
22
+ * Get duration of the programme.
23
+ *
24
+ * @return IDuration
25
+ */
26
+ getDuration(): IDuration;
27
+
28
+ canShowDuration(): boolean;
29
+
30
+ /**
31
+ * Get the programme id.
32
+ *
33
+ * @return number
34
+ */
35
+ getId(): number;
36
+
37
+ /**
38
+ * Get the programme level.
39
+ *
40
+ * @return string
41
+ */
42
+ getLevel(): string;
43
+
44
+ /**
45
+ * Get the locaiton the programme is located in.
46
+ *
47
+ * Uses the country based on the programmes venues.
48
+ *
49
+ * @return ILocation
50
+ */
51
+ getLocation(): ILocation;
52
+
53
+ canShowLocation(): boolean;
54
+
55
+ /**
56
+ * Get the Logo of the programme if available.
57
+ *
58
+ * @return ILogo
59
+ */
60
+ getLogo(): ILogo;
61
+
62
+ canShowLogo(): boolean;
63
+
64
+ /**
65
+ * Returns premium type
66
+ * Such as Super premium, premium, light, etc..
67
+ *
68
+ * @return string
69
+ */
70
+ getPremiumType(): string;
71
+
72
+ /**
73
+ * Get a link to the programme page.
74
+ *
75
+ * The link contains the page path as url and the programme name as the
76
+ * link description.
77
+ *
78
+ * @return IInternalLink
79
+ */
80
+ getProgrammeLink(): IInternalLink;
81
+
82
+ /**
83
+ * Get programme's referral link
84
+ *
85
+ * @return ITrackedLink
86
+ */
87
+ getReferralLink(): ITrackedLink;
88
+
89
+ canShowReferralLink(): boolean;
90
+
91
+ /**
92
+ * Get the summary of the programme.
93
+ *
94
+ * @return string
95
+ */
96
+ getSummary(): string;
97
+
98
+ /**
99
+ * Get all start dates
100
+ *
101
+ * @return ITiming[]
102
+ */
103
+ getTimings(): ITiming[];
104
+
105
+ canShowTimings(): boolean;
106
+
107
+ /**
108
+ * Get the programme title.
109
+ *
110
+ * @return string
111
+ */
112
+ getTitle(): string;
113
+
114
+ /**
115
+ * Get the tracking information needed to track the impression on the card.
116
+ *
117
+ * @return ITracking
118
+ */
119
+ getTracking(): ITracking;
120
+
121
+ /**
122
+ * Get all tuition fees of the programme.
123
+ * @return ITuitionFee[]
124
+ */
125
+ getTuitionFees(): ITuitionFee[];
126
+
127
+ canShowTuitionFees(): boolean;
128
+
129
+ /**
130
+ * Get the programme's university id
131
+ *
132
+ * @return number
133
+ */
134
+ getUniversityId(): number;
135
+
136
+ /**
137
+ * Get a link to the programme's university page.
138
+ *
139
+ * The link contains the page path as url and the university name as the
140
+ * link description.
141
+ *
142
+ * @return ILink
143
+ */
144
+ getUniversityLink(): ILink;
145
+
146
+ /**
147
+ * Public status of the programme.
148
+ *
149
+ * @return boolean
150
+ */
151
+ isPublic(): boolean;
152
+ }
@@ -0,0 +1,39 @@
1
+ import { IDeadline } from "../../..";
2
+
3
+ export interface IStartDate {
4
+
5
+ /**
6
+ * Get the date the programme starts on.
7
+ *
8
+ * @return Date
9
+ */
10
+ getDate(): Date;
11
+
12
+ /**
13
+ * Get a list of deadlines that apply to this start date.
14
+ *
15
+ * Note: In case of extendable start dates, all information in the
16
+ * Deadline objects has already been extended to the first available start
17
+ * date.
18
+ *
19
+ * @return IDeadline[]
20
+ * @throws PropertyNotAvailableException
21
+ */
22
+ getDeadlines(): IDeadline[];
23
+
24
+ canShowDeadlines(): boolean;
25
+
26
+ /**
27
+ * True if you can apply at any time for this programme (rolling admission)
28
+ *
29
+ * @return boolean
30
+ */
31
+ isApplyingAnytime(): boolean;
32
+
33
+ /**
34
+ * True if the start date has passed (you can't start at this date anymore).
35
+ *
36
+ * @return boolean
37
+ */
38
+ isPassed(): boolean;
39
+ }