Browse Source

Merge branch 'main' into feature/benchmark-currency-correction

pull/2790/head
Thomas Kaul 2 years ago
committed by GitHub
parent
commit
415879a437
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 2
      README.md
  3. 4
      apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts
  4. 7
      apps/client/src/assets/oss-friends.json

1
CHANGELOG.md

@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Changed the performance calculation to a time-weighted approach - Changed the performance calculation to a time-weighted approach
- Normalized the benchmark by currency in the benchmark comparator - Normalized the benchmark by currency in the benchmark comparator
- Increased the timeout to load currencies in the exchange rate data service
- Exposed the environment variable `REQUEST_TIMEOUT` - Exposed the environment variable `REQUEST_TIMEOUT`
- Used the `HasPermission` annotation in endpoints - Used the `HasPermission` annotation in endpoints
- Improved the language localization for German (`de`) - Improved the language localization for German (`de`)

2
README.md

@ -166,7 +166,7 @@ Ghostfolio is available for various home server systems, including [Runtipi](htt
#### Debug #### Debug
Run `yarn watch:server` and click _Launch Program_ in [Visual Studio Code](https://code.visualstudio.com) Run `yarn watch:server` and click _Debug API_ in [Visual Studio Code](https://code.visualstudio.com)
#### Serve #### Serve

4
apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts

@ -11,6 +11,7 @@ import { DATE_FORMAT, getYesterday } from '@ghostfolio/common/helper';
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { format, isToday } from 'date-fns'; import { format, isToday } from 'date-fns';
import { isNumber, uniq } from 'lodash'; import { isNumber, uniq } from 'lodash';
import ms from 'ms';
@Injectable() @Injectable()
export class ExchangeRateDataService { export class ExchangeRateDataService {
@ -194,7 +195,8 @@ export class ExchangeRateDataService {
const quotes = await this.dataProviderService.getQuotes({ const quotes = await this.dataProviderService.getQuotes({
items: this.currencyPairs.map(({ dataSource, symbol }) => { items: this.currencyPairs.map(({ dataSource, symbol }) => {
return { dataSource, symbol }; return { dataSource, symbol };
}) }),
requestTimeout: ms('30 seconds')
}); });
for (const symbol of Object.keys(quotes)) { for (const symbol of Object.keys(quotes)) {

7
apps/client/src/assets/oss-friends.json

@ -1,5 +1,5 @@
{ {
"createdAt": "2023-11-30T00:00:00.000Z", "createdAt": "2023-12-30T00:00:00.000Z",
"data": [ "data": [
{ {
"name": "BoxyHQ", "name": "BoxyHQ",
@ -71,6 +71,11 @@
"description": "HTMX is a dependency-free JavaScript library that allows you to access AJAX, CSS Transitions, WebSockets, and Server Sent Events directly in HTML.", "description": "HTMX is a dependency-free JavaScript library that allows you to access AJAX, CSS Transitions, WebSockets, and Server Sent Events directly in HTML.",
"href": "https://htmx.org" "href": "https://htmx.org"
}, },
{
"name": "Inbox Zero",
"description": "Inbox Zero makes it easy to clean up your inbox and reach inbox zero fast. It provides bulk newsletter unsubscribe, cold email blocking, email analytics, and AI automations.",
"href": "https://getinboxzero.com"
},
{ {
"name": "Infisical", "name": "Infisical",
"description": "Open source, end-to-end encrypted platform that lets you securely manage secrets and configs across your team, devices, and infrastructure.", "description": "Open source, end-to-end encrypted platform that lets you securely manage secrets and configs across your team, devices, and infrastructure.",

Loading…
Cancel
Save