@studyportals/fawkes 8.1.2-8 → 8.1.3-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/dist/src/common/rules/BaseFilterKeyValueRule.js +3 -10
- package/dist/src/enums/FilterCombinations.d.ts +1 -27
- package/dist/src/enums/FilterCombinations.js +1 -27
- package/dist/src/presenters/AttendancePresenter.js +0 -4
- package/dist/src/presenters/FormatPresenter.js +1 -4
- package/dist/src/presenters/SpecialProgrammesPresenter.js +0 -4
- package/dist/src/programmes/SearchIndexabilityManager.js +3 -31
- package/dist/src/programmes/policies/AttendanceDegree.d.ts +3 -3
- package/dist/src/programmes/policies/AttendanceDegree.js +4 -4
- package/dist/src/programmes/policies/CountryDuration.d.ts +2 -2
- package/dist/src/programmes/policies/CountryDuration.js +4 -6
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +1 -2
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +12 -12
- package/dist/src/programmes/policies/DegreeCountryAttendance.js +3 -3
- package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +2 -2
- package/dist/src/programmes/policies/DisciplineArea.d.ts +1 -1
- package/dist/src/programmes/policies/DisciplineArea.js +1 -1
- package/dist/src/programmes/policies/DisciplineDuration.d.ts +2 -2
- package/dist/src/programmes/policies/DisciplineDuration.js +2 -2
- package/dist/src/programmes/policies/DisciplineTuitionFee.js +1 -1
- package/dist/src/programmes/policies/SpecialProgrammes.d.ts +2 -1
- package/dist/src/programmes/policies/SpecialProgrammes.js +2 -0
- package/dist/src/programmes/policies/index.d.ts +1 -29
- package/dist/src/programmes/policies/index.js +1 -29
- package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.js +2 -2
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +1 -0
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +4 -29
- package/dist/src/structured-data/ScholarshipStructuredDataFactory.d.ts +14 -0
- package/dist/src/structured-data/ScholarshipStructuredDataFactory.js +69 -0
- package/dist/src/structured-data/SearchStructuredDataFactory.d.ts +22 -2
- package/dist/src/structured-data/SearchStructuredDataFactory.js +64 -7
- package/dist/src/structured-data/dto/EntityDTO.d.ts +2 -0
- package/dist/src/structured-data/dto/PaywallDTO.d.ts +14 -0
- package/dist/src/structured-data/dto/index.d.ts +1 -0
- package/dist/src/structured-data/dto/index.js +1 -0
- package/dist/src/structured-data/index.d.ts +1 -0
- package/dist/src/structured-data/index.js +1 -0
- package/package.json +6 -6
- package/dist/src/common/IPolicyMetaData.d.ts +0 -6
- package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
- package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
- package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.d.ts +0 -13
- package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.js +0 -26
- package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +0 -6
- package/dist/src/organisations/rules/OnlineAttendanceRule.js +0 -14
- package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +0 -4
- package/dist/src/programmes/IProgrammeSearchApplicationState.js +0 -1
- package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +0 -7
- package/dist/src/programmes/IProgrammeSearchDependencies.js +0 -1
- package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +0 -2
- package/dist/src/programmes/IProgrammesSeoDependencies.js +0 -1
- package/dist/src/programmes/policies/AttendanceArea.d.ts +0 -16
- package/dist/src/programmes/policies/AttendanceArea.js +0 -48
- package/dist/src/programmes/policies/AttendanceContinent.d.ts +0 -16
- package/dist/src/programmes/policies/AttendanceContinent.js +0 -46
- package/dist/src/programmes/policies/AttendanceDuration.d.ts +0 -17
- package/dist/src/programmes/policies/AttendanceDuration.js +0 -50
- package/dist/src/programmes/policies/AttendanceFormat.d.ts +0 -16
- package/dist/src/programmes/policies/AttendanceFormat.js +0 -48
- package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -17
- package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -51
- package/dist/src/programmes/policies/ContinentDuration.d.ts +0 -16
- package/dist/src/programmes/policies/ContinentDuration.js +0 -48
- package/dist/src/programmes/policies/ContinentFormat.d.ts +0 -16
- package/dist/src/programmes/policies/ContinentFormat.js +0 -48
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +0 -16
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +0 -48
- package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +0 -16
- package/dist/src/programmes/policies/CountrySpecialProgrammes.js +0 -48
- package/dist/src/programmes/policies/DegreeArea.d.ts +0 -15
- package/dist/src/programmes/policies/DegreeArea.js +0 -46
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +0 -54
- package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +0 -17
- package/dist/src/programmes/policies/DegreeAttendanceFormat.js +0 -56
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +0 -17
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +0 -58
- package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +0 -18
- package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +0 -59
- package/dist/src/programmes/policies/DegreeContinent.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeContinent.js +0 -46
- package/dist/src/programmes/policies/DegreeContinentTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeContinentTuitionFee.js +0 -52
- package/dist/src/programmes/policies/DegreeDuration.d.ts +0 -17
- package/dist/src/programmes/policies/DegreeDuration.js +0 -50
- package/dist/src/programmes/policies/DegreeFormat.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeFormat.js +0 -48
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +0 -18
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +0 -56
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +0 -17
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +0 -52
- package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeTuitionFee.js +0 -49
- package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineContinentAttendance.js +0 -54
- package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineCountryAttendance.js +0 -54
- package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineCountryDegree.js +0 -53
- package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineCountryFormat.js +0 -54
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +0 -48
- package/dist/src/programmes/policies/Duration.d.ts +0 -16
- package/dist/src/programmes/policies/Duration.js +0 -40
- package/dist/src/programmes/policies/Format.d.ts +0 -15
- package/dist/src/programmes/policies/Format.js +0 -36
- package/dist/src/programmes/rules/AtLeastSevenResultsRule.d.ts +0 -15
- package/dist/src/programmes/rules/AtLeastSevenResultsRule.js +0 -30
- package/dist/src/programmes/rules/BlendedOrOnlineAttendanceRule.d.ts +0 -6
- package/dist/src/programmes/rules/BlendedOrOnlineAttendanceRule.js +0 -18
- package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.d.ts +0 -10
- package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.js +0 -42
- package/dist/src/programmes/rules/DegreeCountrySpecificRule.d.ts +0 -10
- package/dist/src/programmes/rules/DegreeCountrySpecificRule.js +0 -43
- package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.d.ts +0 -11
- package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.js +0 -40
- package/dist/src/programmes/rules/ErasmusOrExecutiveSpecialProgrammeRule.d.ts +0 -6
- package/dist/src/programmes/rules/ErasmusOrExecutiveSpecialProgrammeRule.js +0 -19
- package/dist/src/programmes/rules/ErasmusSpecialProgrammeRule.d.ts +0 -6
- package/dist/src/programmes/rules/ErasmusSpecialProgrammeRule.js +0 -19
- package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.d.ts +0 -6
- package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.js +0 -19
- package/dist/src/programmes/rules/MBACountryAttendanceRule.d.ts +0 -11
- package/dist/src/programmes/rules/MBACountryAttendanceRule.js +0 -40
- package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.d.ts +0 -10
- package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.js +0 -41
- package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.d.ts +0 -11
- package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.js +0 -69
- package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.d.ts +0 -12
- package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.js +0 -43
- package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.d.ts +0 -12
- package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.js +0 -46
- package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.d.ts +0 -12
- package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.js +0 -43
- package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.d.ts +0 -10
- package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.js +0 -41
- package/dist/src/programmes/rules/OneOrTwoYearDurationRule.d.ts +0 -6
- package/dist/src/programmes/rules/OneOrTwoYearDurationRule.js +0 -19
- package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +0 -11
- package/dist/src/programmes/rules/OneYearOnlyRule.js +0 -34
- package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +0 -6
- package/dist/src/programmes/rules/OnlineAttendanceRule.js +0 -15
- package/dist/src/programmes/rules/TwoYearDurationRule.d.ts +0 -6
- package/dist/src/programmes/rules/TwoYearDurationRule.js +0 -19
- package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +0 -3
- package/dist/src/sitemap-generator/IPageNumberProvider.js +0 -1
- /package/dist/src/{common/IPolicyMetaData.js → structured-data/dto/PaywallDTO.js} +0 -0
|
@@ -16,18 +16,11 @@ export class BaseFilterKeyValueRule {
|
|
|
16
16
|
forSitemapGenerator(filterKeyValues) {
|
|
17
17
|
for (const [key, values] of this.expectedFilterKeyValues) {
|
|
18
18
|
const filterValues = filterKeyValues.get(key);
|
|
19
|
-
if (!filterValues || filterValues.length
|
|
19
|
+
if (!filterValues || filterValues.length !== values.length) {
|
|
20
20
|
return Promise.resolve(false);
|
|
21
21
|
}
|
|
22
|
-
if (values.
|
|
23
|
-
|
|
24
|
-
return Promise.resolve(false);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
if (!values.some((value) => filterValues.includes(value))) {
|
|
29
|
-
return Promise.resolve(false);
|
|
30
|
-
}
|
|
22
|
+
if (!values.every((value) => filterValues.includes(value))) {
|
|
23
|
+
return Promise.resolve(false);
|
|
31
24
|
}
|
|
32
25
|
}
|
|
33
26
|
return Promise.resolve(true);
|
|
@@ -4,8 +4,6 @@ export declare enum FilterCombinations {
|
|
|
4
4
|
AREA_DISCIPLINE = "areaDiscipline",
|
|
5
5
|
COUNTRY = "country",
|
|
6
6
|
DEGREE = "degree",
|
|
7
|
-
DURATION = "duration",
|
|
8
|
-
FORMAT = "format",
|
|
9
7
|
COUNTRY_DEGREE = "countryDegree",
|
|
10
8
|
COUNTRY_DURATION = "countryDuration",
|
|
11
9
|
COUNTRY_FORMAT = "countryFormat",
|
|
@@ -13,10 +11,6 @@ export declare enum FilterCombinations {
|
|
|
13
11
|
COUNTRY_EDUCATIONAL_FORM = "countryEducationalForm",
|
|
14
12
|
COUNTRY_ATTENDANCE_DEGREE = "countryAttendanceDegree",
|
|
15
13
|
COUNTRY_DURATION_DEGREE = "countryDurationDegree",
|
|
16
|
-
COUNTRY_SPECIAL_PROGRAMMES = "countrySpecialProgrammes",
|
|
17
|
-
CONTINENT_FORMAT = "continentFormat",
|
|
18
|
-
CONTINENT_DURATION = "continentDuration",
|
|
19
|
-
CONTINENT_SPECIAL_PROGRAMMES = "continentSpecialProgrammes",
|
|
20
14
|
DISCIPLINE_AREA = "disciplineArea",
|
|
21
15
|
DISCIPLINE_ATTENDANCE = "disciplineAttendance",
|
|
22
16
|
DISCIPLINE_COUNTRY = "disciplineCountry",
|
|
@@ -28,36 +22,16 @@ export declare enum FilterCombinations {
|
|
|
28
22
|
DISCIPLINE_EDUCATIONAL_FORM = "disciplineEducationalForm",
|
|
29
23
|
DISCIPLINE_TUITION_FEE_ATTENDANCE = "disciplineTuitionFeeAttendance",
|
|
30
24
|
DISCIPLINE_COUNTRY_EDUCATIONAL_FORM = "disciplineCountryEducationalForm",
|
|
31
|
-
DISCIPLINE_CONTINENT_ATTENDANCE = "disciplineContinentAttendance",
|
|
32
|
-
DISCIPLINE_SPECIAL_PROGRAMMES = "disciplineSpecialProgrammes",
|
|
33
|
-
DISCIPLINE_COUNTRY_ATTENDANCE = "disciplineCountryAttendance",
|
|
34
|
-
DISCIPLINE_COUNTRY_FORMAT = "disciplineCountryFormat",
|
|
35
25
|
DEGREE_COUNTRY_DISCIPLINE = "degreeCountryDiscipline",
|
|
36
26
|
DEGREE_ATTENDANCE_DISCIPLINE = "degreeAttendanceDiscipline",
|
|
37
27
|
DEGREE_COUNTRY_TUITION_FEE = "degreeCountryTuitionFee",
|
|
38
28
|
DEGREE_COUNTRY_ATTENDANCE = "degreeCountryAttendance",
|
|
39
|
-
DEGREE_TUITION_FEE = "degreeTuitionFee",
|
|
40
|
-
DEGREE_ATTENDANCE_TUITION_FEE = "degreeAttendanceTuitionFee",
|
|
41
|
-
DEGREE_ATTENDANCE_FORMAT = "degreeAttendanceFormat",
|
|
42
|
-
DEGREE_AREA = "degreeArea",
|
|
43
|
-
DEGREE_FORMAT = "degreeFormat",
|
|
44
|
-
DEGREE_CONTINENT = "degreeContinent",
|
|
45
|
-
DEGREE_AREA_TUITION_FEE = "degreeAreaTuitionFee",
|
|
46
|
-
DEGREE_CONTINENT_TUITION_FEE = "degreeContinentTuitionFee",
|
|
47
|
-
DEGREE_DURATION = "degreeDuration",
|
|
48
|
-
DEGREE_FORMAT_TUITION_FEE = "degreeFormatTuitionFee",
|
|
49
|
-
DEGREE_SPECIAL_PROGRAMMES = "degreeSpecialProgrammes",
|
|
50
|
-
DEGREE_ATTENDANCE_SPECIAL_PROGRAMMES = "degreeAttendanceSpecialProgrammes",
|
|
51
29
|
DISCIPLINE = "discipline",
|
|
52
30
|
UNFILTERED = "unfiltered",
|
|
53
31
|
UNIVERSITY_COUNTRY = "universityCountry",
|
|
54
32
|
ATTENDANCE_DISCIPLINE = "attendancedDiscipline",
|
|
55
33
|
ATTENDANCE_DEGREE = "attendanceDegree",
|
|
56
|
-
|
|
57
|
-
ATTENDANCE_DURATION = "attendanceDuration",
|
|
58
|
-
ATTENDANCE_FORMAT = "attendanceFormat",
|
|
59
|
-
ATTENDANCE_AREA = "attendanceArea",
|
|
60
|
-
ATTENDANCE_CONTINENT = "attendanceContinent",
|
|
34
|
+
CONTINENT_ATTENDANCE = "continentAttendance",
|
|
61
35
|
COUNTRY_ATTENDANCE = "countryAttendance",
|
|
62
36
|
ATTENDANCE = "attendance",
|
|
63
37
|
CONTINENT = "continent",
|
|
@@ -5,8 +5,6 @@ export var FilterCombinations;
|
|
|
5
5
|
FilterCombinations["AREA_DISCIPLINE"] = "areaDiscipline";
|
|
6
6
|
FilterCombinations["COUNTRY"] = "country";
|
|
7
7
|
FilterCombinations["DEGREE"] = "degree";
|
|
8
|
-
FilterCombinations["DURATION"] = "duration";
|
|
9
|
-
FilterCombinations["FORMAT"] = "format";
|
|
10
8
|
FilterCombinations["COUNTRY_DEGREE"] = "countryDegree";
|
|
11
9
|
FilterCombinations["COUNTRY_DURATION"] = "countryDuration";
|
|
12
10
|
FilterCombinations["COUNTRY_FORMAT"] = "countryFormat";
|
|
@@ -14,10 +12,6 @@ export var FilterCombinations;
|
|
|
14
12
|
FilterCombinations["COUNTRY_EDUCATIONAL_FORM"] = "countryEducationalForm";
|
|
15
13
|
FilterCombinations["COUNTRY_ATTENDANCE_DEGREE"] = "countryAttendanceDegree";
|
|
16
14
|
FilterCombinations["COUNTRY_DURATION_DEGREE"] = "countryDurationDegree";
|
|
17
|
-
FilterCombinations["COUNTRY_SPECIAL_PROGRAMMES"] = "countrySpecialProgrammes";
|
|
18
|
-
FilterCombinations["CONTINENT_FORMAT"] = "continentFormat";
|
|
19
|
-
FilterCombinations["CONTINENT_DURATION"] = "continentDuration";
|
|
20
|
-
FilterCombinations["CONTINENT_SPECIAL_PROGRAMMES"] = "continentSpecialProgrammes";
|
|
21
15
|
FilterCombinations["DISCIPLINE_AREA"] = "disciplineArea";
|
|
22
16
|
FilterCombinations["DISCIPLINE_ATTENDANCE"] = "disciplineAttendance";
|
|
23
17
|
FilterCombinations["DISCIPLINE_COUNTRY"] = "disciplineCountry";
|
|
@@ -29,36 +23,16 @@ export var FilterCombinations;
|
|
|
29
23
|
FilterCombinations["DISCIPLINE_EDUCATIONAL_FORM"] = "disciplineEducationalForm";
|
|
30
24
|
FilterCombinations["DISCIPLINE_TUITION_FEE_ATTENDANCE"] = "disciplineTuitionFeeAttendance";
|
|
31
25
|
FilterCombinations["DISCIPLINE_COUNTRY_EDUCATIONAL_FORM"] = "disciplineCountryEducationalForm";
|
|
32
|
-
FilterCombinations["DISCIPLINE_CONTINENT_ATTENDANCE"] = "disciplineContinentAttendance";
|
|
33
|
-
FilterCombinations["DISCIPLINE_SPECIAL_PROGRAMMES"] = "disciplineSpecialProgrammes";
|
|
34
|
-
FilterCombinations["DISCIPLINE_COUNTRY_ATTENDANCE"] = "disciplineCountryAttendance";
|
|
35
|
-
FilterCombinations["DISCIPLINE_COUNTRY_FORMAT"] = "disciplineCountryFormat";
|
|
36
26
|
FilterCombinations["DEGREE_COUNTRY_DISCIPLINE"] = "degreeCountryDiscipline";
|
|
37
27
|
FilterCombinations["DEGREE_ATTENDANCE_DISCIPLINE"] = "degreeAttendanceDiscipline";
|
|
38
28
|
FilterCombinations["DEGREE_COUNTRY_TUITION_FEE"] = "degreeCountryTuitionFee";
|
|
39
29
|
FilterCombinations["DEGREE_COUNTRY_ATTENDANCE"] = "degreeCountryAttendance";
|
|
40
|
-
FilterCombinations["DEGREE_TUITION_FEE"] = "degreeTuitionFee";
|
|
41
|
-
FilterCombinations["DEGREE_ATTENDANCE_TUITION_FEE"] = "degreeAttendanceTuitionFee";
|
|
42
|
-
FilterCombinations["DEGREE_ATTENDANCE_FORMAT"] = "degreeAttendanceFormat";
|
|
43
|
-
FilterCombinations["DEGREE_AREA"] = "degreeArea";
|
|
44
|
-
FilterCombinations["DEGREE_FORMAT"] = "degreeFormat";
|
|
45
|
-
FilterCombinations["DEGREE_CONTINENT"] = "degreeContinent";
|
|
46
|
-
FilterCombinations["DEGREE_AREA_TUITION_FEE"] = "degreeAreaTuitionFee";
|
|
47
|
-
FilterCombinations["DEGREE_CONTINENT_TUITION_FEE"] = "degreeContinentTuitionFee";
|
|
48
|
-
FilterCombinations["DEGREE_DURATION"] = "degreeDuration";
|
|
49
|
-
FilterCombinations["DEGREE_FORMAT_TUITION_FEE"] = "degreeFormatTuitionFee";
|
|
50
|
-
FilterCombinations["DEGREE_SPECIAL_PROGRAMMES"] = "degreeSpecialProgrammes";
|
|
51
|
-
FilterCombinations["DEGREE_ATTENDANCE_SPECIAL_PROGRAMMES"] = "degreeAttendanceSpecialProgrammes";
|
|
52
30
|
FilterCombinations["DISCIPLINE"] = "discipline";
|
|
53
31
|
FilterCombinations["UNFILTERED"] = "unfiltered";
|
|
54
32
|
FilterCombinations["UNIVERSITY_COUNTRY"] = "universityCountry";
|
|
55
33
|
FilterCombinations["ATTENDANCE_DISCIPLINE"] = "attendancedDiscipline";
|
|
56
34
|
FilterCombinations["ATTENDANCE_DEGREE"] = "attendanceDegree";
|
|
57
|
-
FilterCombinations["
|
|
58
|
-
FilterCombinations["ATTENDANCE_DURATION"] = "attendanceDuration";
|
|
59
|
-
FilterCombinations["ATTENDANCE_FORMAT"] = "attendanceFormat";
|
|
60
|
-
FilterCombinations["ATTENDANCE_AREA"] = "attendanceArea";
|
|
61
|
-
FilterCombinations["ATTENDANCE_CONTINENT"] = "attendanceContinent";
|
|
35
|
+
FilterCombinations["CONTINENT_ATTENDANCE"] = "continentAttendance";
|
|
62
36
|
FilterCombinations["COUNTRY_ATTENDANCE"] = "countryAttendance";
|
|
63
37
|
FilterCombinations["ATTENDANCE"] = "attendance";
|
|
64
38
|
FilterCombinations["CONTINENT"] = "continent";
|
|
@@ -4,14 +4,11 @@ export class FormatPresenter {
|
|
|
4
4
|
static instance;
|
|
5
5
|
fragments;
|
|
6
6
|
constructor() {
|
|
7
|
+
// Part-time is the only indexable format according to PartTimeFormatRule
|
|
7
8
|
this.fragments = [
|
|
8
9
|
{
|
|
9
10
|
id: FormatFilterOptionValue.PART_TIME,
|
|
10
11
|
path: 'part-time'
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
id: FormatFilterOptionValue.FULL_TIME,
|
|
14
|
-
path: 'full-time'
|
|
15
12
|
}
|
|
16
13
|
];
|
|
17
14
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
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
|
|
1
|
+
import { Area, Attendance, AttendanceDegree, Continent, ContinentTuitionFee, Country, CountryAttendance, CountryAttendanceDegree, CountryDegree, CountryDuration, CountryDurationDegree, CountryEducationalForm, CountryFormat, CountryTuitionFee, DegreeAttendanceDiscipline, DegreeCountryAttendance, DegreeCountryDiscipline, DegreeCountryTuitionFee, Discipline, DisciplineArea, DisciplineAttendance, DisciplineContinent, DisciplineCountry, DisciplineCountryEducationalForm, DisciplineDegree, DisciplineDuration, DisciplineEducationalForm, DisciplineFormat, DisciplineTuitionFee, DisciplineTuitionFeeAttendance, SpecialProgrammes, TuitionFee, Unfiltered } from './policies';
|
|
2
2
|
import { DependencyTypes } from '../enums/DependencyTypes';
|
|
3
3
|
import { Degree } from './policies/Degree';
|
|
4
|
-
import { DisciplineSpecialProgrammes } from './policies/DisciplineSpecialProgrammes';
|
|
5
|
-
import { DegreeAttendanceSpecialProgrammes } from './policies/DegreeAttendanceSpecialProgrammes';
|
|
6
4
|
export class SearchIndexabilityManager {
|
|
7
5
|
policies;
|
|
8
6
|
constructor(portalType, seoInfoBase, filterState, applicationState) {
|
|
@@ -33,8 +31,8 @@ export class SearchIndexabilityManager {
|
|
|
33
31
|
new DegreeCountryAttendance(dependencies),
|
|
34
32
|
new DegreeCountryDiscipline(dependencies),
|
|
35
33
|
new DegreeCountryTuitionFee(dependencies),
|
|
36
|
-
new DegreeAttendanceSpecialProgrammes(dependencies),
|
|
37
34
|
new Discipline(dependencies),
|
|
35
|
+
new DisciplineArea(dependencies),
|
|
38
36
|
new DisciplineAttendance(dependencies),
|
|
39
37
|
new DisciplineContinent(dependencies),
|
|
40
38
|
new DisciplineCountry(dependencies),
|
|
@@ -46,34 +44,8 @@ export class SearchIndexabilityManager {
|
|
|
46
44
|
new DisciplineTuitionFee(dependencies),
|
|
47
45
|
new DisciplineTuitionFeeAttendance(dependencies),
|
|
48
46
|
new SpecialProgrammes(dependencies),
|
|
49
|
-
new DisciplineSpecialProgrammes(dependencies),
|
|
50
47
|
new TuitionFee(dependencies),
|
|
51
|
-
new Unfiltered(dependencies)
|
|
52
|
-
new CountrySpecialProgrammes(dependencies),
|
|
53
|
-
new DegreeArea(dependencies),
|
|
54
|
-
new DegreeAreaTuitionFee(dependencies),
|
|
55
|
-
new DegreeAttendanceFormat(dependencies),
|
|
56
|
-
new DegreeAttendanceTuitionFee(dependencies),
|
|
57
|
-
new DegreeContinent(dependencies),
|
|
58
|
-
new DegreeContinentTuitionFee(dependencies),
|
|
59
|
-
new DegreeDuration(dependencies),
|
|
60
|
-
new DegreeFormat(dependencies),
|
|
61
|
-
new DegreeFormatTuitionFee(dependencies),
|
|
62
|
-
new DegreeSpecialProgrammes(dependencies),
|
|
63
|
-
new DegreeTuitionFee(dependencies),
|
|
64
|
-
new DisciplineContinentAttendance(dependencies),
|
|
65
|
-
new DisciplineCountryAttendance(dependencies),
|
|
66
|
-
new DisciplineCountryFormat(dependencies),
|
|
67
|
-
new Duration(dependencies),
|
|
68
|
-
new Format(dependencies),
|
|
69
|
-
new AttendanceArea(dependencies),
|
|
70
|
-
new AttendanceContinent(dependencies),
|
|
71
|
-
new AttendanceDuration(dependencies),
|
|
72
|
-
new AttendanceFormat(dependencies),
|
|
73
|
-
new AttendanceTuitionFee(dependencies),
|
|
74
|
-
new ContinentDuration(dependencies),
|
|
75
|
-
new ContinentFormat(dependencies),
|
|
76
|
-
new ContinentSpecialProgrammes(dependencies),
|
|
48
|
+
new Unfiltered(dependencies)
|
|
77
49
|
];
|
|
78
50
|
}
|
|
79
51
|
getPolicies() {
|
|
@@ -2,15 +2,15 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
6
|
+
import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
|
|
5
7
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
8
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
-
import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
|
|
8
|
-
import { BlendedOrOnlineAttendanceRule } from '../rules/BlendedOrOnlineAttendanceRule';
|
|
9
9
|
export declare class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
|
|
10
10
|
readonly name: string;
|
|
11
11
|
readonly description: string;
|
|
12
12
|
readonly filterKeys: FilterKey[];
|
|
13
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule |
|
|
13
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | IndexableDegreeRule)[];
|
|
14
14
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
15
15
|
protected generateUrls(): Promise<string[]>;
|
|
16
16
|
get filterCombination(): FilterCombinations;
|
|
@@ -2,21 +2,21 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
6
|
+
import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
|
|
5
7
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
8
|
import { AttendancePresenter } from '../../presenters/AttendancePresenter';
|
|
7
9
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
8
|
-
import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
|
|
9
|
-
import { BlendedOrOnlineAttendanceRule } from '../rules/BlendedOrOnlineAttendanceRule';
|
|
10
10
|
export class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
|
|
11
11
|
name = 'Attendance Degree Type Policy';
|
|
12
|
-
description = 'Determines indexing rules for pages filtered by both study format (online,
|
|
12
|
+
description = 'Determines indexing rules for pages filtered by both study format (online, on-campus, etc.), and degree type prioritizing degrees and formats with demonstrated search demand.';
|
|
13
13
|
filterKeys = [FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE];
|
|
14
14
|
rules = [
|
|
15
15
|
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
16
16
|
new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
|
|
17
17
|
new OnlyFiltersSelectedRule([FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE]),
|
|
18
18
|
new IndexableDegreeRule(),
|
|
19
|
-
new
|
|
19
|
+
new OnlineAttendanceRule()
|
|
20
20
|
];
|
|
21
21
|
constructor(dependencies) {
|
|
22
22
|
super(dependencies);
|
|
@@ -2,14 +2,14 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
-
import {
|
|
5
|
+
import { IndexableDurationRule } from '../rules/IndexableDurationRule';
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
8
8
|
export declare class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
9
9
|
readonly name: string;
|
|
10
10
|
readonly description: string;
|
|
11
11
|
readonly filterKeys: FilterKey[];
|
|
12
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule |
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDurationRule)[];
|
|
13
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
14
14
|
protected generateUrls(): Promise<string[]>;
|
|
15
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -2,19 +2,19 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
-
import {
|
|
5
|
+
import { IndexableDurationRule } from '../rules/IndexableDurationRule';
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { CountryPresenter } from '../../presenters/CountryPresenter';
|
|
8
8
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
9
9
|
export class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
10
10
|
name = 'Country Duration Policy';
|
|
11
|
-
description = 'Determines indexing rules for pages filtered by both country, and duration (1 year
|
|
11
|
+
description = 'Determines indexing rules for pages filtered by both country, and duration (1 year, 2 years, etc.).';
|
|
12
12
|
filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION];
|
|
13
13
|
rules = [
|
|
14
14
|
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
15
15
|
new SingleValueSelectedForFilterRule(FilterKey.DURATION),
|
|
16
16
|
new OnlyFiltersSelectedRule([FilterKey.COUNTRY, FilterKey.DURATION]),
|
|
17
|
-
new
|
|
17
|
+
new IndexableDurationRule()
|
|
18
18
|
];
|
|
19
19
|
constructor(dependencies) {
|
|
20
20
|
super(dependencies);
|
|
@@ -23,12 +23,10 @@ export class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
|
23
23
|
async generateUrls() {
|
|
24
24
|
const countryFragments = CountryPresenter.getInstance().getFragments();
|
|
25
25
|
const durationFragments = DurationPresenter.getInstance().getFragments();
|
|
26
|
-
const allowedDurationIds = ["[360,360]"];
|
|
27
|
-
const allowedDurations = durationFragments.filter(duration => allowedDurationIds.includes(duration.id));
|
|
28
26
|
const paths = [];
|
|
29
27
|
for (const pageNumber of this.indexablePageNumbers) {
|
|
30
28
|
for (const country of countryFragments) {
|
|
31
|
-
for (const duration of
|
|
29
|
+
for (const duration of durationFragments) {
|
|
32
30
|
const filterKeyValues = new Map([
|
|
33
31
|
[FilterKey.COUNTRY, [country.id]],
|
|
34
32
|
[FilterKey.DURATION, [duration.id]]
|
|
@@ -5,12 +5,11 @@ import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
|
5
5
|
import { DegreeAttendanceDisciplineSpecificRule } from '../rules/DegreeAttendanceDisciplineSpecificRule';
|
|
6
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
7
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
8
|
-
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
9
8
|
export declare class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy {
|
|
10
9
|
readonly name: string;
|
|
11
10
|
readonly description: string;
|
|
12
11
|
readonly filterKeys: FilterKey[];
|
|
13
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule |
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | DegreeAttendanceDisciplineSpecificRule)[];
|
|
14
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
15
14
|
protected generateUrls(): Promise<string[]>;
|
|
16
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -8,7 +8,6 @@ import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityP
|
|
|
8
8
|
import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
9
9
|
import { AttendancePresenter } from '../../presenters/AttendancePresenter';
|
|
10
10
|
import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
|
|
11
|
-
import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
|
|
12
11
|
export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy {
|
|
13
12
|
name = 'Degree Attendance Discipline Policy';
|
|
14
13
|
description = 'Determines indexing rules for pages filtered by degree type, attendance, and discipline.';
|
|
@@ -19,7 +18,6 @@ export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy
|
|
|
19
18
|
new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
|
|
20
19
|
new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.DELIVERY_METHOD, FilterKey.DISCIPLINES]),
|
|
21
20
|
new DegreeAttendanceDisciplineSpecificRule(),
|
|
22
|
-
new OnlineAttendanceRule()
|
|
23
21
|
];
|
|
24
22
|
constructor(dependencies) {
|
|
25
23
|
super(dependencies);
|
|
@@ -35,22 +33,24 @@ export class DegreeAttendanceDiscipline extends ProgrammesBaseIndexabilityPolicy
|
|
|
35
33
|
DegreeTypeFilterOptionValue.MSC,
|
|
36
34
|
DegreeTypeFilterOptionValue.MBA
|
|
37
35
|
];
|
|
36
|
+
const onlineAttendance = attendanceFragments.find(a => a.id === 'online');
|
|
37
|
+
if (!onlineAttendance) {
|
|
38
|
+
return paths;
|
|
39
|
+
}
|
|
38
40
|
for (const pageNumber of this.indexablePageNumbers) {
|
|
39
41
|
for (const degreeId of allowedDegreeIds) {
|
|
40
42
|
const degree = degreeFragments.find(d => d.id === degreeId);
|
|
41
43
|
if (!degree)
|
|
42
44
|
continue;
|
|
43
45
|
for (const discipline of disciplineFragments) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
paths.push(this.getPathWithPageNumber(`${degree.path}/${attendance.path}/${discipline.path}`, pageNumber));
|
|
53
|
-
}
|
|
46
|
+
const filterKeyValues = new Map([
|
|
47
|
+
[FilterKey.DEGREE_TYPE, [degree.id]],
|
|
48
|
+
[FilterKey.DELIVERY_METHOD, [onlineAttendance.id]],
|
|
49
|
+
[FilterKey.DISCIPLINES, [discipline.id]]
|
|
50
|
+
]);
|
|
51
|
+
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
52
|
+
if (result) {
|
|
53
|
+
paths.push(this.getPathWithPageNumber(`${degree.path}/${onlineAttendance.path}/${discipline.path}`, pageNumber));
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -47,7 +47,7 @@ export class DegreeCountryAttendance extends ProgrammesBaseIndexabilityPolicy {
|
|
|
47
47
|
]);
|
|
48
48
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
49
49
|
if (result) {
|
|
50
|
-
paths.push(this.getPathWithPageNumber(`${mba.path}/${
|
|
50
|
+
paths.push(this.getPathWithPageNumber(`${mba.path}/${country.path}/${onlineAttendance.path}`, pageNumber));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -61,7 +61,7 @@ export class DegreeCountryAttendance extends ProgrammesBaseIndexabilityPolicy {
|
|
|
61
61
|
]);
|
|
62
62
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
63
63
|
if (result) {
|
|
64
|
-
paths.push(this.getPathWithPageNumber(`${llm.path}/${
|
|
64
|
+
paths.push(this.getPathWithPageNumber(`${llm.path}/${country.path}/${onlineAttendance.path}`, pageNumber));
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -75,7 +75,7 @@ export class DegreeCountryAttendance extends ProgrammesBaseIndexabilityPolicy {
|
|
|
75
75
|
]);
|
|
76
76
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
77
77
|
if (result) {
|
|
78
|
-
paths.push(this.getPathWithPageNumber(`${mphil.path}/${
|
|
78
|
+
paths.push(this.getPathWithPageNumber(`${mphil.path}/${country.path}/${onlineAttendance.path}`, pageNumber));
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -46,7 +46,7 @@ export class DegreeCountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
|
46
46
|
]);
|
|
47
47
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
48
48
|
if (result) {
|
|
49
|
-
paths.push(this.getPathWithPageNumber(`${mba.path}/${
|
|
49
|
+
paths.push(this.getPathWithPageNumber(`${mba.path}/${country.path}/${affordableTuition.path}`, pageNumber));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -60,7 +60,7 @@ export class DegreeCountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
|
60
60
|
]);
|
|
61
61
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
62
62
|
if (result) {
|
|
63
|
-
paths.push(this.getPathWithPageNumber(`${llm.path}/${
|
|
63
|
+
paths.push(this.getPathWithPageNumber(`${llm.path}/${country.path}/${affordableTuition.path}`, pageNumber));
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FilterKey } from '@studyportals/search-filters';
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FilterKey } from '@studyportals/search-filters';
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
@@ -2,14 +2,14 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { IndexableDurationRule } from '../rules/IndexableDurationRule';
|
|
5
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
|
-
import { OneOrTwoYearDurationRule } from '../rules/OneOrTwoYearDurationRule';
|
|
8
8
|
export declare class DisciplineDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
9
9
|
readonly name: string;
|
|
10
10
|
readonly description: string;
|
|
11
11
|
readonly filterKeys: FilterKey[];
|
|
12
|
-
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule |
|
|
12
|
+
protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDurationRule)[];
|
|
13
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
14
14
|
protected generateUrls(): Promise<string[]>;
|
|
15
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -2,10 +2,10 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { IndexableDurationRule } from '../rules/IndexableDurationRule';
|
|
5
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
7
|
import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
|
|
7
8
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
8
|
-
import { OneOrTwoYearDurationRule } from '../rules/OneOrTwoYearDurationRule';
|
|
9
9
|
export class DisciplineDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
10
10
|
name = 'Discipline Duration Policy';
|
|
11
11
|
description = 'Determines indexing rules for pages filtered by both discipline, and duration (1 year, 2 years, etc.).';
|
|
@@ -14,7 +14,7 @@ export class DisciplineDuration extends ProgrammesBaseIndexabilityPolicy {
|
|
|
14
14
|
new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
|
|
15
15
|
new SingleValueSelectedForFilterRule(FilterKey.DURATION),
|
|
16
16
|
new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES, FilterKey.DURATION]),
|
|
17
|
-
new
|
|
17
|
+
new IndexableDurationRule()
|
|
18
18
|
];
|
|
19
19
|
constructor(dependencies) {
|
|
20
20
|
super(dependencies);
|
|
@@ -33,7 +33,7 @@ export class DisciplineTuitionFee extends ProgrammesBaseIndexabilityPolicy {
|
|
|
33
33
|
]);
|
|
34
34
|
const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
|
|
35
35
|
if (result) {
|
|
36
|
-
paths.push(this.getPathWithPageNumber(`${
|
|
36
|
+
paths.push(this.getPathWithPageNumber(`${tuitionFee.path}/${discipline.path}`, pageNumber));
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -2,13 +2,14 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { ErasmusOrJointSpecialProgrammesRule } from '../rules/ErasmusOrJointSpecialProgrammesRule';
|
|
5
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
7
|
import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
|
|
7
8
|
export declare class SpecialProgrammes 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 | ErasmusOrJointSpecialProgrammesRule)[];
|
|
12
13
|
constructor(dependencies: IProgrammeSeoDependencies);
|
|
13
14
|
protected generateUrls(): Promise<string[]>;
|
|
14
15
|
get filterCombination(): FilterCombinations;
|
|
@@ -2,6 +2,7 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
|
2
2
|
import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
|
|
3
3
|
import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
4
|
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
5
|
+
import { ErasmusOrJointSpecialProgrammesRule } from '../rules/ErasmusOrJointSpecialProgrammesRule';
|
|
5
6
|
import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
|
|
6
7
|
import { SpecialProgrammesPresenter } from '../../presenters/SpecialProgrammesPresenter';
|
|
7
8
|
export class SpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
@@ -11,6 +12,7 @@ export class SpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
|
11
12
|
rules = [
|
|
12
13
|
new SingleValueSelectedForFilterRule(FilterKey.SPECIAL_PROGRAMMES),
|
|
13
14
|
new OnlyFiltersSelectedRule([FilterKey.SPECIAL_PROGRAMMES]),
|
|
15
|
+
new ErasmusOrJointSpecialProgrammesRule()
|
|
14
16
|
];
|
|
15
17
|
constructor(dependencies) {
|
|
16
18
|
super(dependencies);
|
|
@@ -18,6 +18,7 @@ export * from './DegreeCountryDiscipline';
|
|
|
18
18
|
export * from './DegreeCountryTuitionFee';
|
|
19
19
|
export * from './DisciplineDegree';
|
|
20
20
|
export * from './Discipline';
|
|
21
|
+
export * from './DisciplineArea';
|
|
21
22
|
export * from './DisciplineAttendance';
|
|
22
23
|
export * from './DisciplineContinent';
|
|
23
24
|
export * from './DisciplineCountry';
|
|
@@ -31,32 +32,3 @@ export * from './DisciplineTuitionFeeAttendance';
|
|
|
31
32
|
export * from './SpecialProgrammes';
|
|
32
33
|
export * from './TuitionFee';
|
|
33
34
|
export * from './Unfiltered';
|
|
34
|
-
export * from './Format';
|
|
35
|
-
export * from './DegreeFormat';
|
|
36
|
-
export * from './DegreeAttendanceTuitionFee';
|
|
37
|
-
export * from './DegreeArea';
|
|
38
|
-
export * from './DegreeTuitionFee';
|
|
39
|
-
export * from './DegreeAttendanceTuitionFee';
|
|
40
|
-
export * from './DegreeContinent';
|
|
41
|
-
export * from './AttendanceTuitionFee';
|
|
42
|
-
export * from './Duration';
|
|
43
|
-
export * from './AttendanceDuration';
|
|
44
|
-
export * from './DegreeAreaTuitionFee';
|
|
45
|
-
export * from './DisciplineContinentAttendance';
|
|
46
|
-
export * from './DegreeContinentTuitionFee';
|
|
47
|
-
export * from './AttendanceFormat';
|
|
48
|
-
export * from './ContinentFormat';
|
|
49
|
-
export * from './AttendanceContinent';
|
|
50
|
-
export * from './DegreeDuration';
|
|
51
|
-
export * from './ContinentSpecialProgrammes';
|
|
52
|
-
export * from './CountrySpecialProgrammes';
|
|
53
|
-
export * from './AttendanceArea';
|
|
54
|
-
export * from './DegreeFormatTuitionFee';
|
|
55
|
-
export * from './ContinentDuration';
|
|
56
|
-
export * from './DegreeAttendanceFormat';
|
|
57
|
-
export * from './DisciplineCountryAttendance';
|
|
58
|
-
export * from './DisciplineCountryFormat';
|
|
59
|
-
export * from './DegreeSpecialProgrammes';
|
|
60
|
-
export * from './Degree';
|
|
61
|
-
export * from './DisciplineSpecialProgrammes';
|
|
62
|
-
export * from './DegreeAttendanceSpecialProgrammes';
|