Browse Source

Refactoring

pull/1818/head
Thomas 3 years ago
parent
commit
68afe33c11
  1. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 6
      apps/api/src/app/subscription/subscription.service.ts
  3. 6
      apps/api/src/app/symbol/symbol.service.ts
  4. 7
      apps/api/src/app/user/user.service.ts
  5. 2
      apps/api/src/services/data-provider/data-provider.service.ts
  6. 4
      libs/common/src/lib/interfaces/index.ts
  7. 6
      libs/common/src/lib/interfaces/user.interface.ts
  8. 3
      libs/common/src/lib/permissions.ts
  9. 4
      libs/common/src/lib/types/index.ts
  10. 2
      libs/common/src/lib/types/request-with-user.type.ts
  11. 1
      libs/common/src/lib/types/subscription-offer.type.ts
  12. 0
      libs/common/src/lib/types/subscription-type.type.ts
  13. 8
      libs/common/src/lib/types/user-with-settings.type.ts

6
apps/api/src/app/portfolio/portfolio.service.ts

@ -37,8 +37,7 @@ import {
PortfolioSummary,
Position,
TimelinePosition,
UserSettings,
UserWithSettings
UserSettings
} from '@ghostfolio/common/interfaces';
import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface';
import type {
@ -47,7 +46,8 @@ import type {
GroupBy,
Market,
OrderWithAccount,
RequestWithUser
RequestWithUser,
UserWithSettings
} from '@ghostfolio/common/types';
import { Inject, Injectable } from '@nestjs/common';
import { REQUEST } from '@nestjs/core';

6
apps/api/src/app/subscription/subscription.service.ts

@ -4,9 +4,9 @@ import {
DEFAULT_LANGUAGE_CODE,
PROPERTY_STRIPE_CONFIG
} from '@ghostfolio/common/config';
import { UserWithSettings } from '@ghostfolio/common/interfaces';
import { Subscription as SubscriptionInterface } from '@ghostfolio/common/interfaces/subscription.interface';
import { SubscriptionType } from '@ghostfolio/common/types/subscription.type';
import { UserWithSettings } from '@ghostfolio/common/types';
import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type';
import { Injectable, Logger } from '@nestjs/common';
import { Subscription } from '@prisma/client';
import { addMilliseconds, isBefore } from 'date-fns';
@ -133,7 +133,7 @@ export class SubscriptionService {
return {
expiresAt: latestSubscription.expiresAt,
offer: 'renewal',
offer: latestSubscription.price === 0 ? 'default' : 'renewal',
type: isBefore(new Date(), latestSubscription.expiresAt)
? SubscriptionType.Premium
: SubscriptionType.Basic

6
apps/api/src/app/symbol/symbol.service.ts

@ -5,10 +5,8 @@ import {
} from '@ghostfolio/api/services/interfaces/interfaces';
import { MarketDataService } from '@ghostfolio/api/services/market-data.service';
import { DATE_FORMAT } from '@ghostfolio/common/helper';
import {
HistoricalDataItem,
UserWithSettings
} from '@ghostfolio/common/interfaces';
import { HistoricalDataItem } from '@ghostfolio/common/interfaces';
import { UserWithSettings } from '@ghostfolio/common/types';
import { Injectable, Logger } from '@nestjs/common';
import { format, subDays } from 'date-fns';

7
apps/api/src/app/user/user.service.ts

@ -4,16 +4,13 @@ import { PrismaService } from '@ghostfolio/api/services/prisma.service';
import { PropertyService } from '@ghostfolio/api/services/property/property.service';
import { TagService } from '@ghostfolio/api/services/tag/tag.service';
import { PROPERTY_IS_READ_ONLY_MODE, locale } from '@ghostfolio/common/config';
import {
User as IUser,
UserSettings,
UserWithSettings
} from '@ghostfolio/common/interfaces';
import { User as IUser, UserSettings } from '@ghostfolio/common/interfaces';
import {
getPermissions,
hasRole,
permissions
} from '@ghostfolio/common/permissions';
import { UserWithSettings } from '@ghostfolio/common/types';
import { Injectable } from '@nestjs/common';
import { Prisma, Role, User } from '@prisma/client';
import { sortBy } from 'lodash';

2
apps/api/src/services/data-provider/data-provider.service.ts

@ -8,7 +8,7 @@ import {
} from '@ghostfolio/api/services/interfaces/interfaces';
import { PrismaService } from '@ghostfolio/api/services/prisma.service';
import { DATE_FORMAT } from '@ghostfolio/common/helper';
import { UserWithSettings } from '@ghostfolio/common/interfaces';
import { UserWithSettings } from '@ghostfolio/common/types';
import { Granularity } from '@ghostfolio/common/types';
import { Inject, Injectable, Logger } from '@nestjs/common';
import { DataSource, MarketData, SymbolProfile } from '@prisma/client';

4
libs/common/src/lib/interfaces/index.ts

@ -40,7 +40,6 @@ import { ScraperConfiguration } from './scraper-configuration.interface';
import { TimelinePosition } from './timeline-position.interface';
import { UniqueAsset } from './unique-asset.interface';
import { UserSettings } from './user-settings.interface';
import { UserWithSettings } from './user-with-settings';
import { User } from './user.interface';
export {
@ -84,6 +83,5 @@ export {
TimelinePosition,
UniqueAsset,
User,
UserSettings,
UserWithSettings
UserSettings
};

6
libs/common/src/lib/interfaces/user.interface.ts

@ -1,3 +1,5 @@
import { SubscriptionOffer } from '@ghostfolio/common/types';
import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type';
import { Account, Tag } from '@prisma/client';
import { UserSettings } from './user-settings.interface';
@ -14,8 +16,8 @@ export interface User {
settings: UserSettings;
subscription: {
expiresAt?: Date;
offer: 'default' | 'renewal';
type: 'Basic' | 'Premium';
offer: SubscriptionOffer;
type: SubscriptionType;
};
tags: Tag[];
}

3
libs/common/src/lib/permissions.ts

@ -1,7 +1,6 @@
import { UserWithSettings } from '@ghostfolio/common/types';
import { Role } from '@prisma/client';
import { UserWithSettings } from './interfaces';
export const permissions = {
accessAdminControl: 'accessAdminControl',
createAccess: 'createAccess',

4
libs/common/src/lib/types/index.ts

@ -9,7 +9,9 @@ import { MarketState } from './market-state.type';
import { Market } from './market.type';
import type { OrderWithAccount } from './order-with-account.type';
import type { RequestWithUser } from './request-with-user.type';
import { SubscriptionOffer } from './subscription-offer.type';
import { ToggleOption } from './toggle-option.type';
import { UserWithSettings } from './user-with-settings.type';
import type { ViewMode } from './view-mode.type';
export type {
@ -24,6 +26,8 @@ export type {
MarketState,
OrderWithAccount,
RequestWithUser,
SubscriptionOffer,
ToggleOption,
UserWithSettings,
ViewMode
};

2
libs/common/src/lib/types/request-with-user.type.ts

@ -1,3 +1,3 @@
import { UserWithSettings } from '@ghostfolio/common/interfaces';
import { UserWithSettings } from '@ghostfolio/common/types';
export type RequestWithUser = Request & { user: UserWithSettings };

1
libs/common/src/lib/types/subscription-offer.type.ts

@ -0,0 +1 @@
export type SubscriptionOffer = 'default' | 'renewal';

0
libs/common/src/lib/types/subscription.type.ts → libs/common/src/lib/types/subscription-type.type.ts

8
libs/common/src/lib/interfaces/user-with-settings.ts → libs/common/src/lib/types/user-with-settings.type.ts

@ -1,8 +1,10 @@
import { SubscriptionType } from '@ghostfolio/common/types/subscription.type';
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 './user-settings.interface';
import { UserSettings } from '../interfaces/user-settings.interface';
// TODO: Compare with User type
export type UserWithSettings = User & {
Account: Account[];
activityCount: number;
@ -10,7 +12,7 @@ export type UserWithSettings = User & {
Settings: Settings & { settings: UserSettings };
subscription?: {
expiresAt?: Date;
offer: 'default' | 'renewal'; // TODO: Extract type
offer: SubscriptionOffer;
type: SubscriptionType;
};
};
Loading…
Cancel
Save