@studyportals/fawkes 7.4.2-0 → 7.4.2-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/README.md +176 -176
- package/dist/src/enums/FilterCombinations.d.ts +1 -22
- package/dist/src/enums/FilterCombinations.js +1 -22
- 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 -27
- package/dist/src/programmes/policies/AttendanceDegree.d.ts +3 -2
- package/dist/src/programmes/policies/AttendanceDegree.js +6 -7
- package/dist/src/programmes/policies/CountryAttendanceDegree.js +1 -1
- package/dist/src/programmes/policies/CountryDuration.d.ts +2 -2
- package/dist/src/programmes/policies/CountryDuration.js +4 -6
- package/dist/src/programmes/policies/CountryDurationDegree.js +1 -1
- package/dist/src/programmes/policies/CountryEducationalForm.js +1 -1
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +1 -2
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +12 -12
- package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +1 -1
- package/dist/src/programmes/policies/DisciplineEducationalForm.js +1 -1
- package/dist/src/programmes/policies/SpecialProgrammes.d.ts +2 -1
- package/dist/src/programmes/policies/SpecialProgrammes.js +3 -1
- package/dist/src/programmes/policies/index.d.ts +1 -26
- package/dist/src/programmes/policies/index.js +1 -26
- package/dist/src/scholarships/policies/UniversityCountry.js +1 -1
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +3 -27
- package/package.json +105 -105
- package/dist/src/common/IPolicyMetaData.d.ts +0 -6
- package/dist/src/common/IPolicyMetaData.js +0 -1
- package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
- package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
- 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 -16
- package/dist/src/programmes/policies/AttendanceDuration.js +0 -48
- 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 -16
- package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -49
- package/dist/src/programmes/policies/ContinentDuration.d.ts +0 -15
- package/dist/src/programmes/policies/ContinentDuration.js +0 -46
- package/dist/src/programmes/policies/ContinentFormat.d.ts +0 -15
- package/dist/src/programmes/policies/ContinentFormat.js +0 -46
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +0 -15
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +0 -46
- package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +0 -15
- package/dist/src/programmes/policies/CountrySpecialProgrammes.js +0 -46
- 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 -15
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +0 -52
- package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +0 -15
- package/dist/src/programmes/policies/DegreeAttendanceFormat.js +0 -52
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +0 -56
- package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +0 -55
- 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 -16
- package/dist/src/programmes/policies/DegreeDuration.js +0 -48
- package/dist/src/programmes/policies/DegreeFormat.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeFormat.js +0 -49
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +0 -52
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +0 -15
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +0 -48
- package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +0 -15
- package/dist/src/programmes/policies/DegreeTuitionFee.js +0 -47
- 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 -15
- package/dist/src/programmes/policies/DisciplineCountryFormat.js +0 -52
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +0 -15
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +0 -46
- package/dist/src/programmes/policies/Duration.d.ts +0 -15
- package/dist/src/programmes/policies/Duration.js +0 -35
- package/dist/src/programmes/policies/Format.d.ts +0 -15
- package/dist/src/programmes/policies/Format.js +0 -35
- 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/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/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/sitemap-generator/IPageNumberProvider.d.ts +0 -3
- package/dist/src/sitemap-generator/IPageNumberProvider.js +0 -1
|
@@ -2,19 +2,19 @@ import { FilterKey } from '@studyportals/search-filters';
|
|
|
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]]
|
|
@@ -10,7 +10,7 @@ import { DegreePresenter } from '../../presenters/DegreePresenter';
|
|
|
10
10
|
import { DurationPresenter } from '../../presenters/DurationPresenter';
|
|
11
11
|
export class CountryDurationDegree extends ProgrammesBaseIndexabilityPolicy {
|
|
12
12
|
name = 'Country Duration Degree Policy';
|
|
13
|
-
description = `Determines indexing rules for pages filtered by country,
|
|
13
|
+
description = `Determines indexing rules for pages filtered by country,
|
|
14
14
|
duration (1 year, 2 years, etc.), and degree type.`;
|
|
15
15
|
filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION, FilterKey.DEGREE_TYPE];
|
|
16
16
|
rules = [
|
|
@@ -8,7 +8,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
|
|
|
8
8
|
import { EducationalFormPresenter } from '../../presenters/EducationalFormPresenter';
|
|
9
9
|
export class CountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
|
|
10
10
|
name = 'Country Educational Form Policy';
|
|
11
|
-
description = `Determines indexing rules for pages filtered by both country,
|
|
11
|
+
description = `Determines indexing rules for pages filtered by both country,
|
|
12
12
|
and educational form (academic, semester, summer school, etc.).`;
|
|
13
13
|
filterKeys = [FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
|
|
14
14
|
rules = [
|
|
@@ -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
|
}
|
|
@@ -9,7 +9,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
|
|
|
9
9
|
import { EducationalFormPresenter } from '../../presenters/EducationalFormPresenter';
|
|
10
10
|
export class DisciplineCountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
|
|
11
11
|
name = 'Discipline Country Educational Form Policy';
|
|
12
|
-
description = `Determines indexing rules for pages filtered by discipline,
|
|
12
|
+
description = `Determines indexing rules for pages filtered by discipline,
|
|
13
13
|
country, and educational form (academic, semester, summer school, etc.).`;
|
|
14
14
|
filterKeys = [FilterKey.DISCIPLINES, FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
|
|
15
15
|
rules = [
|
|
@@ -8,7 +8,7 @@ import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
|
|
|
8
8
|
import { EducationalFormPresenter } from '../../presenters/EducationalFormPresenter';
|
|
9
9
|
export class DisciplineEducationalForm extends ProgrammesBaseIndexabilityPolicy {
|
|
10
10
|
name = 'Discipline Educational Form Policy';
|
|
11
|
-
description = `Determines indexing rules for pages filtered by both discipline,
|
|
11
|
+
description = `Determines indexing rules for pages filtered by both discipline,
|
|
12
12
|
and educational form (academic, semester, summer school, etc.).`;
|
|
13
13
|
filterKeys = [FilterKey.DISCIPLINES, FilterKey.EDUCATIONAL_FORM];
|
|
14
14
|
rules = [
|
|
@@ -2,13 +2,14 @@ import { FilterKey } from '@studyportals/search-filters';
|
|
|
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';
|
|
|
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 {
|
|
@@ -10,7 +11,8 @@ export class SpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
|
|
|
10
11
|
filterKeys = [FilterKey.SPECIAL_PROGRAMMES];
|
|
11
12
|
rules = [
|
|
12
13
|
new SingleValueSelectedForFilterRule(FilterKey.SPECIAL_PROGRAMMES),
|
|
13
|
-
new OnlyFiltersSelectedRule([FilterKey.SPECIAL_PROGRAMMES])
|
|
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,29 +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';
|
|
@@ -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,29 +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';
|
|
@@ -27,7 +27,7 @@ export class UniversityCountry extends ScholarshipSeoIndexabilityPolicy {
|
|
|
27
27
|
for (const iso of org.countryIsoCodes) {
|
|
28
28
|
const countryVirtualPath = isoToPath.get(iso.toUpperCase());
|
|
29
29
|
if (countryVirtualPath) {
|
|
30
|
-
paths.push(`${countryVirtualPath}/${org.virtualPath}
|
|
30
|
+
paths.push(`${countryVirtualPath}/${org.virtualPath}`);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DependencyTypes } from '../enums/DependencyTypes';
|
|
2
2
|
import { BaseSitemapUrlGeneratorManager } from './BaseSitemapUrlGeneratorManager';
|
|
3
|
-
import { Area, Attendance, AttendanceDegree, Continent, ContinentTuitionFee, Country, CountryAttendance, Discipline, SpecialProgrammes, TuitionFee, Unfiltered, CountryAttendanceDegree, CountryDuration, CountryDurationDegree, CountryEducationalForm, CountryFormat, CountryTuitionFee, DegreeAttendanceDiscipline, DegreeCountryAttendance, DegreeCountryDiscipline, DegreeCountryTuitionFee,
|
|
3
|
+
import { Area, Attendance, AttendanceDegree, Continent, ContinentTuitionFee, Country, CountryAttendance, Discipline, SpecialProgrammes, TuitionFee, Unfiltered, CountryAttendanceDegree, CountryDuration, CountryDurationDegree, CountryEducationalForm, CountryFormat, CountryTuitionFee, DegreeAttendanceDiscipline, DegreeCountryAttendance, DegreeCountryDiscipline, DegreeCountryTuitionFee, DisciplineArea, DisciplineAttendance, DisciplineContinent, DisciplineCountry, DisciplineCountryEducationalForm, DisciplineDegree, DisciplineDuration, DisciplineEducationalForm, DisciplineFormat, DisciplineTuitionFee, DisciplineTuitionFeeAttendance, CountryDegree } from '../programmes/policies';
|
|
4
4
|
import { FilterKey } from '@studyportals/search-filters';
|
|
5
5
|
import { AreaPresenter } from '../presenters/AreaPresenter';
|
|
6
6
|
import { AttendancePresenter } from '../presenters/AttendancePresenter';
|
|
@@ -30,8 +30,6 @@ export class ProgrammesSitemapUrlGeneratorManager extends BaseSitemapUrlGenerato
|
|
|
30
30
|
new Area(dependencies),
|
|
31
31
|
new Attendance(dependencies),
|
|
32
32
|
new AttendanceDegree(dependencies),
|
|
33
|
-
new AttendanceDuration(dependencies),
|
|
34
|
-
new AttendanceContinent(dependencies),
|
|
35
33
|
new Continent(dependencies),
|
|
36
34
|
new ContinentTuitionFee(dependencies),
|
|
37
35
|
new Country(dependencies),
|
|
@@ -41,7 +39,6 @@ export class ProgrammesSitemapUrlGeneratorManager extends BaseSitemapUrlGenerato
|
|
|
41
39
|
new SpecialProgrammes(dependencies),
|
|
42
40
|
new TuitionFee(dependencies),
|
|
43
41
|
new Unfiltered(dependencies),
|
|
44
|
-
new Duration(dependencies),
|
|
45
42
|
new CountryAttendanceDegree(dependencies),
|
|
46
43
|
new CountryDegree(dependencies),
|
|
47
44
|
new CountryDuration(dependencies),
|
|
@@ -49,26 +46,11 @@ export class ProgrammesSitemapUrlGeneratorManager extends BaseSitemapUrlGenerato
|
|
|
49
46
|
new CountryEducationalForm(dependencies),
|
|
50
47
|
new CountryFormat(dependencies),
|
|
51
48
|
new CountryTuitionFee(dependencies),
|
|
52
|
-
new CountrySpecialProgrammes(dependencies),
|
|
53
|
-
new ContinentFormat(dependencies),
|
|
54
|
-
new ContinentSpecialProgrammes(dependencies),
|
|
55
|
-
new ContinentDuration(dependencies),
|
|
56
49
|
new DegreeAttendanceDiscipline(dependencies),
|
|
57
50
|
new DegreeCountryAttendance(dependencies),
|
|
58
51
|
new DegreeCountryDiscipline(dependencies),
|
|
59
52
|
new DegreeCountryTuitionFee(dependencies),
|
|
60
|
-
new
|
|
61
|
-
new DegreeContinent(dependencies),
|
|
62
|
-
new DegreeAttendanceTuitionFee(dependencies),
|
|
63
|
-
new DegreeArea(dependencies),
|
|
64
|
-
new DegreeTuitionFee(dependencies),
|
|
65
|
-
new DegreeAreaTuitionFee(dependencies),
|
|
66
|
-
new DegreeContinentTuitionFee(dependencies),
|
|
67
|
-
new DegreeDuration(dependencies),
|
|
68
|
-
new DegreeFormatTuitionFee(dependencies),
|
|
69
|
-
new DegreeAttendanceFormat(dependencies),
|
|
70
|
-
new DegreeSpecialProgrammes(dependencies),
|
|
71
|
-
new Format(dependencies),
|
|
53
|
+
new DisciplineArea(dependencies),
|
|
72
54
|
new DisciplineAttendance(dependencies),
|
|
73
55
|
new DisciplineContinent(dependencies),
|
|
74
56
|
new DisciplineCountry(dependencies),
|
|
@@ -78,13 +60,7 @@ export class ProgrammesSitemapUrlGeneratorManager extends BaseSitemapUrlGenerato
|
|
|
78
60
|
new DisciplineEducationalForm(dependencies),
|
|
79
61
|
new DisciplineFormat(dependencies),
|
|
80
62
|
new DisciplineTuitionFee(dependencies),
|
|
81
|
-
new DisciplineTuitionFeeAttendance(dependencies)
|
|
82
|
-
new DisciplineContinentAttendance(dependencies),
|
|
83
|
-
new DisciplineCountryAttendance(dependencies),
|
|
84
|
-
new DisciplineCountryFormat(dependencies),
|
|
85
|
-
new AttendanceTuitionFee(dependencies),
|
|
86
|
-
new AttendanceFormat(dependencies),
|
|
87
|
-
new AttendanceArea(dependencies)
|
|
63
|
+
new DisciplineTuitionFeeAttendance(dependencies)
|
|
88
64
|
];
|
|
89
65
|
this.presenters.set(FilterKey.AREA, AreaPresenter.getInstance());
|
|
90
66
|
this.presenters.set(FilterKey.DELIVERY_METHOD, AttendancePresenter.getInstance());
|
package/package.json
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@studyportals/fawkes",
|
|
3
|
-
"version": "7.4.2-
|
|
4
|
-
"description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
|
|
5
|
-
"files": [
|
|
6
|
-
"./dist"
|
|
7
|
-
],
|
|
8
|
-
"scripts": {
|
|
9
|
-
"prepush": "npm run test",
|
|
10
|
-
"precommit": "npm run lint",
|
|
11
|
-
"compile": "npx tsc && tsc-alias && rm -r ./dist/tests",
|
|
12
|
-
"build": "npm run clean && npm run compile",
|
|
13
|
-
"clean": "rimraf \"!(node_modules)/**/dist\"",
|
|
14
|
-
"prepare-deployment": "npm run test && npm run build",
|
|
15
|
-
"publish-major": "npm run prepare-deployment && npm version major && npm publish",
|
|
16
|
-
"publish-beta": "npm run prepare-deployment && npm version prerelease && npm publish --tag beta --access=public",
|
|
17
|
-
"publish-patch": "npm run prepare-deployment && npm version patch && npm publish",
|
|
18
|
-
"publish-minor": "npm run prepare-deployment && npm version minor && npm publish",
|
|
19
|
-
"prepare": "husky install",
|
|
20
|
-
"test": "vitest run --coverage",
|
|
21
|
-
"test:dev": "vitest --coverage tests/programmes",
|
|
22
|
-
"lint": "eslint . --ext .ts",
|
|
23
|
-
"lint:fix": "eslint . --ext .ts --fix",
|
|
24
|
-
"prettier:fix": "npx prettier --use-tabs --ignore-path .gitignore --write ."
|
|
25
|
-
},
|
|
26
|
-
"exports": {
|
|
27
|
-
"./organisations-search-seo": {
|
|
28
|
-
"import": "./dist/organisations-seo/index.js",
|
|
29
|
-
"require": "./dist/organisations-seo/index.js",
|
|
30
|
-
"types": "./dist/organisations-seo/index.d.ts"
|
|
31
|
-
},
|
|
32
|
-
"./programmes-search-seo": {
|
|
33
|
-
"import": "./dist/programmes-seo/index.js",
|
|
34
|
-
"require": "./dist/programmes-seo/index.js",
|
|
35
|
-
"types": "./dist/programmes-seo/index.d.ts"
|
|
36
|
-
},
|
|
37
|
-
"./scholarships-search-seo": {
|
|
38
|
-
"import": "./dist/scholarships-seo/index.js",
|
|
39
|
-
"require": "./dist/scholarships-seo/index.js",
|
|
40
|
-
"types": "./dist/scholarships-seo/index.d.ts"
|
|
41
|
-
},
|
|
42
|
-
"./sitemap-generator-seo": {
|
|
43
|
-
"import": "./dist/sitemap-generator-seo/index.js",
|
|
44
|
-
"require": "./dist/sitemap-generator-seo/index.js",
|
|
45
|
-
"types": "./dist/sitemap-generator-seo/index.d.ts"
|
|
46
|
-
},
|
|
47
|
-
"./structured-data-seo": {
|
|
48
|
-
"import": "./dist/structured-data-seo/index.js",
|
|
49
|
-
"require": "./dist/structured-data-seo/index.js",
|
|
50
|
-
"types": "./dist/structured-data-seo/index.d.ts"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
"typesVersions": {
|
|
54
|
-
"*": {
|
|
55
|
-
"organisations-search-seo": [
|
|
56
|
-
"dist/organisations-seo/index.d.ts"
|
|
57
|
-
],
|
|
58
|
-
"programmes-search-seo": [
|
|
59
|
-
"dist/programmes-seo/index.d.ts"
|
|
60
|
-
],
|
|
61
|
-
"scholarships-search-seo": [
|
|
62
|
-
"dist/scholarships-seo/index.d.ts"
|
|
63
|
-
],
|
|
64
|
-
"sitemap-generator-seo": [
|
|
65
|
-
"dist/sitemap-generator-seo/index.d.ts"
|
|
66
|
-
],
|
|
67
|
-
"structured-data-seo": [
|
|
68
|
-
"dist/structured-data-seo/index.d.ts"
|
|
69
|
-
],
|
|
70
|
-
"*": [
|
|
71
|
-
"dist/index.d.ts"
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"author": "The Jedi Council",
|
|
76
|
-
"license": "ISC",
|
|
77
|
-
"devDependencies": {
|
|
78
|
-
"@adobe/structured-data-validator": "^1.4.1",
|
|
79
|
-
"@studyportals/code-style": "^2.2.1",
|
|
80
|
-
"@studyportals/webpack-helper": "^6.0.6",
|
|
81
|
-
"@vitest/coverage-istanbul": "^2.1.8",
|
|
82
|
-
"husky": "^8.0.3",
|
|
83
|
-
"jsdom": "^26.0.0",
|
|
84
|
-
"prettier": "^3.5.3",
|
|
85
|
-
"tsc-alias": "^1.8.11",
|
|
86
|
-
"typemoq": "^2.1.0",
|
|
87
|
-
"typescript": "^5.7.3",
|
|
88
|
-
"vitest": "^2.1.8",
|
|
89
|
-
"schema-dts": "^1.1.5",
|
|
90
|
-
"ts-loader": "^9.5.2"
|
|
91
|
-
},
|
|
92
|
-
"dependencies": {
|
|
93
|
-
"@studyportals/domain-client": "^6.3.0",
|
|
94
|
-
"@studyportals/ranking-api-interface": "^1.3.12",
|
|
95
|
-
"@studyportals/search-filters": "^5.1.0",
|
|
96
|
-
"@studyportals/static-domain-data": "^6.1.0"
|
|
97
|
-
},
|
|
98
|
-
"optionalDependencies": {
|
|
99
|
-
"@rollup/rollup-linux-x64-gnu": "4.24.0"
|
|
100
|
-
},
|
|
101
|
-
"engines": {
|
|
102
|
-
"node": ">=18 <=22",
|
|
103
|
-
"npm": ">=8 <=10"
|
|
104
|
-
}
|
|
105
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@studyportals/fawkes",
|
|
3
|
+
"version": "7.4.2-1",
|
|
4
|
+
"description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
|
|
5
|
+
"files": [
|
|
6
|
+
"./dist"
|
|
7
|
+
],
|
|
8
|
+
"scripts": {
|
|
9
|
+
"prepush": "npm run test",
|
|
10
|
+
"precommit": "npm run lint",
|
|
11
|
+
"compile": "npx tsc && tsc-alias && rm -r ./dist/tests",
|
|
12
|
+
"build": "npm run clean && npm run compile",
|
|
13
|
+
"clean": "rimraf \"!(node_modules)/**/dist\"",
|
|
14
|
+
"prepare-deployment": "npm run test && npm run build",
|
|
15
|
+
"publish-major": "npm run prepare-deployment && npm version major && npm publish",
|
|
16
|
+
"publish-beta": "npm run prepare-deployment && npm version prerelease && npm publish --tag beta --access=public",
|
|
17
|
+
"publish-patch": "npm run prepare-deployment && npm version patch && npm publish",
|
|
18
|
+
"publish-minor": "npm run prepare-deployment && npm version minor && npm publish",
|
|
19
|
+
"prepare": "husky install",
|
|
20
|
+
"test": "vitest run --coverage",
|
|
21
|
+
"test:dev": "vitest --coverage tests/programmes",
|
|
22
|
+
"lint": "eslint . --ext .ts",
|
|
23
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
24
|
+
"prettier:fix": "npx prettier --use-tabs --ignore-path .gitignore --write ."
|
|
25
|
+
},
|
|
26
|
+
"exports": {
|
|
27
|
+
"./organisations-search-seo": {
|
|
28
|
+
"import": "./dist/organisations-seo/index.js",
|
|
29
|
+
"require": "./dist/organisations-seo/index.js",
|
|
30
|
+
"types": "./dist/organisations-seo/index.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./programmes-search-seo": {
|
|
33
|
+
"import": "./dist/programmes-seo/index.js",
|
|
34
|
+
"require": "./dist/programmes-seo/index.js",
|
|
35
|
+
"types": "./dist/programmes-seo/index.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./scholarships-search-seo": {
|
|
38
|
+
"import": "./dist/scholarships-seo/index.js",
|
|
39
|
+
"require": "./dist/scholarships-seo/index.js",
|
|
40
|
+
"types": "./dist/scholarships-seo/index.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./sitemap-generator-seo": {
|
|
43
|
+
"import": "./dist/sitemap-generator-seo/index.js",
|
|
44
|
+
"require": "./dist/sitemap-generator-seo/index.js",
|
|
45
|
+
"types": "./dist/sitemap-generator-seo/index.d.ts"
|
|
46
|
+
},
|
|
47
|
+
"./structured-data-seo": {
|
|
48
|
+
"import": "./dist/structured-data-seo/index.js",
|
|
49
|
+
"require": "./dist/structured-data-seo/index.js",
|
|
50
|
+
"types": "./dist/structured-data-seo/index.d.ts"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"typesVersions": {
|
|
54
|
+
"*": {
|
|
55
|
+
"organisations-search-seo": [
|
|
56
|
+
"dist/organisations-seo/index.d.ts"
|
|
57
|
+
],
|
|
58
|
+
"programmes-search-seo": [
|
|
59
|
+
"dist/programmes-seo/index.d.ts"
|
|
60
|
+
],
|
|
61
|
+
"scholarships-search-seo": [
|
|
62
|
+
"dist/scholarships-seo/index.d.ts"
|
|
63
|
+
],
|
|
64
|
+
"sitemap-generator-seo": [
|
|
65
|
+
"dist/sitemap-generator-seo/index.d.ts"
|
|
66
|
+
],
|
|
67
|
+
"structured-data-seo": [
|
|
68
|
+
"dist/structured-data-seo/index.d.ts"
|
|
69
|
+
],
|
|
70
|
+
"*": [
|
|
71
|
+
"dist/index.d.ts"
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"author": "The Jedi Council",
|
|
76
|
+
"license": "ISC",
|
|
77
|
+
"devDependencies": {
|
|
78
|
+
"@adobe/structured-data-validator": "^1.4.1",
|
|
79
|
+
"@studyportals/code-style": "^2.2.1",
|
|
80
|
+
"@studyportals/webpack-helper": "^6.0.6",
|
|
81
|
+
"@vitest/coverage-istanbul": "^2.1.8",
|
|
82
|
+
"husky": "^8.0.3",
|
|
83
|
+
"jsdom": "^26.0.0",
|
|
84
|
+
"prettier": "^3.5.3",
|
|
85
|
+
"tsc-alias": "^1.8.11",
|
|
86
|
+
"typemoq": "^2.1.0",
|
|
87
|
+
"typescript": "^5.7.3",
|
|
88
|
+
"vitest": "^2.1.8",
|
|
89
|
+
"schema-dts": "^1.1.5",
|
|
90
|
+
"ts-loader": "^9.5.2"
|
|
91
|
+
},
|
|
92
|
+
"dependencies": {
|
|
93
|
+
"@studyportals/domain-client": "^6.3.0",
|
|
94
|
+
"@studyportals/ranking-api-interface": "^1.3.12",
|
|
95
|
+
"@studyportals/search-filters": "^5.1.0",
|
|
96
|
+
"@studyportals/static-domain-data": "^6.1.0"
|
|
97
|
+
},
|
|
98
|
+
"optionalDependencies": {
|
|
99
|
+
"@rollup/rollup-linux-x64-gnu": "4.24.0"
|
|
100
|
+
},
|
|
101
|
+
"engines": {
|
|
102
|
+
"node": ">=18 <=22",
|
|
103
|
+
"npm": ">=8 <=10"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
-
import { IOrganisationsSeoDependencies } from './types/IOrganisationsSeoDependencies';
|
|
3
|
-
import { SortingOptions } from '../enums/SortingOptions';
|
|
4
|
-
import { BaseSeoIndexabilityPolicy } from '../common/policies/BaseSeoIndexabilityPolicy';
|
|
5
|
-
export declare abstract class OrganisationsRuleBasedIndexabilityPolicy extends BaseSeoIndexabilityPolicy<IOrganisationsSeoDependencies> {
|
|
6
|
-
protected readonly indexablePortalTypes: PortalType[];
|
|
7
|
-
protected abstract readonly sortingOption: SortingOptions;
|
|
8
|
-
constructor(dependencies: IOrganisationsSeoDependencies);
|
|
9
|
-
protected isIndexable(): Promise<boolean>;
|
|
10
|
-
private matchesSortingOption;
|
|
11
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
-
import { BaseSeoIndexabilityPolicy } from '../common/policies/BaseSeoIndexabilityPolicy';
|
|
3
|
-
export class OrganisationsRuleBasedIndexabilityPolicy extends BaseSeoIndexabilityPolicy {
|
|
4
|
-
indexablePortalTypes = [PortalType.MASTER];
|
|
5
|
-
constructor(dependencies) {
|
|
6
|
-
super(dependencies);
|
|
7
|
-
}
|
|
8
|
-
async isIndexable() {
|
|
9
|
-
const isIndexable = await super.isIndexable();
|
|
10
|
-
if (!isIndexable) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
return this.indexablePortalTypes.includes(this.dependencies.portalType) && this.matchesSortingOption();
|
|
14
|
-
}
|
|
15
|
-
matchesSortingOption() {
|
|
16
|
-
const dependencies = this.dependencies;
|
|
17
|
-
return dependencies.sortingState.getSelectedOption() === this.sortingOption;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { FilterKey } from '@studyportals/search-filters';
|
|
2
|
-
import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRule';
|
|
3
|
-
export class OnlineAttendanceRule extends BaseFilterKeyValueRule {
|
|
4
|
-
constructor() {
|
|
5
|
-
const filterKeyValues = new Map([[FilterKey.DELIVERY_METHOD, ['online']]]);
|
|
6
|
-
super(filterKeyValues);
|
|
7
|
-
}
|
|
8
|
-
getName() {
|
|
9
|
-
return 'OnlineAttendanceRule';
|
|
10
|
-
}
|
|
11
|
-
getDescription() {
|
|
12
|
-
return 'Indexable if attendance is online';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ISearchDependencies } from '../common/ISearchDependencies';
|
|
2
|
-
import { IProgrammeSearchApplicationState } from './IProgrammeSearchApplicationState';
|
|
3
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
4
|
-
export interface IProgrammeSearchDependencies extends ISearchDependencies {
|
|
5
|
-
portalType: PortalType;
|
|
6
|
-
applicationState: IProgrammeSearchApplicationState;
|
|
7
|
-
}
|