|
|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
|
|
|
|
|
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
|
|
|
|
|
import { SUPPORTED_LANGUAGE_CODES } from '@ghostfolio/common/config';
|
|
|
|
|
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
|
|
|
|
|
@ -6,9 +7,14 @@ import { Injectable } from '@nestjs/common';
|
|
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
|
export class SitemapService {
|
|
|
|
|
public constructor(private readonly i18nService: I18nService) {}
|
|
|
|
|
public constructor(
|
|
|
|
|
private readonly configurationService: ConfigurationService,
|
|
|
|
|
private readonly i18nService: I18nService
|
|
|
|
|
) {}
|
|
|
|
|
|
|
|
|
|
public getPersonalFinanceTools({ currentDate }: { currentDate: string }) {
|
|
|
|
|
const rootUrl = this.configurationService.get('ROOT_URL');
|
|
|
|
|
|
|
|
|
|
return personalFinanceTools
|
|
|
|
|
.map(({ alias, key }) => {
|
|
|
|
|
return SUPPORTED_LANGUAGE_CODES.map((languageCode) => {
|
|
|
|
|
@ -28,13 +34,14 @@ export class SitemapService {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
'<url>',
|
|
|
|
|
` <loc>https://ghostfol.io/${languageCode}/${resourcesPath}/${personalFinanceToolsPath}/${openSourceAlternativeToPath}-${alias ?? key}</loc>`,
|
|
|
|
|
` <lastmod>${currentDate}T00:00:00+00:00</lastmod>`,
|
|
|
|
|
'</url>'
|
|
|
|
|
' <url>',
|
|
|
|
|
` <loc>${rootUrl}/${languageCode}/${resourcesPath}/${personalFinanceToolsPath}/${openSourceAlternativeToPath}-${alias ?? key}</loc>`,
|
|
|
|
|
` <lastmod>${currentDate}T00:00:00+00:00</lastmod>`,
|
|
|
|
|
' </url>'
|
|
|
|
|
].join('\n');
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.flat()
|
|
|
|
|
.join('\n');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|