Browse Source

code review changes

pull/5035/head
csehatt741 3 days ago
committed by Thomas Kaul
parent
commit
955fe31862
  1. 8
      apps/api/src/app/endpoints/sitemap/sitemap.controller.ts
  2. 50
      apps/api/src/app/endpoints/sitemap/sitemap.service.ts

8
apps/api/src/app/endpoints/sitemap/sitemap.controller.ts

@ -37,14 +37,14 @@ export class SitemapController {
response.setHeader('content-type', 'application/xml');
response.send(
interpolate(this.sitemapXml, {
publicRoutes: this.sitemapService.getPublicRoutes({
currentDate
}),
personalFinanceTools: this.configurationService.get(
'ENABLE_FEATURE_SUBSCRIPTION'
)
? this.sitemapService.getPersonalFinanceTools({ currentDate })
: ''
: '',
publicRoutes: this.sitemapService.getPublicRoutes({
currentDate
})
})
);
}

50
apps/api/src/app/endpoints/sitemap/sitemap.service.ts

@ -7,11 +7,11 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { Injectable } from '@nestjs/common';
const translationTaggedMessageRegex =
/:.*@@(?<id>[a-zA-Z0-9.]+):(?<message>.+)/;
@Injectable()
export class SitemapService {
private static readonly TRANSLATION_TAGGED_MESSAGE_REGEX =
/:.*@@(?<id>[a-zA-Z0-9.]+):(?<message>.+)/;
public constructor(
private readonly configurationService: ConfigurationService,
private readonly i18nService: I18nService
@ -26,9 +26,9 @@ export class SitemapService {
publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes
.product;
const params = {
rootUrl,
languageCode,
currentDate,
languageCode,
rootUrl,
urlPostfix: alias ?? key
};
@ -42,31 +42,31 @@ export class SitemapService {
return SUPPORTED_LANGUAGE_CODES.flatMap((languageCode) => {
const params = {
rootUrl,
currentDate,
languageCode,
currentDate
rootUrl
};
// add language specific root URL
const urls = [this.createRouteSitemapUrl(params)];
urls.push(...this.createSitemapUrls(publicRoutes, params));
return urls;
return [
this.createRouteSitemapUrl(params), // create language specific root URL
...this.createSitemapUrls(params, publicRoutes)
];
}).join('\n');
}
private createSitemapUrls(
routes: Record<string, PublicRoute>,
params: { rootUrl: string; languageCode: string; currentDate: string }
params: { currentDate: string; languageCode: string; rootUrl: string },
routes: Record<string, PublicRoute>
): string[] {
return Object.values(routes).flatMap((route) => {
if (route.excludeFromSitemap) return [];
if (route.excludeFromSitemap) {
return [];
}
const urls = [this.createRouteSitemapUrl({ route, ...params })];
if (route.subRoutes) {
urls.push(...this.createSitemapUrls(route.subRoutes, params));
urls.push(...this.createSitemapUrls(params, route.subRoutes));
}
return urls;
@ -74,21 +74,23 @@ export class SitemapService {
}
private createRouteSitemapUrl({
route,
rootUrl,
languageCode,
currentDate,
languageCode,
rootUrl,
route,
urlPostfix
}: {
route?: PublicRoute;
rootUrl: string;
languageCode: string;
currentDate: string;
languageCode: string;
rootUrl: string;
route?: PublicRoute;
urlPostfix?: string;
}): string {
const segments =
route?.routerLink.map((link) => {
const match = link.match(translationTaggedMessageRegex);
const match = link.match(
SitemapService.TRANSLATION_TAGGED_MESSAGE_REGEX
);
const segment = match
? (this.i18nService.getTranslation({
languageCode,

Loading…
Cancel
Save