Browse Source

Validate tags when creating or updating an activity

pull/7347/head
Thomas Kaul 5 days ago
parent
commit
abea328709
  1. 7
      apps/api/src/app/activities/activities.service.ts
  2. 7
      apps/api/src/services/tag/tag.service.ts
  3. 3
      libs/common/src/lib/dtos/create-order.dto.ts
  4. 3
      libs/common/src/lib/dtos/update-order.dto.ts

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

@ -109,6 +109,13 @@ export class ActivitiesService {
tags,
userId
}: { tags: Tag[]; userId: string } & AssetProfileIdentifier) {
await this.tagService.validateTagIds(
tags.map(({ id }) => {
return id;
}),
userId
);
const activities = await this.prismaService.order.findMany({
where: {
userId,

7
apps/api/src/services/tag/tag.service.ts

@ -131,6 +131,13 @@ export class TagService {
return;
}
if (!userId) {
throw new HttpException(
getReasonPhrase(StatusCodes.BAD_REQUEST),
StatusCodes.BAD_REQUEST
);
}
const uniqueTagIds = Array.from(new Set(tagIds));
const tagsCount = await this.prismaService.tag.count({

3
libs/common/src/lib/dtos/create-order.dto.ts

@ -4,6 +4,7 @@ import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code';
import { AssetClass, AssetSubClass, DataSource, Type } from '@prisma/client';
import { Transform, TransformFnParams } from 'class-transformer';
import {
ArrayUnique,
IsArray,
IsBoolean,
IsEnum,
@ -62,8 +63,10 @@ export class CreateOrderDto {
@IsString()
symbol: string;
@ArrayUnique()
@IsArray()
@IsOptional()
@IsString({ each: true })
tags?: string[];
@IsEnum(Type)

3
libs/common/src/lib/dtos/update-order.dto.ts

@ -4,6 +4,7 @@ import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code';
import { AssetClass, AssetSubClass, DataSource, Type } from '@prisma/client';
import { Transform, TransformFnParams } from 'class-transformer';
import {
ArrayUnique,
IsArray,
IsEnum,
IsISO8601,
@ -63,8 +64,10 @@ export class UpdateOrderDto {
@IsString()
symbol: string;
@ArrayUnique()
@IsArray()
@IsOptional()
@IsString({ each: true })
tags?: string[];
@IsString()

Loading…
Cancel
Save