Browse Source

Limit length for comment, search query and symbol

pull/7810/head
Thomas Kaul 1 month ago
parent
commit
088f74301d
  1. 3
      apps/api/src/app/account/get-all-accounts.dto.ts
  2. 4
      apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts
  3. 3
      apps/api/src/app/portfolio/get-holdings.dto.ts
  4. 4
      apps/api/src/app/symbol/get-lookup.dto.ts
  5. 4
      apps/api/src/dtos/filter.dto.ts
  6. 4
      apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
  7. 6
      apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
  8. 3
      libs/common/src/lib/config.ts
  9. 7
      libs/common/src/lib/dtos/create-order.dto.ts
  10. 7
      libs/common/src/lib/dtos/update-order.dto.ts
  11. 2
      libs/ui/src/lib/assistant/assistant.component.ts
  12. 1
      libs/ui/src/lib/assistant/assistant.html
  13. 1
      libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
  14. 2
      libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts

3
apps/api/src/app/account/get-all-accounts.dto.ts

@ -1,10 +1,11 @@
import { FilterDto } from '@ghostfolio/api/dtos/filter.dto';
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { IsOptional, IsString, MaxLength } from 'class-validator';
export class GetAllAccountsDto extends FilterDto {
@IsOptional()
@IsString()
@MaxLength(255)
@MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query?: string;
}

4
apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts

@ -1,3 +1,5 @@
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { Transform, TransformFnParams } from 'class-transformer';
import { IsBoolean, IsString, MaxLength } from 'class-validator';
@ -9,6 +11,6 @@ export class GetLookupDto {
includeIndices? = false;
@IsString()
@MaxLength(255)
@MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query? = '';
}

3
apps/api/src/app/portfolio/get-holdings.dto.ts

@ -1,4 +1,5 @@
import { DateRangeFilterDto } from '@ghostfolio/api/dtos/date-range-filter.dto';
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { HoldingType } from '@ghostfolio/common/types';
import { IsIn, IsOptional, IsString, MaxLength } from 'class-validator';
@ -10,6 +11,6 @@ export class GetHoldingsDto extends DateRangeFilterDto {
@IsOptional()
@IsString()
@MaxLength(255)
@MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query?: string;
}

4
apps/api/src/app/symbol/get-lookup.dto.ts

@ -1,3 +1,5 @@
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { Transform, TransformFnParams } from 'class-transformer';
import { IsBoolean, IsString, MaxLength } from 'class-validator';
@ -9,6 +11,6 @@ export class GetLookupDto {
includeIndices? = false;
@IsString()
@MaxLength(255)
@MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query? = '';
}

4
apps/api/src/dtos/filter.dto.ts

