Browse Source

Refactoring

pull/1818/head
Thomas 3 years ago
parent
commit
1e5984bd6e
  1. 11
      apps/api/src/app/info/info.service.ts
  2. 3
      libs/common/src/lib/interfaces/info-item.interface.ts
  3. 3
      libs/common/src/lib/types/user-with-settings.type.ts

11
apps/api/src/app/info/info.service.ts

@ -22,6 +22,7 @@ import { InfoItem } from '@ghostfolio/common/interfaces';
import { Statistics } from '@ghostfolio/common/interfaces/statistics.interface'; import { Statistics } from '@ghostfolio/common/interfaces/statistics.interface';
import { Subscription } from '@ghostfolio/common/interfaces/subscription.interface'; import { Subscription } from '@ghostfolio/common/interfaces/subscription.interface';
import { permissions } from '@ghostfolio/common/permissions'; import { permissions } from '@ghostfolio/common/permissions';
import { SubscriptionOffer } from '@ghostfolio/common/types';
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt'; import { JwtService } from '@nestjs/jwt';
import * as bent from 'bent'; import * as bent from 'bent';
@ -304,19 +305,17 @@ export class InfoService {
return statistics; return statistics;
} }
private async getSubscriptions(): Promise<{ [offer: string]: Subscription }> { private async getSubscriptions(): Promise<{
[offer in SubscriptionOffer]: Subscription;
}> {
if (!this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { if (!this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
return undefined; return undefined;
} }
let subscriptions: { [offer: string]: Subscription } = {};
const stripeConfig = (await this.prismaService.property.findUnique({ const stripeConfig = (await this.prismaService.property.findUnique({
where: { key: PROPERTY_STRIPE_CONFIG } where: { key: PROPERTY_STRIPE_CONFIG }
})) ?? { value: '{}' }; })) ?? { value: '{}' };
subscriptions = JSON.parse(stripeConfig.value); return JSON.parse(stripeConfig.value);
return subscriptions;
} }
} }

3
libs/common/src/lib/interfaces/info-item.interface.ts

@ -1,3 +1,4 @@
import { SubscriptionOffer } from '@ghostfolio/common/types';
import { SymbolProfile, Tag } from '@prisma/client'; import { SymbolProfile, Tag } from '@prisma/client';
import { Statistics } from './statistics.interface'; import { Statistics } from './statistics.interface';
@ -15,7 +16,7 @@ export interface InfoItem {
platforms: { id: string; name: string }[]; platforms: { id: string; name: string }[];
statistics: Statistics; statistics: Statistics;
stripePublicKey?: string; stripePublicKey?: string;
subscriptions: { [offer: string]: Subscription }; subscriptions: { [offer in SubscriptionOffer]: Subscription };
systemMessage?: string; systemMessage?: string;
tags: Tag[]; tags: Tag[];
} }

3
libs/common/src/lib/types/user-with-settings.type.ts

@ -1,9 +1,8 @@
import { UserSettings } from '@ghostfolio/common/interfaces/user-settings.interface';
import { SubscriptionOffer } from '@ghostfolio/common/types'; import { SubscriptionOffer } from '@ghostfolio/common/types';
import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type'; import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type';
import { Account, Settings, User } from '@prisma/client'; import { Account, Settings, User } from '@prisma/client';
import { UserSettings } from '../interfaces/user-settings.interface';
// TODO: Compare with User interface // TODO: Compare with User interface
export type UserWithSettings = User & { export type UserWithSettings = User & {
Account: Account[]; Account: Account[];

Loading…
Cancel
Save