1
0
Fork 0
mirror of https://github.com/hedgedoc/hedgedoc.git synced 2025-03-24 14:11:27 +00:00

fix: ensure dates are properly transformed

To correctly transform Date objects from ISO-strings in JSON
to instances, class-transformer requires the `@Type` annotation.

References:
https://github.com/typestack/class-transformer#%D1%81onverting-date-strings-into-date-objects
Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
David Mehren 2022-03-05 12:10:41 +01:00 committed by Philip Molares
parent 59a235ebc4
commit 7e8716ec95
8 changed files with 23 additions and 1 deletions

View file

@ -3,6 +3,7 @@
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { Type } from 'class-transformer';
import { IsDate, IsOptional, IsString } from 'class-validator';
import { BaseDto } from '../utils/base.dto.';
@ -10,13 +11,20 @@ import { BaseDto } from '../utils/base.dto.';
export class AuthTokenDto extends BaseDto {
@IsString()
label: string;
@IsString()
keyId: string;
@IsDate()
@Type(() => Date)
createdAt: Date;
@IsDate()
@Type(() => Date)
validUntil: Date;
@IsDate()
@Type(() => Date)
@IsOptional()
lastUsedAt: Date | null;
}

View file

@ -3,6 +3,7 @@
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { Type } from 'class-transformer';
import { IsBoolean, IsDate, IsString } from 'class-validator';
import { BaseDto } from '../utils/base.dto.';
@ -24,5 +25,6 @@ export class HistoryEntryImportDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
lastVisited: Date;
}

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsArray, IsBoolean, IsDate, IsString } from 'class-validator';
import { BaseDto } from '../utils/base.dto.';
@ -30,6 +31,7 @@ export class HistoryEntryDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
lastVisitedAt: Date;

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsDate, IsOptional, IsString } from 'class-validator';
import { BaseDto } from '../utils/base.dto.';
@ -31,6 +32,7 @@ export class MediaUploadDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
createdAt: Date;

View file

@ -14,7 +14,6 @@ import {
ValidateNested,
} from 'class-validator';
import { UserInfoDto } from '../users/user-info.dto';
import { BaseDto } from '../utils/base.dto.';
import { NotePermissionsDto } from './note-permissions.dto';
@ -73,6 +72,7 @@ export class NoteMetadataDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
updatedAt: Date;
@ -97,6 +97,7 @@ export class NoteMetadataDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
createdAt: Date;

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsDate, IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { UserInfoDto } from '../users/user-info.dto';
@ -44,6 +45,7 @@ export class EditDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
createdAt: Date;
@ -52,6 +54,7 @@ export class EditDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
updatedAt: Date;
}

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsDate, IsNumber } from 'class-validator';
import { Revision } from './revision.entity';
@ -22,6 +23,7 @@ export class RevisionMetadataDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
createdAt: Date;

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsDate, IsNumber, IsString } from 'class-validator';
import { BaseDto } from '../utils/base.dto.';
@ -38,6 +39,7 @@ export class RevisionDto extends BaseDto {
* @example "2020-12-01 12:23:34"
*/
@IsDate()
@Type(() => Date)
@ApiProperty()
createdAt: Date;
}