@studyportals/domain-client 3.6.0-2 → 3.6.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{bin/index.d.ts → index.d.ts} +5 -1
- package/{bin/index.js → index.js} +5 -1
- package/index.js.map +1 -0
- package/package.json +8 -8
- 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 +0 -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/src/models/search-discipline/i-search-discipline.d.ts +26 -0
- package/src/models/search-discipline/i-search-discipline.js +3 -0
- package/src/models/search-discipline/i-search-discipline.js.map +1 -0
- package/src/models/search-discipline/public-search-discipline-client.d.ts +7 -0
- package/src/models/search-discipline/public-search-discipline-client.js +17 -0
- package/src/models/search-discipline/public-search-discipline-client.js.map +1 -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/src/models/sitemap-rankings-info/i-sitemap-rankings-info.d.ts +10 -0
- package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js +3 -0
- package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js.map +1 -0
- package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.d.ts +7 -0
- package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js +17 -0
- package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js.map +1 -0
- package/src/types/portal-map.d.ts +2 -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/src/{types.ts → types.d.ts} +1 -1
- 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/index.js.map +0 -1
- 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/bin/src/types/portal-map.d.ts +0 -2
- package/bin/src/types.d.ts +0 -4
- 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/tsconfig.json +0 -39
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
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export interface IEnglishRequirements {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Required score for IELTS tests
|
|
5
|
-
*
|
|
6
|
-
* @return number
|
|
7
|
-
*/
|
|
8
|
-
getIELTS(): number;
|
|
9
|
-
|
|
10
|
-
canShowIELTS(): boolean;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Required score for PTE
|
|
14
|
-
*
|
|
15
|
-
* @return number
|
|
16
|
-
*/
|
|
17
|
-
getPTE(): number;
|
|
18
|
-
|
|
19
|
-
canShowPTE(): boolean;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Required score for TOEFL internet
|
|
23
|
-
*
|
|
24
|
-
* @return number
|
|
25
|
-
*/
|
|
26
|
-
getTOEFLInternet(): number;
|
|
27
|
-
|
|
28
|
-
canShowTOEFLInternet(): boolean;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Required score for TOEFL paper
|
|
32
|
-
*
|
|
33
|
-
* @return number
|
|
34
|
-
*/
|
|
35
|
-
getTOEFLPaper(): number;
|
|
36
|
-
|
|
37
|
-
canShowTOEFLPaper(): boolean;
|
|
38
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export interface IInternalLink {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Get an optional text describing the link (typically <a>-tags contents).
|
|
5
|
-
*
|
|
6
|
-
* @return string
|
|
7
|
-
* @throws PropertyNotAvailableException
|
|
8
|
-
*/
|
|
9
|
-
getDescription(): string;
|
|
10
|
-
|
|
11
|
-
canShowDescription(): boolean;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Returns on which portal a this link should link towards.
|
|
15
|
-
*
|
|
16
|
-
* @return string
|
|
17
|
-
*/
|
|
18
|
-
getPortalType(): string;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Get the url to refer to.
|
|
22
|
-
*
|
|
23
|
-
* Note that the url provided is always a relative URL. A base URL is needed
|
|
24
|
-
* to make it a full valid path.
|
|
25
|
-
* The only exception is when an external link is provided (meaning, outside
|
|
26
|
-
* of StudyPortals-maintained domains). In this case a full url will be
|
|
27
|
-
* provided.
|
|
28
|
-
*
|
|
29
|
-
* @return string
|
|
30
|
-
*/
|
|
31
|
-
getUrl(): string;
|
|
32
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export interface ITuitionFee {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Get the tuition amount per unit in the provided currency.
|
|
5
|
-
*
|
|
6
|
-
* Note: all transformable units will be converted to yearly amounts. This
|
|
7
|
-
* includes per semester and full programme tuition fees.
|
|
8
|
-
*
|
|
9
|
-
* @return number
|
|
10
|
-
*/
|
|
11
|
-
getAmount(): number;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Get the applicable currency.
|
|
15
|
-
*
|
|
16
|
-
* @return string
|
|
17
|
-
*/
|
|
18
|
-
getCurrency(): string;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Get the original tuition amount before any transformation step.
|
|
22
|
-
*
|
|
23
|
-
* @return number
|
|
24
|
-
*/
|
|
25
|
-
getOriginalAmount(): number;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get the original tuition unit before any transformation step.
|
|
29
|
-
*
|
|
30
|
-
* @return string
|
|
31
|
-
*/
|
|
32
|
-
getOriginalUnit(): string;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Get targeted audience (national, international, eea, etc).
|
|
36
|
-
*
|
|
37
|
-
* @return string
|
|
38
|
-
*/
|
|
39
|
-
getTarget(): string;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Get the unit the tuition fee applies for.
|
|
43
|
-
*
|
|
44
|
-
* Note: all transformable units will be converted to 'year'. This means
|
|
45
|
-
* this value will be either 'year', 'module' or 'credit'.
|
|
46
|
-
*
|
|
47
|
-
* @return string
|
|
48
|
-
*/
|
|
49
|
-
getUnit(): string;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* True if the study is free for this target audience.
|
|
53
|
-
*
|
|
54
|
-
* @return boolean
|
|
55
|
-
*/
|
|
56
|
-
isFree(): boolean;
|
|
57
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IDotDigitalOrganisation } from "../../..";
|
|
2
|
-
import { ModelClient } from "../../model-client";
|
|
3
|
-
|
|
4
|
-
export class DotdigitalOrganisationClient extends ModelClient<IDotDigitalOrganisation> {
|
|
5
|
-
protected getModelName(): string {
|
|
6
|
-
return 'dotdigital-organisation';
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
protected getVersion(): string {
|
|
10
|
-
return 'v1';
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public isPublic(): boolean {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ICity, ICountry, IReview } from "../../..";
|
|
2
|
-
|
|
3
|
-
export interface IDotDigitalOrganisation {
|
|
4
|
-
|
|
5
|
-
getAboutCareer(): string;
|
|
6
|
-
|
|
7
|
-
getAboutEducation(): string;
|
|
8
|
-
|
|
9
|
-
getAboutHistory(): string;
|
|
10
|
-
|
|
11
|
-
getAboutResearch(): string;
|
|
12
|
-
|
|
13
|
-
getAcademicStaff(): number;
|
|
14
|
-
|
|
15
|
-
getAmountOfProgrammes(): number;
|
|
16
|
-
|
|
17
|
-
getCity(): ICity;
|
|
18
|
-
|
|
19
|
-
getCountry(): ICountry;
|
|
20
|
-
|
|
21
|
-
getCoverUrl(): string;
|
|
22
|
-
|
|
23
|
-
getFemaleStudents(): number;
|
|
24
|
-
|
|
25
|
-
getId(): number;
|
|
26
|
-
|
|
27
|
-
getAverageStudentRating(): number;
|
|
28
|
-
|
|
29
|
-
getLogoUrl(): string;
|
|
30
|
-
|
|
31
|
-
getName(): string;
|
|
32
|
-
|
|
33
|
-
getOrganisationUrl(): string;
|
|
34
|
-
|
|
35
|
-
getReasons(): string[];
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @return IReview[]
|
|
39
|
-
*/
|
|
40
|
-
getReviews(): IReview[];
|
|
41
|
-
|
|
42
|
-
getServicesHousing(): string;
|
|
43
|
-
|
|
44
|
-
getServicesICT(): string;
|
|
45
|
-
|
|
46
|
-
getServicesLibrary(): string;
|
|
47
|
-
|
|
48
|
-
getServicesMedical(): string;
|
|
49
|
-
|
|
50
|
-
getServicesStudent(): string;
|
|
51
|
-
|
|
52
|
-
getStudentLifeCampus(): string;
|
|
53
|
-
|
|
54
|
-
getStudentLifeSport(): string;
|
|
55
|
-
|
|
56
|
-
getStudents(): number;
|
|
57
|
-
|
|
58
|
-
getStudentsInternational(): number;
|
|
59
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IDotDigitalProgramme } from "../../..";
|
|
2
|
-
import { ModelClient } from "../../model-client";
|
|
3
|
-
|
|
4
|
-
export class DotdigitalProgrammeClient extends ModelClient<IDotDigitalProgramme> {
|
|
5
|
-
protected getModelName(): string {
|
|
6
|
-
return 'dotdigital-programme';
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
protected getVersion(): string {
|
|
10
|
-
return 'v1';
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public isPublic(): boolean {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { ICountry, IEnglishRequirements, IInternalLink, ILogo, ITuitionFee } from "../../..";
|
|
2
|
-
|
|
3
|
-
export interface IDotDigitalProgramme {
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Campaign type of the campaign the programme is attached to
|
|
7
|
-
*
|
|
8
|
-
* @return number
|
|
9
|
-
*/
|
|
10
|
-
getCampaignType(): number;
|
|
11
|
-
|
|
12
|
-
canShowCampaignType(): boolean;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Get country the programme is teached in
|
|
16
|
-
*
|
|
17
|
-
* @return ICountry
|
|
18
|
-
*/
|
|
19
|
-
getCountry(): ICountry;
|
|
20
|
-
|
|
21
|
-
canShowCountry(): boolean;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Education level
|
|
25
|
-
*
|
|
26
|
-
* @return string
|
|
27
|
-
*/
|
|
28
|
-
getEducationalLevel(): string;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* English level requirements.
|
|
32
|
-
*
|
|
33
|
-
* @return IEnglishRequirements
|
|
34
|
-
*/
|
|
35
|
-
getEnglishRequirements(): IEnglishRequirements;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Id of the programme.
|
|
39
|
-
*
|
|
40
|
-
* @return number
|
|
41
|
-
*/
|
|
42
|
-
getId(): number;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* The last time the programme has been updated and verified
|
|
46
|
-
*
|
|
47
|
-
* @return Date
|
|
48
|
-
*/
|
|
49
|
-
getLastUpdated(): Date;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* University logo url
|
|
53
|
-
*
|
|
54
|
-
* @return ILogo
|
|
55
|
-
*/
|
|
56
|
-
getLogo(): ILogo;
|
|
57
|
-
|
|
58
|
-
canShowLogo(): boolean;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Get a link to the programme page.
|
|
62
|
-
*
|
|
63
|
-
* The link contains the page path as url and the programme name as the
|
|
64
|
-
* link description.
|
|
65
|
-
*
|
|
66
|
-
* @return IInternalLink
|
|
67
|
-
*/
|
|
68
|
-
getProgrammeLink(): IInternalLink;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* The universities review rating
|
|
72
|
-
*
|
|
73
|
-
* @return number
|
|
74
|
-
*/
|
|
75
|
-
getReviewRating(): number;
|
|
76
|
-
|
|
77
|
-
canShowReviewRating(): boolean;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Title of the programme.
|
|
81
|
-
*
|
|
82
|
-
* @return string
|
|
83
|
-
*/
|
|
84
|
-
getTitle(): string;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* The programmes tuition fees
|
|
88
|
-
*
|
|
89
|
-
* @return ITuitionFee[]
|
|
90
|
-
*/
|
|
91
|
-
getTuitionFees(): ITuitionFee[];
|
|
92
|
-
|
|
93
|
-
canShowTuitionFees(): boolean;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* University title
|
|
97
|
-
*
|
|
98
|
-
* @return string
|
|
99
|
-
*/
|
|
100
|
-
getUniversityTitle(): string;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Is programme public
|
|
104
|
-
*
|
|
105
|
-
* @return boolean
|
|
106
|
-
*/
|
|
107
|
-
isPublic(): boolean;
|
|
108
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface IDeadline {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Get the date this deadline expires on.
|
|
5
|
-
*
|
|
6
|
-
* @return Date
|
|
7
|
-
*/
|
|
8
|
-
getDate(): Date;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Get the deadline type (e.g. general, national, eea, etc).
|
|
12
|
-
*
|
|
13
|
-
* @return string
|
|
14
|
-
*/
|
|
15
|
-
getType(): string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* True if the deadline has passed (e.g. you can't apply anymore).
|
|
19
|
-
*
|
|
20
|
-
* @return boolean
|
|
21
|
-
*/
|
|
22
|
-
isPassed(): boolean;
|
|
23
|
-
}
|