@ -1,3 +1,5 @@
import { SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { IsOptional, IsString, MaxLength } from 'class-validator';
export class FilterDto {
@ -15,7 +17,7 @@ export class FilterDto {
@IsOptional()
@IsString()
@MaxLength(255)
@MaxLength(SYMBOL_MAXIMUM_LENGTH)
symbol?: string;
@IsOptional()

4
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts

@ -3,7 +3,8 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import {
ASSET_CLASS_MAPPING,
COMMENT_MAXIMUM_LENGTH,
DEFAULT_LOCALE
DEFAULT_LOCALE,
SYMBOL_MAXIMUM_LENGTH
} from '@ghostfolio/common/config';
import { CreateOrderDto, UpdateOrderDto } from '@ghostfolio/common/dtos';
import {
@ -85,6 +86,7 @@ import { ActivityType } from './types/activity-type.type';
export class GfCreateOrUpdateActivityDialogComponent {
protected readonly COMMENT_MAXIMUM_LENGTH = COMMENT_MAXIMUM_LENGTH;
protected readonly DEFAULT_LOCALE = DEFAULT_LOCALE;
protected readonly SYMBOL_MAXIMUM_LENGTH = SYMBOL_MAXIMUM_LENGTH;
protected activityForm: FormGroup;

6
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html

@ -114,7 +114,11 @@
>
<mat-form-field appearance="outline" class="w-100">
<mat-label i18n>Name</mat-label>
<input formControlName="name" matInput />
<input
formControlName="name"
matInput
[maxlength]="SYMBOL_MAXIMUM_LENGTH"
/>
</mat-form-field>
</div>
<div class="d-none">

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

@ -344,6 +344,7 @@ export const REPLACE_NAME_PARTS = [
'Xtrackers (IE) Plc -'
];
export const SEARCH_QUERY_MAXIMUM_LENGTH = 255;
export const SEARCH_QUERY_MINIMUM_LENGTH = 2;
export const SECTORS = [
@ -380,6 +381,8 @@ export const SUPPORTED_LANGUAGE_CODES = [
'zh'
] as const;
export const SYMBOL_MAXIMUM_LENGTH = 255;
export const TAG_ID_DEMO = 'efa08cb3-9b9d-4974-ac68-db13a19c4874';
export const TAG_ID_DRAFT = '0c077abd-eca2-4cbb-818c-6cefbf2d169a';
export const TAG_ID_EMERGENCY_FUND = '4452656d-9fa4-4bd0-ba38-70492e31d180';

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

@ -1,4 +1,7 @@
import { COMMENT_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import {
COMMENT_MAXIMUM_LENGTH,
SYMBOL_MAXIMUM_LENGTH
} from '@ghostfolio/common/config';
import { IsAfter1970Constraint } from '@ghostfolio/common/validator-constraints/is-after-1970';
import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code';
@ -64,7 +67,7 @@ export class CreateOrderDto {
quantity: number;
@IsString()
@MaxLength(255)
@MaxLength(SYMBOL_MAXIMUM_LENGTH)
symbol: string;
@ArrayUnique()

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

@ -1,4 +1,7 @@
import { COMMENT_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import {
COMMENT_MAXIMUM_LENGTH,
SYMBOL_MAXIMUM_LENGTH
} from '@ghostfolio/common/config';
import { IsAfter1970Constraint } from '@ghostfolio/common/validator-constraints/is-after-1970';
import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code';
@ -65,7 +68,7 @@ export class UpdateOrderDto {
quantity: number;
@IsString()
@MaxLength(255)
@MaxLength(SYMBOL_MAXIMUM_LENGTH)
symbol: string;
@ArrayUnique()

2
libs/ui/src/lib/assistant/assistant.component.ts

@ -1,3 +1,4 @@
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { Filter, PortfolioPosition, User } from '@ghostfolio/common/interfaces';
import { InternalRoute } from '@ghostfolio/common/routes/interfaces/internal-route.interface';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
@ -130,6 +131,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
);
public searchFormControl = new FormControl('');
public readonly SEARCH_QUERY_MAXIMUM_LENGTH = SEARCH_QUERY_MAXIMUM_LENGTH;
public searchResults: SearchResults = {
accounts: [],

1
libs/ui/src/lib/assistant/assistant.html

@ -13,6 +13,7 @@
name="search"
type="text"
[formControl]="searchFormControl"
[maxlength]="SEARCH_QUERY_MAXIMUM_LENGTH"
[placeholder]="placeholder"
/>
@if (deviceType !== 'mobile' && !searchFormControl.value) {

1
libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html

@ -4,6 +4,7 @@
matInput
[formControl]="control"
[matAutocomplete]="symbolAutocomplete"
[maxlength]="SEARCH_QUERY_MAXIMUM_LENGTH"
/>
<mat-autocomplete

2
libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts

@ -1,3 +1,4 @@
import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { LookupItem } from '@ghostfolio/common/interfaces';
import { DataService } from '@ghostfolio/ui/services';
@ -86,6 +87,7 @@ export class GfSymbolAutocompleteComponent
public readonly control = new FormControl();
public lookupItems: (LookupItem & { assetSubClassString: string })[] = [];
public readonly SEARCH_QUERY_MAXIMUM_LENGTH = SEARCH_QUERY_MAXIMUM_LENGTH;
protected readonly symbolAutocomplete =
viewChild.required<MatAutocomplete>('symbolAutocomplete');

Loading…
Cancel
Save