diff --git a/src/auth/auth-token.dto.ts b/src/auth/auth-token.dto.ts index 9f00fb33f..f175f8a90 100644 --- a/src/auth/auth-token.dto.ts +++ b/src/auth/auth-token.dto.ts @@ -1,11 +1,13 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { IsDate, IsOptional, IsString } from 'class-validator'; -export class AuthTokenDto { +import { BaseDto } from '../utils/base.dto.'; + +export class AuthTokenDto extends BaseDto { @IsString() label: string; @IsString() diff --git a/src/frontend-config/frontend-config.dto.ts b/src/frontend-config/frontend-config.dto.ts index 1e2c86d73..78afde0ed 100644 --- a/src/frontend-config/frontend-config.dto.ts +++ b/src/frontend-config/frontend-config.dto.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,6 +15,7 @@ import { import { URL } from 'url'; import { ServerVersion } from '../monitoring/server-status.dto'; +import { BaseDto } from '../utils/base.dto.'; export enum AuthProviderType { LOCAL = 'local', @@ -43,7 +44,7 @@ export type AuthProviderTypeWithoutCustomName = | AuthProviderType.DROPBOX | AuthProviderType.GOOGLE; -export class AuthProviderWithoutCustomNameDto { +export class AuthProviderWithoutCustomNameDto extends BaseDto { /** * The type of the auth provider. */ @@ -51,7 +52,7 @@ export class AuthProviderWithoutCustomNameDto { type: AuthProviderTypeWithoutCustomName; } -export class AuthProviderWithCustomNameDto { +export class AuthProviderWithCustomNameDto extends BaseDto { /** * The type of the auth provider. */ @@ -77,7 +78,7 @@ export type AuthProviderDto = | AuthProviderWithCustomNameDto | AuthProviderWithoutCustomNameDto; -export class BrandingDto { +export class BrandingDto extends BaseDto { /** * The name to be displayed next to the HedgeDoc logo * @example ACME Corp @@ -95,7 +96,7 @@ export class BrandingDto { logo?: URL; } -export class SpecialUrlsDto { +export class SpecialUrlsDto extends BaseDto { /** * A link to the privacy notice * @example https://md.example.com/n/privacy @@ -121,7 +122,7 @@ export class SpecialUrlsDto { imprint?: URL; } -export class IframeCommunicationDto { +export class IframeCommunicationDto extends BaseDto { /** * The origin under which the editor page will be served * @example https://md.example.com @@ -139,7 +140,7 @@ export class IframeCommunicationDto { rendererOrigin?: URL; } -export class FrontendConfigDto { +export class FrontendConfigDto extends BaseDto { /** * Is anonymous usage of the instance allowed? */ diff --git a/src/groups/group-info.dto.ts b/src/groups/group-info.dto.ts index 3e2a12830..f2ea39672 100644 --- a/src/groups/group-info.dto.ts +++ b/src/groups/group-info.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean, IsString } from 'class-validator'; -export class GroupInfoDto { +import { BaseDto } from '../utils/base.dto.'; + +export class GroupInfoDto extends BaseDto { /** * Name of the group * @example "superheroes" diff --git a/src/history/history-entry-import.dto.ts b/src/history/history-entry-import.dto.ts index c89a86e4d..71d99e6be 100644 --- a/src/history/history-entry-import.dto.ts +++ b/src/history/history-entry-import.dto.ts @@ -1,11 +1,13 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { IsBoolean, IsDate, IsString } from 'class-validator'; -export class HistoryEntryImportDto { +import { BaseDto } from '../utils/base.dto.'; + +export class HistoryEntryImportDto extends BaseDto { /** * ID or Alias of the note */ diff --git a/src/history/history-entry-update.dto.ts b/src/history/history-entry-update.dto.ts index 76cb4d221..fe0457dd5 100644 --- a/src/history/history-entry-update.dto.ts +++ b/src/history/history-entry-update.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean } from 'class-validator'; -export class HistoryEntryUpdateDto { +import { BaseDto } from '../utils/base.dto.'; + +export class HistoryEntryUpdateDto extends BaseDto { /** * True if the note should be pinned */ diff --git a/src/history/history-entry.dto.ts b/src/history/history-entry.dto.ts index eeaf24d75..4e9f098c5 100644 --- a/src/history/history-entry.dto.ts +++ b/src/history/history-entry.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsArray, IsBoolean, IsDate, IsString } from 'class-validator'; -export class HistoryEntryDto { +import { BaseDto } from '../utils/base.dto.'; + +export class HistoryEntryDto extends BaseDto { /** * ID or Alias of the note */ diff --git a/src/media/media-upload-url.dto.ts b/src/media/media-upload-url.dto.ts index d5e420a04..47a1e2a78 100644 --- a/src/media/media-upload-url.dto.ts +++ b/src/media/media-upload-url.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsString } from 'class-validator'; -export class MediaUploadUrlDto { +import { BaseDto } from '../utils/base.dto.'; + +export class MediaUploadUrlDto extends BaseDto { @IsString() @ApiProperty() link: string; diff --git a/src/media/media-upload.dto.ts b/src/media/media-upload.dto.ts index ff9370226..7e38a7a16 100644 --- a/src/media/media-upload.dto.ts +++ b/src/media/media-upload.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsDate, IsOptional, IsString } from 'class-validator'; -export class MediaUploadDto { +import { BaseDto } from '../utils/base.dto.'; + +export class MediaUploadDto extends BaseDto { /** * The link to the media file. * @example "https://example.com/uploads/testfile123.jpg" diff --git a/src/monitoring/server-status.dto.ts b/src/monitoring/server-status.dto.ts index de94fefdb..541fe7bc7 100644 --- a/src/monitoring/server-status.dto.ts +++ b/src/monitoring/server-status.dto.ts @@ -1,10 +1,12 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; +import { BaseDto } from '../utils/base.dto.'; + export class ServerVersion { @ApiProperty() major: number; @@ -18,7 +20,7 @@ export class ServerVersion { commit?: string; } -export class ServerStatusDto { +export class ServerStatusDto extends BaseDto { @ApiProperty() serverVersion: ServerVersion; @ApiProperty() diff --git a/src/notes/alias-create.dto.ts b/src/notes/alias-create.dto.ts index 2da4dd841..6c04f4604 100644 --- a/src/notes/alias-create.dto.ts +++ b/src/notes/alias-create.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsString } from 'class-validator'; -export class AliasCreateDto { +import { BaseDto } from '../utils/base.dto.'; + +export class AliasCreateDto extends BaseDto { /** * The note id or alias, which identifies the note the alias should be added to */ diff --git a/src/notes/alias-update.dto.ts b/src/notes/alias-update.dto.ts index 318c86680..6ce7bf330 100644 --- a/src/notes/alias-update.dto.ts +++ b/src/notes/alias-update.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean } from 'class-validator'; -export class AliasUpdateDto { +import { BaseDto } from '../utils/base.dto.'; + +export class AliasUpdateDto extends BaseDto { /** * Whether the alias should become the primary alias or not */ diff --git a/src/notes/alias.dto.ts b/src/notes/alias.dto.ts index dccaddc23..1f5c2af29 100644 --- a/src/notes/alias.dto.ts +++ b/src/notes/alias.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean, IsString } from 'class-validator'; -export class AliasDto { +import { BaseDto } from '../utils/base.dto.'; + +export class AliasDto extends BaseDto { /** * The name of the alias */ diff --git a/src/notes/note-metadata.dto.ts b/src/notes/note-metadata.dto.ts index 46251c9df..f76859e43 100644 --- a/src/notes/note-metadata.dto.ts +++ b/src/notes/note-metadata.dto.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,9 +14,10 @@ import { } from 'class-validator'; import { UserInfoDto } from '../users/user-info.dto'; +import { BaseDto } from '../utils/base.dto.'; import { NotePermissionsDto } from './note-permissions.dto'; -export class NoteMetadataDto { +export class NoteMetadataDto extends BaseDto { /** * ID of the note */ diff --git a/src/notes/note-permissions.dto.ts b/src/notes/note-permissions.dto.ts index e2d0efdad..4626d2ddb 100644 --- a/src/notes/note-permissions.dto.ts +++ b/src/notes/note-permissions.dto.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,7 +12,9 @@ import { ValidateNested, } from 'class-validator'; -export class NoteUserPermissionEntryDto { +import { BaseDto } from '../utils/base.dto.'; + +export class NoteUserPermissionEntryDto extends BaseDto { /** * Username of the User this permission applies to */ diff --git a/src/notes/note.dto.ts b/src/notes/note.dto.ts index 68784e8b1..2a988e93c 100644 --- a/src/notes/note.dto.ts +++ b/src/notes/note.dto.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,9 +7,10 @@ import { ApiProperty } from '@nestjs/swagger'; import { IsArray, IsString, ValidateNested } from 'class-validator'; import { EditDto } from '../revisions/edit.dto'; +import { BaseDto } from '../utils/base.dto.'; import { NoteMetadataDto } from './note-metadata.dto'; -export class NoteDto { +export class NoteDto extends BaseDto { /** * Markdown content of the note * @example "# I am a heading" diff --git a/src/notes/note.media-deletion.dto.ts b/src/notes/note.media-deletion.dto.ts index aebbea277..1d8eaa184 100644 --- a/src/notes/note.media-deletion.dto.ts +++ b/src/notes/note.media-deletion.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean } from 'class-validator'; -export class NoteMediaDeletionDto { +import { BaseDto } from '../utils/base.dto.'; + +export class NoteMediaDeletionDto extends BaseDto { /** * Should the associated mediaUploads be keept * @default false diff --git a/src/revisions/edit.dto.ts b/src/revisions/edit.dto.ts index 3a0cc49ba..5b4ab4c43 100644 --- a/src/revisions/edit.dto.ts +++ b/src/revisions/edit.dto.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,8 +7,9 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsDate, IsNumber, IsOptional, IsString, Min } from 'class-validator'; import { UserInfoDto } from '../users/user-info.dto'; +import { BaseDto } from '../utils/base.dto.'; -export class EditDto { +export class EditDto extends BaseDto { /** * Username of the user who authored this section * Is `null` if the user is anonymous diff --git a/src/revisions/revision.dto.ts b/src/revisions/revision.dto.ts index e4d968c39..ad84365e5 100644 --- a/src/revisions/revision.dto.ts +++ b/src/revisions/revision.dto.ts @@ -1,14 +1,15 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsDate, IsNumber, IsString } from 'class-validator'; +import { BaseDto } from '../utils/base.dto.'; import { Revision } from './revision.entity'; -export class RevisionDto { +export class RevisionDto extends BaseDto { /** * ID of this revision * @example 13 diff --git a/src/users/user-info.dto.ts b/src/users/user-info.dto.ts index 906590970..5fc2eb0db 100644 --- a/src/users/user-info.dto.ts +++ b/src/users/user-info.dto.ts @@ -1,12 +1,14 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; import { IsString } from 'class-validator'; -export class UserInfoDto { +import { BaseDto } from '../utils/base.dto.'; + +export class UserInfoDto extends BaseDto { /** * The username * @example "john.smith" diff --git a/src/utils/base.dto..ts b/src/utils/base.dto..ts new file mode 100644 index 000000000..fb98b88ee --- /dev/null +++ b/src/utils/base.dto..ts @@ -0,0 +1,10 @@ +/* + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +/** + * The base class for all DTOs. + */ +export abstract class BaseDto {}