Browse Source

Task/extract non-investment activity types constant (#7535)

Extract non-investment activity type
pull/7551/head
Thomas Kaul 2 days ago
committed by GitHub
parent
commit
9c78bc29a4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 7
      apps/api/src/app/activities/activities.service.ts
  2. 3
      apps/api/src/app/import/import.service.ts
  3. 3
      apps/api/src/services/data-provider/data-provider.service.ts
  4. 3
      apps/client/src/app/services/import-activities.service.ts
  5. 6
      libs/common/src/lib/config.ts

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

@ -20,6 +20,7 @@ import {
DATA_GATHERING_QUEUE_PRIORITY_HIGH,
GATHER_ASSET_PROFILE_PROCESS_JOB_NAME,
GATHER_ASSET_PROFILE_PROCESS_JOB_OPTIONS,
NON_INVESTMENT_ACTIVITY_TYPES,
TAG_ID_EXCLUDE_FROM_ANALYSIS
} from '@ghostfolio/common/config';
import {
@ -191,7 +192,7 @@ export class ActivitiesService {
const userId = data.userId;
if (
['FEE', 'INTEREST', 'LIABILITY'].includes(data.type) ||
NON_INVESTMENT_ACTIVITY_TYPES.includes(data.type) ||
(data.SymbolProfile.connectOrCreate.create.dataSource === 'MANUAL' &&
data.type === 'BUY')
) {
@ -260,7 +261,7 @@ export class ActivitiesService {
const orderData: Prisma.OrderCreateInput = data;
const isDraft = ['FEE', 'INTEREST', 'LIABILITY'].includes(data.type)
const isDraft = NON_INVESTMENT_ACTIVITY_TYPES.includes(data.type)
? false
: isAfter(data.date as Date, endOfToday());
@ -981,7 +982,7 @@ export class ActivitiesService {
let isDraft = false;
if (
['FEE', 'INTEREST', 'LIABILITY'].includes(data.type) ||
NON_INVESTMENT_ACTIVITY_TYPES.includes(data.type) ||
(data.SymbolProfile.connect.dataSource_symbol.dataSource === 'MANUAL' &&
data.type === 'BUY')
) {

3
apps/api/src/app/import/import.service.ts

@ -12,6 +12,7 @@ import { TagService } from '@ghostfolio/api/services/tag/tag.service';
import {
DATA_GATHERING_QUEUE_PRIORITY_HIGH,
ghostfolioPrefix,
NON_INVESTMENT_ACTIVITY_TYPES,
TAG_ID_EXCLUDE_FROM_ANALYSIS
} from '@ghostfolio/common/config';
import { CreateAssetProfileDto, CreateOrderDto } from '@ghostfolio/common/dtos';
@ -217,7 +218,7 @@ export class ImportService {
// createActivity() if needed.
for (const [index, activity] of activitiesDto.entries()) {
if (!activity.dataSource) {
if (['FEE', 'INTEREST', 'LIABILITY'].includes(activity.type)) {
if (NON_INVESTMENT_ACTIVITY_TYPES.includes(activity.type)) {
activity.dataSource = DataSource.MANUAL;
} else {
activity.dataSource =

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

@ -9,6 +9,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv
import {
DEFAULT_CURRENCY,
DERIVED_CURRENCIES,
NON_INVESTMENT_ACTIVITY_TYPES,
PROPERTY_API_KEY_GHOSTFOLIO,
PROPERTY_DATA_SOURCE_MAPPING
} from '@ghostfolio/common/config';
@ -268,7 +269,7 @@ export class DataProviderService implements OnModuleInit {
if (!assetProfiles[assetProfileIdentifier]) {
if (
(dataSource === DataSource.MANUAL && type === 'BUY') ||
['FEE', 'INTEREST', 'LIABILITY'].includes(type)
NON_INVESTMENT_ACTIVITY_TYPES.includes(type)
) {
const assetProfileInImport = assetProfilesWithMarketDataDto?.find(
(assetProfile) => {

3
apps/client/src/app/services/import-activities.service.ts

@ -1,3 +1,4 @@
import { NON_INVESTMENT_ACTIVITY_TYPES } from '@ghostfolio/common/config';
import {
CreateAccountWithBalancesDto,
CreateAssetProfileWithMarketDataDto,
@ -70,7 +71,7 @@ export class ImportActivitiesService {
let dataSource = this.parseDataSource({ item });
let symbol = this.parseSymbol({ content, index, item });
if (!dataSource && ['FEE', 'INTEREST', 'LIABILITY'].includes(type)) {
if (!dataSource && NON_INVESTMENT_ACTIVITY_TYPES.includes(type)) {
// Apply the same data source as the import service
dataSource = DataSource.MANUAL;
}

6
libs/common/src/lib/config.ts

@ -231,6 +231,12 @@ export const INVESTMENT_ACTIVITY_TYPES = [
Type.SELL
] as Type[];
export const NON_INVESTMENT_ACTIVITY_TYPES = Object.values(Type).filter(
(type) => {
return !INVESTMENT_ACTIVITY_TYPES.includes(type);
}
);
export const PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME = 'PORTFOLIO';
export const PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS: JobOptions = {
removeOnComplete: true

Loading…
Cancel
Save