@studyportals/fawkes 7.5.1-2 → 7.5.1-3
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/dist/src/programmes/SearchIndexabilityManager.js +2 -0
- package/dist/src/programmes/policies/AttendanceArea.js +1 -1
- package/dist/src/programmes/policies/AttendanceDuration.d.ts +2 -1
- package/dist/src/programmes/policies/AttendanceDuration.js +3 -1
- package/dist/src/programmes/policies/ContinentDuration.d.ts +2 -1
- package/dist/src/programmes/policies/ContinentDuration.js +2 -0
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +2 -1
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +3 -1
- package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +3 -1
- package/dist/src/programmes/policies/DegreeAttendanceFormat.js +4 -0
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +2 -1
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +4 -2
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +3 -1
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +5 -1
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +3 -1
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +4 -0
- package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +2 -1
- package/dist/src/programmes/policies/DisciplineCountryFormat.js +2 -0
- package/dist/src/programmes/policies/Duration.d.ts +2 -1
- package/dist/src/programmes/policies/Duration.js +3 -1
- package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.d.ts +6 -0
- package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.js +19 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Area, Attendance, AttendanceDegree, Continent, ContinentTuitionFee, Country, CountryAttendance, CountryAttendanceDegree, CountryDegree, CountryDuration, CountryDurationDegree, CountryEducationalForm, CountryFormat, CountryTuitionFee, DegreeAttendanceDiscipline, DegreeCountryAttendance, DegreeCountryDiscipline, DegreeCountryTuitionFee, Discipline, DisciplineAttendance, DisciplineContinent, DisciplineCountry, DisciplineCountryEducationalForm, DisciplineDegree, DisciplineDuration, DisciplineEducationalForm, DisciplineFormat, DisciplineTuitionFee, DisciplineTuitionFeeAttendance, SpecialProgrammes, TuitionFee, Unfiltered, AttendanceArea, AttendanceContinent, AttendanceDuration, AttendanceFormat, AttendanceTuitionFee, ContinentDuration, ContinentFormat, ContinentSpecialProgrammes, CountrySpecialProgrammes, DegreeArea, DegreeAreaTuitionFee, DegreeAttendanceFormat, DegreeAttendanceTuitionFee, DegreeContinent, DegreeContinentTuitionFee, DegreeDuration, DegreeFormat, DegreeFormatTuitionFee, DegreeSpecialProgrammes, DegreeTuitionFee, DisciplineContinentAttendance, DisciplineCountryAttendance, DisciplineCountryFormat, Duration, Format } from './policies';
|
|
2
2
|
import { DependencyTypes } from '../enums/DependencyTypes';
|
|
3
3
|
import { Degree } from './policies/Degree';
|
|
4
|
+
import { DisciplineSpecialProgrammes } from './policies/DisciplineSpecialProgrammes';
|
|
4
5
|
export class SearchIndexabilityManager {
|
|
5
6
|
policies;
|
|
6
7
|
constructor(portalType, seoInfoBase, filterState, applicationState) {
|
|
@@ -43,6 +44,7 @@ export class SearchIndexabilityManager {
|
|
|
43
44
|
new DisciplineTuitionFee(dependencies),
|
|
44
45
|
new DisciplineTuitionFeeAttendance(dependencies),
|
|
45
46
|
new SpecialProgrammes(dependencies),
|
|
47
|
+
new DisciplineSpecialProgrammes(dependencies),
|
|
46
48
|
new TuitionFee(dependencies),
|
|
47
49
|
new Unfiltered(dependencies),
|
|
48
50
|
new CountrySpecialProgrammes(dependencies),
|
|
@@ -14,7 +14,7 @@ export class AttendanceArea extends ProgrammesBaseIndexabilityPolicy {
|
|
|
14
14
|
new SingleValueSelectedForFilterRule(FilterKey.AREA),
|
|
15
15
|
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
16
16
|
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
17
|
-
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.DELIVERY_METHOD]),
|
|
17
|
+
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.COUNTRY, FilterKey.DELIVERY_METHOD]),
|
|
18
18
|
new OnlineAttendanceRule()
|
|
19
19
|
];
|
|
20
20
|
constructor(dependencies) {
|
|
@@ -5,11 +5,12 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
8
|
+
import { OneYearDurationRule } from '../../programmes/rules/OneYearDurationRule';
|
|
8
9
|
export declare class AttendanceDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
9
10
|
readonly name: string;
|
|
10
11
|
readonly description: string;
|
|
11
12
|
readonly filterKeys: FilterKey[];
|
|
12
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
|
|
13
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | OneYearDurationRule)[];
|
|
13
14
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
14
15
|
protected generateUrls(): Promise<string[]>;
|
|
15
16
|
get filterCombination(): FilterCombinations;
|
|
@@ -6,6 +6,7 @@ import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { AttendancePresenter } from '../../presenters/AttendancePresenter';
|
|
8
8
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
9
|
+
import { OneYearDurationRule } from '../../programmes/rules/OneYearDurationRule';
|
|
9
10
|
export class AttendanceDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
10
11
|
name = 'Attendance Duration Type Policy';
|
|
11
12
|
description = 'Determines indexing rules for pages filtered by both study format (online, on-campus, etc.), and duration prioritizing durations and formats with demonstrated search demand.';
|
|
@@ -14,7 +15,8 @@ export class AttendanceDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
|
14
15
|
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
15
16
|
new SingleValueSelectedForFilterRule(FilterKey.DURATION),
|
|
16
17
|
new OnlyFiltersSelectedRule([FilterKey.DELIVERY_METHOD, FilterKey.DURATION]),
|
|
17
|
-
new OnlineAttendanceRule()
|
|
18
|
+
new OnlineAttendanceRule(),
|
|
19
|
+
new OneYearDurationRule()
|
|
18
20
|
];
|
|
19
21
|
constructor(dependencies) {
|
|
20
22
|
super(dependencies);
|
|
@@ -4,11 +4,12 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { OneYearDurationRule } from '../rules/OneYearDurationRule';
|
|
7
8
|
export declare class ContinentDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
8
9
|
readonly name: string;
|
|
9
10
|
readonly description: string;
|
|
10
11
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OneYearDurationRule)[];
|
|
12
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
14
|
protected generateUrls(): Promise<string[]>;
|
|
14
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -5,6 +5,7 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { ContinentPresenter } from '../../presenters/ContinentPresenter';
|
|
7
7
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
8
|
+
import { OneYearDurationRule } from '../rules/OneYearDurationRule';
|
|
8
9
|
export class ContinentDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
9
10
|
name = 'Continent Duration Policy';
|
|
10
11
|
description = 'Determines indexing rules for pages filtered by continent and duration (1 year).';
|
|
@@ -13,6 +14,7 @@ export class ContinentDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
|
13
14
|
new SingleValueSelectedForFilterRule(FilterKey.DURATION),
|
|
14
15
|
new SingleValueSelectedForFilterRule(FilterKey.CONTINENT),
|
|
15
16
|
new OnlyFiltersSelectedRule([FilterKey.DURATION, FilterKey.CONTINENT]),
|
|
17
|
+
new OneYearDurationRule()
|
|
16
18
|
];
|
|
17
19
|
constructor(dependencies) {
|
|
18
20
|
super(dependencies);
|
|
@@ -4,11 +4,12 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { AffordableTuitionFeeRule } from '../rules/AffordableTuitionFeeRule';
|
|
7
8
|
export declare class DegreeAreaTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
8
9
|
readonly name: string;
|
|
9
10
|
readonly description: string;
|
|
10
11
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | AffordableTuitionFeeRule)[];
|
|
12
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
14
|
protected generateUrls(): Promise<string[]>;
|
|
14
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -6,6 +6,7 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
|
|
|
6
6
|
import { AreaPresenter } from '../../presenters/AreaPresenter';
|
|
7
7
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
8
8
|
import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
|
|
9
|
+
import { AffordableTuitionFeeRule } from '../rules/AffordableTuitionFeeRule';
|
|
9
10
|
export class DegreeAreaTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
10
11
|
name = 'Degree Area Tuition fee Policy';
|
|
11
12
|
description = 'Controls indexing of pages filtered by geographic areas and tuition fees.';
|
|
@@ -15,7 +16,8 @@ export class DegreeAreaTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
|
15
16
|
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
16
17
|
new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
|
|
17
18
|
new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
|
|
18
|
-
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.DEGREE_TYPE, FilterKey.TUITION_FEE])
|
|
19
|
+
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.DEGREE_TYPE, FilterKey.TUITION_FEE]),
|
|
20
|
+
new AffordableTuitionFeeRule()
|
|
19
21
|
];
|
|
20
22
|
constructor(dependencies) {
|
|
21
23
|
super(dependencies);
|
|
@@ -4,11 +4,13 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
8
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
7
9
|
export declare class DegreeAttendanceFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
8
10
|
readonly name: string;
|
|
9
11
|
readonly description: string;
|
|
10
12
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
13
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | PartTimeFormatRule)[];
|
|
12
14
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
15
|
protected generateUrls(): Promise<string[]>;
|
|
14
16
|
get filterCombination(): FilterCombinations;
|
|
@@ -6,6 +6,8 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
|
|
|
6
6
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
7
7
|
import { AttendancePresenter } from '../../presenters/AttendancePresenter';
|
|
8
8
|
import { FormatPresenter } from '../../presenters/FormatPresenter';
|
|
9
|
+
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
10
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
9
11
|
export class DegreeAttendanceFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
10
12
|
name = 'Degree Attendance Format Policy';
|
|
11
13
|
description = 'Determines indexing rules for pages filtered by degree type, attendance, and format.';
|
|
@@ -15,6 +17,8 @@ export class DegreeAttendanceFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
|
15
17
|
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
16
18
|
new SingleValueSelectedForFilterRule(FilterKey.ATTENDANCE),
|
|
17
19
|
new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.DELIVERY_METHOD, FilterKey.ATTENDANCE]),
|
|
20
|
+
new OnlineAttendanceRule(),
|
|
21
|
+
new PartTimeFormatRule()
|
|
18
22
|
];
|
|
19
23
|
constructor(dependencies) {
|
|
20
24
|
super(dependencies);
|
|
@@ -5,11 +5,12 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
7
|
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
8
|
+
import { ExecutiveSpecialProgrammeRule } from '../rules/ExecutiveSpecialProgrammeRule';
|
|
8
9
|
export declare class DegreeAttendanceSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
9
10
|
readonly name: string;
|
|
10
11
|
readonly description: string;
|
|
11
12
|
readonly filterKeys: FilterKey[];
|
|
12
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
|
|
13
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | ExecutiveSpecialProgrammeRule)[];
|
|
13
14
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
14
15
|
protected generateUrls(): Promise<string[]>;
|
|
15
16
|
get filterCombination(): FilterCombinations;
|
|
@@ -7,6 +7,7 @@ import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
|
7
7
|
import { SpecialProgrammesPresenter } from '../../presenters/SpecialProgrammesPresenter';
|
|
8
8
|
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
9
9
|
import { AttendancePresenter } from '../../presenters/AttendancePresenter';
|
|
10
|
+
import { ExecutiveSpecialProgrammeRule } from '../rules/ExecutiveSpecialProgrammeRule';
|
|
10
11
|
export class DegreeAttendanceSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
11
12
|
name = 'Degree Attendance Special Programmes Policy';
|
|
12
13
|
description = 'Determines indexing rules for pages filtered by special programmes, attendance(online) and degree type.';
|
|
@@ -15,8 +16,9 @@ export class DegreeAttendanceSpecialProgrammes extends ProgrammesBaseIndexabilit
|
|
|
15
16
|
new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
|
|
16
17
|
new SingleValueSelectedForFilterRule(FilterKey.SPECIAL_PROGRAMMES),
|
|
17
18
|
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
18
|
-
new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.SPECIAL_PROGRAMMES]),
|
|
19
|
-
new OnlineAttendanceRule()
|
|
19
|
+
new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.SPECIAL_PROGRAMMES, FilterKey.DELIVERY_METHOD]),
|
|
20
|
+
new OnlineAttendanceRule(),
|
|
21
|
+
new ExecutiveSpecialProgrammeRule()
|
|
20
22
|
];
|
|
21
23
|
constructor(dependencies) {
|
|
22
24
|
super(dependencies);
|
|
@@ -5,11 +5,13 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
8
|
+
import { AffordableTuitionFeeRule } from '../rules/AffordableTuitionFeeRule';
|
|
9
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
8
10
|
export declare class DegreeFormatTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
9
11
|
readonly name: string;
|
|
10
12
|
readonly description: string;
|
|
11
13
|
readonly filterKeys: FilterKey[];
|
|
12
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
|
|
14
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule | AffordableTuitionFeeRule | PartTimeFormatRule)[];
|
|
13
15
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
14
16
|
protected generateUrls(): Promise<string[]>;
|
|
15
17
|
get filterCombination(): FilterCombinations;
|
|
@@ -7,6 +7,8 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
|
|
|
7
7
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
8
8
|
import { FormatPresenter } from '../../presenters/FormatPresenter';
|
|
9
9
|
import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
|
|
10
|
+
import { AffordableTuitionFeeRule } from '../rules/AffordableTuitionFeeRule';
|
|
11
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
10
12
|
export class DegreeFormatTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
11
13
|
name = 'Degree Format Tuition Fee Policy';
|
|
12
14
|
description = 'Determines indexing rules for pages filtered by degree type, format and tuition fee.';
|
|
@@ -16,7 +18,9 @@ export class DegreeFormatTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
|
16
18
|
new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
|
|
17
19
|
new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
|
|
18
20
|
new OnlyFiltersSelectedRule([FilterKey.ATTENDANCE, FilterKey.DEGREE_TYPE, FilterKey.TUITION_FEE]),
|
|
19
|
-
new IndexableDegreeRule()
|
|
21
|
+
new IndexableDegreeRule(),
|
|
22
|
+
new AffordableTuitionFeeRule(),
|
|
23
|
+
new PartTimeFormatRule()
|
|
20
24
|
];
|
|
21
25
|
constructor(dependencies) {
|
|
22
26
|
super(dependencies);
|
|
@@ -4,11 +4,13 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { MbaDegreeRule } from '../rules/MbaDegreeRule';
|
|
8
|
+
import { ExecutiveSpecialProgrammeRule } from '../rules/ExecutiveSpecialProgrammeRule';
|
|
7
9
|
export declare class DegreeSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
8
10
|
readonly name: string;
|
|
9
11
|
readonly description: string;
|
|
10
12
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
13
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | MbaDegreeRule | ExecutiveSpecialProgrammeRule)[];
|
|
12
14
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
15
|
protected generateUrls(): Promise<string[]>;
|
|
14
16
|
get filterCombination(): FilterCombinations;
|
|
@@ -5,6 +5,8 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
7
7
|
import { SpecialProgrammesPresenter } from '../../presenters/SpecialProgrammesPresenter';
|
|
8
|
+
import { MbaDegreeRule } from '../rules/MbaDegreeRule';
|
|
9
|
+
import { ExecutiveSpecialProgrammeRule } from '../rules/ExecutiveSpecialProgrammeRule';
|
|
8
10
|
export class DegreeSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
9
11
|
name = 'Special Programmes Degree Policy';
|
|
10
12
|
description = 'Determines indexing rules for pages filtered by special programmes and degree type.';
|
|
@@ -13,6 +15,8 @@ export class DegreeSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
|
13
15
|
new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
|
|
14
16
|
new SingleValueSelectedForFilterRule(FilterKey.SPECIAL_PROGRAMMES),
|
|
15
17
|
new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.SPECIAL_PROGRAMMES]),
|
|
18
|
+
new ExecutiveSpecialProgrammeRule(),
|
|
19
|
+
new MbaDegreeRule(),
|
|
16
20
|
];
|
|
17
21
|
constructor(dependencies) {
|
|
18
22
|
super(dependencies);
|
|
@@ -4,11 +4,12 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
7
8
|
export declare class DisciplineCountryFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
8
9
|
readonly name: string;
|
|
9
10
|
readonly description: string;
|
|
10
11
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | PartTimeFormatRule)[];
|
|
12
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
14
|
protected generateUrls(): Promise<string[]>;
|
|
14
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -6,6 +6,7 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
|
|
|
6
6
|
import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
|
|
7
7
|
import { CountryPresenter } from '../../presenters/CountryPresenter';
|
|
8
8
|
import { FormatPresenter } from '../../presenters/FormatPresenter';
|
|
9
|
+
import { PartTimeFormatRule } from '../rules/PartTimeFormatRule';
|
|
9
10
|
export class DisciplineCountryFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
10
11
|
name = 'Discipline Country Format Policy';
|
|
11
12
|
description = 'Determines indexing rules for pages filtered by both discipline, country, and format.';
|
|
@@ -15,6 +16,7 @@ export class DisciplineCountryFormat extends ProgrammesBaseIndexabilityPolicy {
|
|
|
15
16
|
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
16
17
|
new SingleValueSelectedForFilterRule(FilterKey.ATTENDANCE),
|
|
17
18
|
new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES, FilterKey.COUNTRY, FilterKey.ATTENDANCE]),
|
|
19
|
+
new PartTimeFormatRule()
|
|
18
20
|
];
|
|
19
21
|
constructor(dependencies) {
|
|
20
22
|
super(dependencies);
|
|
@@ -4,11 +4,12 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
+
import { OneOrTwoYearDurationRule } from '../rules/OneOrTwoYearDurationRule';
|
|
7
8
|
export declare class Duration extends ProgrammesBaseIndexabilityPolicy {
|
|
8
9
|
readonly name: string;
|
|
9
10
|
readonly description: string;
|
|
10
11
|
readonly filterKeys: FilterKey[];
|
|
11
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OneOrTwoYearDurationRule)[];
|
|
12
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
14
|
protected generateUrls(): Promise<string[]>;
|
|
14
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -4,13 +4,15 @@ import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValue
|
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
5
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
6
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
7
|
+
import { OneOrTwoYearDurationRule } from '../rules/OneOrTwoYearDurationRule';
|
|
7
8
|
export class Duration extends ProgrammesBaseIndexabilityPolicy {
|
|
8
9
|
name = 'Duration Policy';
|
|
9
10
|
description = 'Governs indexing of duration-level filtered pages. (1 year - 2 year)';
|
|
10
11
|
filterKeys = [FilterKey.DURATION];
|
|
11
12
|
rules = [
|
|
12
13
|
new SingleValueSelectedForFilterRule(FilterKey.DURATION),
|
|
13
|
-
new OnlyFiltersSelectedRule([FilterKey.DURATION])
|
|
14
|
+
new OnlyFiltersSelectedRule([FilterKey.DURATION]),
|
|
15
|
+
new OneOrTwoYearDurationRule()
|
|
14
16
|
];
|
|
15
17
|
constructor(dependencies) {
|
|
16
18
|
super(dependencies);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
2
|
+
import { SpecialProgrammesFilterOptionValue } from '@studyportals/search-filters/server-side';
|
|
3
|
+
import { BaseProgrammeFilterKeyValueRule } from '../BaseProgrammeFilterKeyValueRule';
|
|
4
|
+
export class ExecutiveSpecialProgrammeRule extends BaseProgrammeFilterKeyValueRule {
|
|
5
|
+
constructor() {
|
|
6
|
+
const filterKeyValues = new Map([[
|
|
7
|
+
FilterKey.SPECIAL_PROGRAMMES,
|
|
8
|
+
[SpecialProgrammesFilterOptionValue.EXECUTIVE_PROGRAMMES]
|
|
9
|
+
]
|
|
10
|
+
]);
|
|
11
|
+
super(filterKeyValues);
|
|
12
|
+
}
|
|
13
|
+
getName() {
|
|
14
|
+
return 'ExecutiveSpecialProgrammeRule';
|
|
15
|
+
}
|
|
16
|
+
getDescription() {
|
|
17
|
+
return 'Is indexable if the selected special programme is Executive.';
|
|
18
|
+
}
|
|
19
|
+
}
|