Frontend validation

This commit is contained in:
2022-08-25 14:16:29 +02:00
parent 65464e762a
commit 23ba777e5a
9 changed files with 40 additions and 29 deletions

View File

@@ -1,4 +1,4 @@
import { BaseResponse, SuccessResponse } from './base';
import { SuccessResponse } from './base';
import { IsBase32, IsJWT, IsNotEmpty } from 'class-validator';
export type TfaRequiredResponse = SuccessResponse;
@@ -8,17 +8,13 @@ export type TfaCompletedResponse = SuccessResponse;
export type SignupResponse = SuccessResponse;
export type RefreshResponse = LoginResponse;
export class LoginResponse extends BaseResponse {
statusCode: 200;
export class LoginResponse extends SuccessResponse {
@IsNotEmpty()
@IsJWT()
jwt: string;
}
export class RequestTotpTfaResponse extends BaseResponse {
statusCode: 200;
export class RequestTotpTfaResponse extends SuccessResponse {
@IsNotEmpty()
qrCode: string;

View File

@@ -1,12 +1,20 @@
export class BaseResponse {
constructor(statusCode: number) {
this.statusCode = statusCode;
}
statusCode: number;
}
export class SuccessResponse extends BaseResponse {
statusCode: 200;
constructor() {
super(200);
}
declare statusCode: 200;
}
export class ErrorResponse extends BaseResponse {
statusCode: 400 | 401 | 403;
declare statusCode: 400 | 401 | 403;
message?: string;
}

View File

@@ -1,21 +1,17 @@
import { BaseResponse, SuccessResponse } from './base';
import { SuccessResponse } from './base';
import { IsBoolean, IsInt, IsNotEmpty, Min } from 'class-validator';
export type UploadFileResponse = SuccessResponse;
export type DeleteResponse = SuccessResponse;
export type CreateFileResponse = CreateFolderResponse;
export class GetRootResponse extends BaseResponse {
statusCode: 200;
export class GetRootResponse extends SuccessResponse {
@IsInt()
@Min(1)
rootId: number;
}
export class GetNodeResponse extends BaseResponse {
statusCode: 200;
export class GetNodeResponse extends SuccessResponse {
@IsInt()
@Min(1)
id: number;
@@ -28,21 +24,19 @@ export class GetNodeResponse extends BaseResponse {
parent: number | null;
@IsInt({ each: true })
@Min(1, { each: true })
children?: number[];
size?: number;
}
export class GetPathResponse extends BaseResponse {
statusCode: 200;
export class GetPathResponse extends SuccessResponse {
@IsNotEmpty()
path: string;
}
export class CreateFolderResponse extends BaseResponse {
statusCode: 200;
export class CreateFolderResponse extends SuccessResponse {
@IsInt()
@Min(1)
id: number;