Frontend validation
This commit is contained in:
		@@ -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;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,8 @@
 | 
			
		||||
		"outDir": "./dist",
 | 
			
		||||
		"baseUrl": "./src",
 | 
			
		||||
		"incremental": true,
 | 
			
		||||
		"skipLibCheck": true
 | 
			
		||||
		"skipLibCheck": true,
 | 
			
		||||
		"strictPropertyInitialization": false
 | 
			
		||||
	},
 | 
			
		||||
	"exclude": ["node_modules", "dist"]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user