@studyportals/domain-client 3.6.0-2 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{bin/index.d.ts → index.d.ts} +0 -0
- package/{bin/index.js → index.js} +0 -0
- package/{bin/index.js.map → index.js.map} +0 -0
- package/package.json +14 -14
- package/{bin/src → src}/domain-client.d.ts +0 -0
- package/{bin/src → src}/domain-client.js +0 -0
- package/{bin/src → src}/domain-client.js.map +0 -0
- package/{bin/src → src}/exceptions/bad-request-exception.d.ts +0 -0
- package/{bin/src → src}/exceptions/bad-request-exception.js +0 -0
- package/{bin/src → src}/exceptions/bad-request-exception.js.map +0 -0
- package/{bin/src → src}/exceptions/client-exception.d.ts +0 -0
- package/{bin/src → src}/exceptions/client-exception.js +0 -0
- package/{bin/src → src}/exceptions/client-exception.js.map +0 -0
- package/{bin/src → src}/exceptions/internal-server-exception.d.ts +0 -0
- package/{bin/src → src}/exceptions/internal-server-exception.js +0 -0
- package/{bin/src → src}/exceptions/internal-server-exception.js.map +0 -0
- package/{bin/src → src}/exceptions/not-found-exception.d.ts +0 -0
- package/{bin/src → src}/exceptions/not-found-exception.js +0 -0
- package/{bin/src → src}/exceptions/not-found-exception.js.map +0 -0
- package/{bin/src → src}/exceptions/property-not-available-exception.d.ts +0 -0
- package/{bin/src → src}/exceptions/property-not-available-exception.js +0 -0
- package/{bin/src → src}/exceptions/property-not-available-exception.js.map +0 -0
- package/{bin/src → src}/factories/DateFactory.d.ts +0 -0
- package/{bin/src → src}/factories/DateFactory.js +0 -0
- package/{bin/src → src}/factories/DateFactory.js.map +0 -0
- package/{bin/src → src}/factories/InternalLinkFactory.d.ts +0 -0
- package/{bin/src → src}/factories/InternalLinkFactory.js +0 -0
- package/{bin/src → src}/factories/InternalLinkFactory.js.map +1 -1
- package/{bin/src → src}/i-api-response.d.ts +0 -0
- package/{bin/src → src}/i-api-response.js +0 -0
- package/{bin/src → src}/i-api-response.js.map +0 -0
- package/{bin/src → src}/i-class-factory.d.ts +0 -0
- package/{bin/src → src}/i-class-factory.js +0 -0
- package/{bin/src → src}/i-class-factory.js.map +0 -0
- package/{bin/src → src}/i-model-description.d.ts +0 -0
- package/{bin/src → src}/i-model-description.js +0 -0
- package/{bin/src → src}/i-model-description.js.map +0 -0
- package/{bin/src → src}/model-client.d.ts +0 -0
- package/{bin/src → src}/model-client.js +0 -0
- package/{bin/src → src}/model-client.js.map +0 -0
- package/{bin/src → src}/model-factory.d.ts +0 -0
- package/{bin/src → src}/model-factory.js +2 -2
- package/{bin/src → src}/model-factory.js.map +1 -1
- package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.d.ts +0 -0
- package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js +0 -0
- package/{bin/src → src}/models/bestfit-programme/bestfit-programme-client.js.map +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.d.ts +2 -2
- package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-best-fit-programme.js.map +0 -0
- package/{bin/src/models/common → src/models/bestfit-programme}/i-city.d.ts +0 -0
- package/{bin/src/models/common → src/models/bestfit-programme}/i-city.js +0 -0
- package/src/models/bestfit-programme/i-city.js.map +1 -0
- package/src/models/bestfit-programme/i-english-requirements.d.ts +37 -0
- package/{bin/src/models/common → src/models/bestfit-programme}/i-english-requirements.js +0 -0
- package/src/models/bestfit-programme/i-english-requirements.js.map +1 -0
- package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.d.ts +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.js +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-g-p-a-requirement.js.map +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-living-cost.d.ts +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-living-cost.js +0 -0
- package/{bin/src → src}/models/bestfit-programme/i-living-cost.js.map +0 -0
- package/{bin/src/models/common → src/models/bestfit-programme}/i-tuition-fee.d.ts +0 -0
- package/{bin/src/models/common → src/models/bestfit-programme}/i-tuition-fee.js +0 -0
- package/src/models/bestfit-programme/i-tuition-fee.js.map +1 -0
- package/src/models/common/i-city.d.ts +14 -0
- package/src/models/common/i-city.js +3 -0
- package/{bin/src → src}/models/common/i-city.js.map +0 -0
- package/{bin/src → src}/models/common/i-country.d.ts +0 -0
- package/{bin/src → src}/models/common/i-country.js +0 -0
- package/{bin/src → src}/models/common/i-country.js.map +0 -0
- package/{bin/src → src}/models/common/i-english-requirements.d.ts +0 -0
- package/src/models/common/i-english-requirements.js +3 -0
- package/{bin/src → src}/models/common/i-english-requirements.js.map +0 -0
- package/{bin/src → src}/models/common/i-internal-link.d.ts +0 -0
- package/{bin/src → src}/models/common/i-internal-link.js +0 -0
- package/{bin/src → src}/models/common/i-internal-link.js.map +0 -0
- package/{bin/src → src}/models/common/i-logo.d.ts +0 -0
- package/{bin/src → src}/models/common/i-logo.js +0 -0
- package/{bin/src → src}/models/common/i-logo.js.map +0 -0
- package/src/models/common/i-tuition-fee.d.ts +50 -0
- package/src/models/common/i-tuition-fee.js +3 -0
- package/{bin/src → src}/models/common/i-tuition-fee.js.map +0 -0
- package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.d.ts +0 -0
- package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js +0 -0
- package/{bin/src → src}/models/dotdigital-organisation/dotdigital-organisation-client.js.map +0 -0
- package/src/models/dotdigital-organisation/i-city.d.ts +14 -0
- package/src/models/dotdigital-organisation/i-city.js +3 -0
- package/src/models/dotdigital-organisation/i-city.js.map +1 -0
- package/src/models/dotdigital-organisation/i-country.d.ts +14 -0
- package/src/models/dotdigital-organisation/i-country.js +3 -0
- package/src/models/dotdigital-organisation/i-country.js.map +1 -0
- package/src/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +35 -0
- package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js +0 -0
- package/{bin/src → src}/models/dotdigital-organisation/i-dot-digital-organisation.js.map +0 -0
- package/src/models/dotdigital-organisation/i-review.d.ts +7 -0
- package/{bin/src → src}/models/dotdigital-organisation/i-review.js +0 -0
- package/{bin/src → src}/models/dotdigital-organisation/i-review.js.map +0 -0
- package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.d.ts +0 -0
- package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js +0 -0
- package/{bin/src → src}/models/dotdigital-programme/dotdigital-programme-client.js.map +0 -0
- package/src/models/dotdigital-programme/i-country.d.ts +14 -0
- package/src/models/dotdigital-programme/i-country.js +3 -0
- package/src/models/dotdigital-programme/i-country.js.map +1 -0
- package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.d.ts +0 -0
- package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js +0 -0
- package/{bin/src → src}/models/dotdigital-programme/i-dot-digital-programme.js.map +0 -0
- package/src/models/dotdigital-programme/i-english-requirements.d.ts +37 -0
- package/src/models/dotdigital-programme/i-english-requirements.js +3 -0
- package/src/models/dotdigital-programme/i-english-requirements.js.map +1 -0
- package/src/models/dotdigital-programme/i-internal-link.d.ts +28 -0
- package/src/models/dotdigital-programme/i-internal-link.js +3 -0
- package/src/models/dotdigital-programme/i-internal-link.js.map +1 -0
- package/src/models/dotdigital-programme/i-logo.d.ts +14 -0
- package/src/models/dotdigital-programme/i-logo.js +3 -0
- package/src/models/dotdigital-programme/i-logo.js.map +1 -0
- package/src/models/dotdigital-programme/i-tuition-fee.d.ts +50 -0
- package/src/models/dotdigital-programme/i-tuition-fee.js +3 -0
- package/src/models/dotdigital-programme/i-tuition-fee.js.map +1 -0
- package/{bin/src → src}/models/programme-card/i-click-tracking-data.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-click-tracking-data.js +0 -0
- package/{bin/src → src}/models/programme-card/i-click-tracking-data.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-cover.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-cover.js +0 -0
- package/{bin/src → src}/models/programme-card/i-cover.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-deadline.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-deadline.js +0 -0
- package/{bin/src → src}/models/programme-card/i-deadline.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-duration.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-duration.js +0 -0
- package/{bin/src → src}/models/programme-card/i-duration.js.map +0 -0
- package/src/models/programme-card/i-internal-link.d.ts +28 -0
- package/src/models/programme-card/i-internal-link.js +3 -0
- package/src/models/programme-card/i-internal-link.js.map +1 -0
- package/{bin/src → src}/models/programme-card/i-link.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-link.js +0 -0
- package/{bin/src → src}/models/programme-card/i-link.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-location.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-location.js +0 -0
- package/{bin/src → src}/models/programme-card/i-location.js.map +0 -0
- package/src/models/programme-card/i-logo.d.ts +14 -0
- package/src/models/programme-card/i-logo.js +3 -0
- package/src/models/programme-card/i-logo.js.map +1 -0
- package/{bin/src → src}/models/programme-card/i-optional-link.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-optional-link.js +0 -0
- package/{bin/src → src}/models/programme-card/i-optional-link.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-programme-card.d.ts +1 -0
- package/{bin/src → src}/models/programme-card/i-programme-card.js +0 -0
- package/{bin/src → src}/models/programme-card/i-programme-card.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-start-date.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-start-date.js +0 -0
- package/{bin/src → src}/models/programme-card/i-start-date.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-timing.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-timing.js +0 -0
- package/{bin/src → src}/models/programme-card/i-timing.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-tracked-link.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-tracked-link.js +0 -0
- package/{bin/src → src}/models/programme-card/i-tracked-link.js.map +0 -0
- package/{bin/src → src}/models/programme-card/i-tracking.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/i-tracking.js +0 -0
- package/{bin/src → src}/models/programme-card/i-tracking.js.map +0 -0
- package/src/models/programme-card/i-tuition-fee.d.ts +50 -0
- package/src/models/programme-card/i-tuition-fee.js +3 -0
- package/src/models/programme-card/i-tuition-fee.js.map +1 -0
- package/{bin/src → src}/models/programme-card/programme-card-client.d.ts +0 -0
- package/{bin/src → src}/models/programme-card/programme-card-client.js +0 -0
- package/{bin/src → src}/models/programme-card/programme-card-client.js.map +0 -0
- package/{bin/src → src}/models/search-country-faq/i-search-country-faq.d.ts +0 -0
- package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js +0 -0
- package/{bin/src → src}/models/search-country-faq/i-search-country-faq.js.map +0 -0
- package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.d.ts +0 -0
- package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js +0 -0
- package/{bin/src → src}/models/search-country-faq/public-search-country-faq-client.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-configuration.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-values.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js +0 -0
- package/{bin/src → src}/models/search-projection/i-geo-targeting-values.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-organisation-values.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-organisation-values.js +0 -0
- package/{bin/src → src}/models/search-projection/i-organisation-values.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-premium-values.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-premium-values.js +0 -0
- package/{bin/src → src}/models/search-projection/i-premium-values.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-search-projection.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-search-projection.js +0 -0
- package/{bin/src → src}/models/search-projection/i-search-projection.js.map +0 -0
- package/{bin/src → src}/models/search-projection/i-tuition-values.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/i-tuition-values.js +0 -0
- package/{bin/src → src}/models/search-projection/i-tuition-values.js.map +0 -0
- package/{bin/src → src}/models/search-projection/search-projection-client.d.ts +0 -0
- package/{bin/src → src}/models/search-projection/search-projection-client.js +0 -0
- package/{bin/src → src}/models/search-projection/search-projection-client.js.map +0 -0
- package/{bin/src → src}/types/portal-map.d.ts +0 -0
- package/{bin/src → src}/types/portal-map.js +0 -0
- package/{bin/src → src}/types/portal-map.js.map +0 -0
- package/{bin/src → src}/types/portal-type.d.ts +0 -0
- package/{bin/src → src}/types/portal-type.js +0 -0
- package/{bin/src → src}/types/portal-type.js.map +0 -0
- package/{bin/src → src}/types.d.ts +0 -0
- package/{bin/src → src}/types.js +0 -0
- package/{bin/src → src}/types.js.map +0 -0
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -12
- package/.github/dependabot.yml +0 -17
- package/.github/stale.yml +0 -10
- package/.mocharc.yml +0 -3
- package/.nycrc +0 -15
- package/README.md +0 -117
- package/bin/package.json +0 -54
- package/bin/src/models/dotdigital-organisation/i-dot-digital-organisation.d.ts +0 -32
- package/bin/src/models/dotdigital-organisation/i-review.d.ts +0 -7
- package/index.ts +0 -91
- package/src/domain-client.ts +0 -70
- package/src/exceptions/bad-request-exception.ts +0 -2
- package/src/exceptions/client-exception.ts +0 -2
- package/src/exceptions/internal-server-exception.ts +0 -2
- package/src/exceptions/not-found-exception.ts +0 -2
- package/src/exceptions/property-not-available-exception.ts +0 -2
- package/src/factories/DateFactory.ts +0 -8
- package/src/factories/InternalLinkFactory.ts +0 -27
- package/src/i-api-response.ts +0 -7
- package/src/i-class-factory.ts +0 -5
- package/src/i-model-description.ts +0 -13
- package/src/model-client.ts +0 -77
- package/src/model-factory.ts +0 -94
- package/src/models/bestfit-programme/bestfit-programme-client.ts +0 -16
- package/src/models/bestfit-programme/i-best-fit-programme.ts +0 -102
- package/src/models/bestfit-programme/i-g-p-a-requirement.ts +0 -23
- package/src/models/bestfit-programme/i-living-cost.ts +0 -23
- package/src/models/common/i-city.ts +0 -16
- package/src/models/common/i-country.ts +0 -16
- package/src/models/common/i-english-requirements.ts +0 -38
- package/src/models/common/i-internal-link.ts +0 -32
- package/src/models/common/i-logo.ts +0 -16
- package/src/models/common/i-tuition-fee.ts +0 -57
- package/src/models/dotdigital-organisation/dotdigital-organisation-client.ts +0 -16
- package/src/models/dotdigital-organisation/i-dot-digital-organisation.ts +0 -59
- package/src/models/dotdigital-organisation/i-review.ts +0 -12
- package/src/models/dotdigital-programme/dotdigital-programme-client.ts +0 -16
- package/src/models/dotdigital-programme/i-dot-digital-programme.ts +0 -108
- package/src/models/programme-card/i-click-tracking-data.ts +0 -8
- package/src/models/programme-card/i-cover.ts +0 -16
- package/src/models/programme-card/i-deadline.ts +0 -23
- package/src/models/programme-card/i-duration.ts +0 -46
- package/src/models/programme-card/i-link.ts +0 -25
- package/src/models/programme-card/i-location.ts +0 -12
- package/src/models/programme-card/i-optional-link.ts +0 -27
- package/src/models/programme-card/i-programme-card.ts +0 -152
- package/src/models/programme-card/i-start-date.ts +0 -39
- package/src/models/programme-card/i-timing.ts +0 -53
- package/src/models/programme-card/i-tracked-link.ts +0 -34
- package/src/models/programme-card/i-tracking.ts +0 -55
- package/src/models/programme-card/programme-card-client.ts +0 -16
- package/src/models/search-country-faq/i-search-country-faq.ts +0 -22
- package/src/models/search-country-faq/public-search-country-faq-client.ts +0 -16
- package/src/models/search-projection/i-geo-targeting-configuration.ts +0 -44
- package/src/models/search-projection/i-geo-targeting-values.ts +0 -38
- package/src/models/search-projection/i-organisation-values.ts +0 -46
- package/src/models/search-projection/i-premium-values.ts +0 -43
- package/src/models/search-projection/i-search-projection.ts +0 -216
- package/src/models/search-projection/i-tuition-values.ts +0 -63
- package/src/models/search-projection/search-projection-client.ts +0 -16
- package/src/types/portal-map.ts +0 -3
- package/src/types/portal-type.ts +0 -7
- package/src/types.ts +0 -4
- package/tsconfig.json +0 -39
package/bin/package.json
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@studyportals/domain-client",
|
|
3
|
-
"version": "3.6.0-2",
|
|
4
|
-
"description": "Responsible for fetching data from the Domain API",
|
|
5
|
-
"main": "bin/index.js",
|
|
6
|
-
"author": "StudyPortals B.V.",
|
|
7
|
-
"contributors": [
|
|
8
|
-
"braaibander <danny@studyportals.com>"
|
|
9
|
-
],
|
|
10
|
-
"license": "BSD-3-Clause",
|
|
11
|
-
"scripts": {
|
|
12
|
-
"test": "mocha --reporter spec \"tests/**/*.test.ts\"",
|
|
13
|
-
"coverage": "nyc mocha --reporter dot \"tests/**/*.test.ts\"",
|
|
14
|
-
"lint": "eslint . --ext .ts --max-warnings=0",
|
|
15
|
-
"pre-push": "npm run test && npm run coverage && npm run lint",
|
|
16
|
-
"prepare-dist": "npm run test && rm -fR bin && npx tsc && cp package.json bin/package.json && rm -fR bin/tests",
|
|
17
|
-
"publish-beta": "npm version prerelease --preid=beta && npm run prepare-dist && npm publish bin --tag beta",
|
|
18
|
-
"publish-major": "npm version major && npm run prepare-dist && npm publish bin",
|
|
19
|
-
"publish-minor": " npm version minor && npm run prepare-dist &&npm publish bin",
|
|
20
|
-
"publish-patch": " npm version patch && npm run prepare-dist && npm publish bin",
|
|
21
|
-
"publish-current": "npm run prepare-dist && npm publish bin"
|
|
22
|
-
},
|
|
23
|
-
"husky": {
|
|
24
|
-
"hooks": {
|
|
25
|
-
"pre-push": "npm run pre-push"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"axios": "^0.21.0"
|
|
30
|
-
},
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"@studyportals/code-style": "^1.3.1",
|
|
33
|
-
"@testdeck/mocha": "^0.1.2",
|
|
34
|
-
"@types/axios": "^0.14.0",
|
|
35
|
-
"@types/mocha": "^8.0.4",
|
|
36
|
-
"@types/moxios": "^0.4.9",
|
|
37
|
-
"@types/node": "^14.14.8",
|
|
38
|
-
"@types/reflect-metadata": "^0.1.0",
|
|
39
|
-
"@typescript-eslint/eslint-plugin": "^4.8.1",
|
|
40
|
-
"@typescript-eslint/parser": "^4.8.1",
|
|
41
|
-
"eslint": "^7.13.0",
|
|
42
|
-
"eslint-plugin-import": "^2.22.1",
|
|
43
|
-
"eslint-plugin-mocha": "^8.0.0",
|
|
44
|
-
"husky": "^4.3.0",
|
|
45
|
-
"mocha": "^8.2.1",
|
|
46
|
-
"moxios": "^0.4.0",
|
|
47
|
-
"nyc": "^15.1.0",
|
|
48
|
-
"source-map-support": "^0.5.19",
|
|
49
|
-
"ts-node": "^9.0.0",
|
|
50
|
-
"tslint": "^6.1.3",
|
|
51
|
-
"typemoq": "^2.1.0",
|
|
52
|
-
"typescript": "^4.0.5"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ICity, ICountry, IReview } from "../../..";
|
|
2
|
-
export interface IDotDigitalOrganisation {
|
|
3
|
-
getAboutCareer(): string;
|
|
4
|
-
getAboutEducation(): string;
|
|
5
|
-
getAboutHistory(): string;
|
|
6
|
-
getAboutResearch(): string;
|
|
7
|
-
getAcademicStaff(): number;
|
|
8
|
-
getAmountOfProgrammes(): number;
|
|
9
|
-
getCity(): ICity;
|
|
10
|
-
getCountry(): ICountry;
|
|
11
|
-
getCoverUrl(): string;
|
|
12
|
-
getFemaleStudents(): number;
|
|
13
|
-
getId(): number;
|
|
14
|
-
getAverageStudentRating(): number;
|
|
15
|
-
getLogoUrl(): string;
|
|
16
|
-
getName(): string;
|
|
17
|
-
getOrganisationUrl(): string;
|
|
18
|
-
getReasons(): string[];
|
|
19
|
-
/**
|
|
20
|
-
* @return IReview[]
|
|
21
|
-
*/
|
|
22
|
-
getReviews(): IReview[];
|
|
23
|
-
getServicesHousing(): string;
|
|
24
|
-
getServicesICT(): string;
|
|
25
|
-
getServicesLibrary(): string;
|
|
26
|
-
getServicesMedical(): string;
|
|
27
|
-
getServicesStudent(): string;
|
|
28
|
-
getStudentLifeCampus(): string;
|
|
29
|
-
getStudentLifeSport(): string;
|
|
30
|
-
getStudents(): number;
|
|
31
|
-
getStudentsInternational(): number;
|
|
32
|
-
}
|
package/index.ts
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { BadRequestException } from "./src/exceptions/bad-request-exception"
|
|
2
|
-
import { ClientException } from "./src/exceptions/client-exception"
|
|
3
|
-
import { InternalServerException } from "./src/exceptions/internal-server-exception"
|
|
4
|
-
import { NotFoundException } from "./src/exceptions/not-found-exception"
|
|
5
|
-
import { PropertyNotAvailableException } from "./src/exceptions/property-not-available-exception"
|
|
6
|
-
import { ICover } from "./src/models/programme-card/i-cover";
|
|
7
|
-
import { ILink } from "./src/models/programme-card/i-link";
|
|
8
|
-
import { IOptionalLink } from "./src/models/programme-card/i-optional-link";
|
|
9
|
-
import { ILocation } from "./src/models/programme-card/i-location";
|
|
10
|
-
import { IClickTrackingData } from "./src/models/programme-card/i-click-tracking-data";
|
|
11
|
-
import { ITracking } from "./src/models/programme-card/i-tracking";
|
|
12
|
-
import { IDuration } from "./src/models/programme-card/i-duration";
|
|
13
|
-
import { IDeadline } from "./src/models/programme-card/i-deadline";
|
|
14
|
-
import { IStartDate } from "./src/models/programme-card/i-start-date";
|
|
15
|
-
import { ITiming } from "./src/models/programme-card/i-timing";
|
|
16
|
-
import { ITrackedLink } from "./src/models/programme-card/i-tracked-link";
|
|
17
|
-
import { IProgrammeCard } from "./src/models/programme-card/i-programme-card";
|
|
18
|
-
import { ProgrammeCardClient } from "./src/models/programme-card/programme-card-client";
|
|
19
|
-
import { ITuitionValues } from "./src/models/search-projection/i-tuition-values";
|
|
20
|
-
import { IPremiumValues } from "./src/models/search-projection/i-premium-values";
|
|
21
|
-
import { IOrganisationValues } from "./src/models/search-projection/i-organisation-values";
|
|
22
|
-
import { IGeoTargetingConfiguration } from "./src/models/search-projection/i-geo-targeting-configuration";
|
|
23
|
-
import { IGeoTargetingValues } from "./src/models/search-projection/i-geo-targeting-values";
|
|
24
|
-
import { ISearchProjection } from "./src/models/search-projection/i-search-projection";
|
|
25
|
-
import { SearchProjectionClient } from "./src/models/search-projection/search-projection-client";
|
|
26
|
-
import { ILivingCost } from "./src/models/bestfit-programme/i-living-cost";
|
|
27
|
-
import { IGPARequirement } from "./src/models/bestfit-programme/i-g-p-a-requirement";
|
|
28
|
-
import { IBestFitProgramme } from "./src/models/bestfit-programme/i-best-fit-programme";
|
|
29
|
-
import { BestfitProgrammeClient } from "./src/models/bestfit-programme/bestfit-programme-client";
|
|
30
|
-
import { IDotDigitalProgramme } from "./src/models/dotdigital-programme/i-dot-digital-programme";
|
|
31
|
-
import { DotdigitalProgrammeClient } from "./src/models/dotdigital-programme/dotdigital-programme-client";
|
|
32
|
-
import { ISearchCountryFaq } from "./src/models/search-country-faq/i-search-country-faq";
|
|
33
|
-
import { PublicSearchCountryFaqClient } from "./src/models/search-country-faq/public-search-country-faq-client";
|
|
34
|
-
import { IReview } from "./src/models/dotdigital-organisation/i-review";
|
|
35
|
-
import { IDotDigitalOrganisation } from "./src/models/dotdigital-organisation/i-dot-digital-organisation";
|
|
36
|
-
import { DotdigitalOrganisationClient } from "./src/models/dotdigital-organisation/dotdigital-organisation-client";
|
|
37
|
-
import { IInternalLink } from "./src/models/common/i-internal-link"
|
|
38
|
-
import { ILogo } from "./src/models/common/i-logo"
|
|
39
|
-
import { ITuitionFee } from "./src/models/common/i-tuition-fee"
|
|
40
|
-
import { IEnglishRequirements } from "./src/models/common/i-english-requirements"
|
|
41
|
-
import { ICity } from "./src/models/common/i-city"
|
|
42
|
-
import { ICountry } from "./src/models/common/i-country"
|
|
43
|
-
import { PortalType } from "./src/types/portal-type"
|
|
44
|
-
import { PortalMap } from "./src/types/portal-map"
|
|
45
|
-
|
|
46
|
-
export {
|
|
47
|
-
BadRequestException,
|
|
48
|
-
ClientException,
|
|
49
|
-
InternalServerException,
|
|
50
|
-
NotFoundException,
|
|
51
|
-
PropertyNotAvailableException,
|
|
52
|
-
IInternalLink,
|
|
53
|
-
ILogo,
|
|
54
|
-
ITuitionFee,
|
|
55
|
-
IEnglishRequirements,
|
|
56
|
-
ICity,
|
|
57
|
-
ICountry,
|
|
58
|
-
ICover,
|
|
59
|
-
ILink,
|
|
60
|
-
IOptionalLink,
|
|
61
|
-
ILocation,
|
|
62
|
-
IClickTrackingData,
|
|
63
|
-
ITracking,
|
|
64
|
-
IDuration,
|
|
65
|
-
IDeadline,
|
|
66
|
-
IStartDate,
|
|
67
|
-
ITiming,
|
|
68
|
-
ITrackedLink,
|
|
69
|
-
IProgrammeCard,
|
|
70
|
-
ProgrammeCardClient,
|
|
71
|
-
ITuitionValues,
|
|
72
|
-
IPremiumValues,
|
|
73
|
-
IOrganisationValues,
|
|
74
|
-
IGeoTargetingConfiguration,
|
|
75
|
-
IGeoTargetingValues,
|
|
76
|
-
ISearchProjection,
|
|
77
|
-
SearchProjectionClient,
|
|
78
|
-
ILivingCost,
|
|
79
|
-
IGPARequirement,
|
|
80
|
-
IBestFitProgramme,
|
|
81
|
-
BestfitProgrammeClient,
|
|
82
|
-
IDotDigitalProgramme,
|
|
83
|
-
DotdigitalProgrammeClient,
|
|
84
|
-
ISearchCountryFaq,
|
|
85
|
-
PublicSearchCountryFaqClient,
|
|
86
|
-
IReview,
|
|
87
|
-
IDotDigitalOrganisation,
|
|
88
|
-
DotdigitalOrganisationClient,
|
|
89
|
-
PortalMap,
|
|
90
|
-
PortalType
|
|
91
|
-
}
|
package/src/domain-client.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import Axios from "axios";
|
|
2
|
-
|
|
3
|
-
import { BadRequestException } from "./exceptions/bad-request-exception";
|
|
4
|
-
import { InternalServerException } from "./exceptions/internal-server-exception";
|
|
5
|
-
import { NotFoundException } from "./exceptions/not-found-exception";
|
|
6
|
-
import { IApiResponse } from "./i-api-response";
|
|
7
|
-
import { IModelDescription } from "./i-model-description";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class DomainClient {
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
public readonly baseUrl: string,
|
|
14
|
-
public readonly apiKey: string | undefined,
|
|
15
|
-
public readonly model: string,
|
|
16
|
-
public readonly version: string,
|
|
17
|
-
public readonly isPublic: boolean,
|
|
18
|
-
public readonly seed: number
|
|
19
|
-
) {
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
public async doRequest(ids: number[]): Promise<IModelDescription[]> {
|
|
23
|
-
const url = this.buildUrl(ids);
|
|
24
|
-
const config: any = { baseURL: this.baseUrl }
|
|
25
|
-
if (this.apiKey !== undefined) {
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
27
|
-
config["headers"] = {'x-api-key': this.apiKey}
|
|
28
|
-
}
|
|
29
|
-
const axiosResponse = await Axios.get(url, config);
|
|
30
|
-
const response = axiosResponse.data as IApiResponse;
|
|
31
|
-
this.handleErrors(response);
|
|
32
|
-
|
|
33
|
-
const models: IModelDescription[] = [];
|
|
34
|
-
for (const id of ids) {
|
|
35
|
-
const modelData = response.data[id];
|
|
36
|
-
if (!modelData) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
models.push(modelData);
|
|
40
|
-
}
|
|
41
|
-
return models;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private handleErrors(response: IApiResponse): void {
|
|
45
|
-
if (!response.status) {
|
|
46
|
-
throw new InternalServerException(response.message);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (response.status === 400) {
|
|
50
|
-
throw new BadRequestException(response.message);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (response.status === 404) {
|
|
54
|
-
throw new NotFoundException(response.message);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
private buildUrl(ids: number[]): string {
|
|
59
|
-
const publicPrefix = this.shouldAddPublicPrefix() ? 'public/' : '';
|
|
60
|
-
let query = `${publicPrefix}${this.model}/${this.version}/?seed=${this.seed}`;
|
|
61
|
-
for (const id of ids) {
|
|
62
|
-
query += `&id=${id}`;
|
|
63
|
-
}
|
|
64
|
-
return query;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private shouldAddPublicPrefix(): boolean {
|
|
68
|
-
return this.isPublic && this.apiKey === undefined;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IClassFactory } from "../i-class-factory";
|
|
2
|
-
import { CallableReturnType, Model } from "../types";
|
|
3
|
-
|
|
4
|
-
export class DateFactory implements IClassFactory {
|
|
5
|
-
public create(data: Model, parameters: string[]): CallableReturnType {
|
|
6
|
-
return new Date(parameters[0]);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { IClassFactory } from "../i-class-factory";
|
|
2
|
-
import { PortalType } from "../types/portal-type";
|
|
3
|
-
import { CallableReturnType, Model } from "../types";
|
|
4
|
-
import { PortalMap } from "../types/portal-map";
|
|
5
|
-
|
|
6
|
-
export class InternalLinkFactory implements IClassFactory {
|
|
7
|
-
private portalMap: PortalMap;
|
|
8
|
-
|
|
9
|
-
constructor(portalMap: PortalMap) {
|
|
10
|
-
this.portalMap = portalMap;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public create(link: Model): CallableReturnType {
|
|
14
|
-
const portalBaseUrl = this.getPortalBaseUrl(link.getPortalType() as PortalType);
|
|
15
|
-
|
|
16
|
-
const path = link['getUrl']() as string;
|
|
17
|
-
link['getUrl'] = () => portalBaseUrl + path;
|
|
18
|
-
|
|
19
|
-
return link;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
private getPortalBaseUrl(portalType: PortalType): string {
|
|
23
|
-
const url = this.portalMap.get(portalType);
|
|
24
|
-
return url || '';
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
}
|
package/src/i-api-response.ts
DELETED
package/src/i-class-factory.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AcceptedType } from "./types";
|
|
2
|
-
|
|
3
|
-
export interface IModelDescription {
|
|
4
|
-
class: string;
|
|
5
|
-
func: Record<string, AcceptedType | IModelDescription>;
|
|
6
|
-
parameters?: any[];
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// eslint-disable-next-line
|
|
10
|
-
export function isModelDescription(arg: any): arg is IModelDescription {
|
|
11
|
-
// eslint-disable-next-line
|
|
12
|
-
return arg && arg.class && (arg.func || arg.parameters);
|
|
13
|
-
}
|
package/src/model-client.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { DomainClient } from "./domain-client";
|
|
2
|
-
import { ClientException } from "./exceptions/client-exception";
|
|
3
|
-
import { IModelDescription } from "./i-model-description";
|
|
4
|
-
import { ModelFactory } from "./model-factory";
|
|
5
|
-
import { PortalMap } from "./types/portal-map";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export abstract class ModelClient<T> {
|
|
9
|
-
private readonly domainClient: DomainClient | null;
|
|
10
|
-
private readonly modelFactory: ModelFactory<T>;
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
baseUrl?: string,
|
|
14
|
-
apiKey?: string,
|
|
15
|
-
seed?: number,
|
|
16
|
-
portalMap?: PortalMap
|
|
17
|
-
) {
|
|
18
|
-
if (!baseUrl || !seed) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
this.modelFactory = new ModelFactory<T>(portalMap);
|
|
23
|
-
this.domainClient = new DomainClient(
|
|
24
|
-
baseUrl,
|
|
25
|
-
apiKey,
|
|
26
|
-
this.getModelName(),
|
|
27
|
-
this.getVersion(),
|
|
28
|
-
this.isPublic(),
|
|
29
|
-
seed
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public async fetch(id: number): Promise<T> {
|
|
34
|
-
const modelDescriptions = await this.fetchDescription(id);
|
|
35
|
-
return this.modelFactory.fromDescription(modelDescriptions);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public async fetchDescription(id: number): Promise<IModelDescription> {
|
|
39
|
-
if (!this.domainClient) {
|
|
40
|
-
throw new ClientException(
|
|
41
|
-
"Offline mode active: did you provide all parameters " +
|
|
42
|
-
"in the constructor?"
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
const result = await this.domainClient.doRequest([id]);
|
|
46
|
-
return result[0];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public async fetchMultiple(ids: number[]): Promise<T[]> {
|
|
50
|
-
const descriptions = await this.fetchMultipleDescriptions(ids);
|
|
51
|
-
return this.modelFactory.fromDescriptions(descriptions);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public async fetchMultipleDescriptions(ids: number[]): Promise<IModelDescription[]> {
|
|
55
|
-
if (!this.domainClient) {
|
|
56
|
-
throw new ClientException(
|
|
57
|
-
'Offline mode active: did you provide all parameters ' +
|
|
58
|
-
'in the constructor?'
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
return await this.domainClient.doRequest(ids);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public fromDescription(description: IModelDescription): T {
|
|
65
|
-
return this.modelFactory.fromDescription(description);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public fromDescriptions(descriptions: IModelDescription[]): T[] {
|
|
69
|
-
return this.modelFactory.fromDescriptions(descriptions);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
protected abstract getModelName(): string;
|
|
73
|
-
|
|
74
|
-
protected abstract getVersion(): string;
|
|
75
|
-
|
|
76
|
-
public abstract isPublic(): boolean;
|
|
77
|
-
}
|
package/src/model-factory.ts
DELETED
|
@@ -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
|
-
}
|