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

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 { Statistics } from './statistics.interface';
@ -15,7 +16,7 @@ export interface InfoItem {
platforms: { id: string; name: string }[];
statistics: Statistics;
stripePublicKey?: string;
subscriptions: { [offer: string]: Subscription };
subscriptions: { [offer in SubscriptionOffer]: Subscription };
systemMessage?: string;
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 { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type';
import { Account, Settings, User } from '@prisma/client';
import { UserSettings } from '../interfaces/user-settings.interface';
// TODO: Compare with User interface
export type UserWithSettings = User & {
Account: Account[];

Loading…
Cancel
Save