@studyportals/fawkes 8.2.4-16 → 8.2.4-17

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.
@@ -3,4 +3,5 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
3
3
  export interface IPresenter {
4
4
  readonly filterKey: FilterKey;
5
5
  getFragments(): IFragment[];
6
+ getFragmentsAsync?(): Promise<IFragment[]>;
6
7
  }
@@ -18,7 +18,7 @@ export class CountryAreaCity extends OrganisationsSeoIndexabilityPolicy {
18
18
  async generateUrls() {
19
19
  const cityFragments = await CityPresenter
20
20
  .getInstance(this.dependencies.searchApiClient)
21
- .getFragments();
21
+ .getFragmentsAsync();
22
22
  const paths = [];
23
23
  console.warn(`Total city fragments fetched: ${cityFragments.length}`);
24
24
  const filteredFragmentsForCountryAreaCity = cityFragments.filter(city => city.areaId !== null && city.areaId !== undefined);
@@ -17,7 +17,7 @@ export class CountryCity extends OrganisationsSeoIndexabilityPolicy {
17
17
  async generateUrls() {
18
18
  const cityFragments = await CityPresenter
19
19
  .getInstance(this.dependencies.searchApiClient)
20
- .getFragments();
20
+ .getFragmentsAsync();
21
21
  const paths = [];
22
22
  const filteredFragmentsForCountryCity = cityFragments.filter(city => city.areaId === null || city.areaId === undefined);
23
23
  for (const city of filteredFragmentsForCountryCity) {
@@ -15,7 +15,7 @@ export class RankedCountryAreaCity extends RankedOrganisationsSeoIndexabilityPol
15
15
  async generateUrls() {
16
16
  const cityFragments = await CityPresenter
17
17
  .getInstance(this.dependencies.searchApiClient)
18
- .getFragments();
18
+ .getFragmentsAsync();
19
19
  const paths = [];
20
20
  console.warn(`Total city fragments fetched: ${cityFragments.length}`);
21
21
  const filteredFragmentsForCountryAreaCity = cityFragments.filter(city => city.areaId !== null && city.areaId !== undefined);
@@ -15,7 +15,7 @@ export class RankedCountryCity extends RankedOrganisationsSeoIndexabilityPolicy
15
15
  async generateUrls() {
16
16
  const cityFragments = await CityPresenter
17
17
  .getInstance(this.dependencies.searchApiClient)
18
- .getFragments();
18
+ .getFragmentsAsync();
19
19
  const paths = [];
20
20
  const filteredFragmentsForCountryCity = cityFragments.filter(city => city.areaId === null || city.areaId === undefined);
21
21
  for (const city of filteredFragmentsForCountryCity) {
@@ -1,14 +1,15 @@
1
1
  import { FilterKey } from '@studyportals/search-filters/server-side';
2
2
  import { ICityFragment } from './fragments/ICityFragment';
3
- import { ISearchApiClient } from '../../sitemap-generator-seo';
4
- export declare class CityPresenter {
3
+ import { IPresenter, ISearchApiClient } from '../../sitemap-generator-seo';
4
+ export declare class CityPresenter implements IPresenter {
5
5
  readonly filterKey: FilterKey;
6
6
  private searchApiClient;
7
7
  private static instance;
8
8
  private constructor();
9
9
  private fragmentsPromise;
10
10
  static getInstance(searchApiClient: ISearchApiClient): CityPresenter;
11
- getFragments(): Promise<ICityFragment[]>;
11
+ getFragments(): ICityFragment[];
12
+ getFragmentsAsync(): Promise<ICityFragment[]>;
12
13
  private fetchCities;
13
14
  private processCity;
14
15
  }
@@ -16,7 +16,10 @@ export class CityPresenter {
16
16
  }
17
17
  return CityPresenter.instance;
18
18
  }
19
- async getFragments() {
19
+ getFragments() {
20
+ return [];
21
+ }
22
+ async getFragmentsAsync() {
20
23
  if (!this.fragmentsPromise) {
21
24
  this.fragmentsPromise = this.fetchCities();
22
25
  }
@@ -10,6 +10,7 @@ import { FilterKey } from '@studyportals/search-filters/server-side';
10
10
  import { CountryAreaCity } from '../organisations/policies/our-picks/CountryAreaCity';
11
11
  import { RankedCountryCity } from '../organisations/policies/ranked/RankedCountryCity';
12
12
  import { RankedCountryAreaCity } from '../organisations/policies/ranked/RankedCountryAreaCity';
13
+ import { CityPresenter } from '../presenters/CityPresenter';
13
14
  export class OrganisationsSitemapUrlGeneratorManager extends BaseSitemapUrlGeneratorManager {
14
15
  portalType;
15
16
  policies;
@@ -53,6 +54,7 @@ export class OrganisationsSitemapUrlGeneratorManager extends BaseSitemapUrlGener
53
54
  this.presenters.set(FilterKey.CONTINENT, ContinentPresenter.getInstance());
54
55
  this.presenters.set(FilterKey.COUNTRY, CountryPresenter.getInstance());
55
56
  this.presenters.set(FilterKey.DISCIPLINES, DisciplinePresenter.getInstance());
57
+ this.presenters.set(FilterKey.CITY, CityPresenter.getInstance(searchApiClient));
56
58
  this.setFilterKeyValueCounts();
57
59
  }
58
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/fawkes",
3
- "version": "8.2.4-16",
3
+ "version": "8.2.4-17",
4
4
  "description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
5
5
  "files": [
6
6
  "./dist"