Moved dto to separate package

This commit is contained in:
2022-08-25 13:39:58 +02:00
parent cb84e73310
commit 197373c9df
18 changed files with 169 additions and 42 deletions

2
dto/src/index.ts Normal file
View File

@@ -0,0 +1,2 @@
export * as Requests from './requests';
export * as Responses from './responses';

14
dto/src/requests/auth.ts Normal file
View File

@@ -0,0 +1,14 @@
import { BaseRequest } from './base';
import { IsEmail, IsNotEmpty } from 'class-validator';
export class AuthSignUpRequest extends BaseRequest {
@IsEmail()
username: string;
@IsNotEmpty()
password: string;
}
export class AuthLoginRequest extends AuthSignUpRequest {
otp?: string;
}

1
dto/src/requests/base.ts Normal file
View File

@@ -0,0 +1 @@
export class BaseRequest {}

19
dto/src/requests/fs.ts Normal file
View File

@@ -0,0 +1,19 @@
import { BaseRequest } from './base';
import { IsInt, IsNotEmpty, Min } from 'class-validator';
export type CreateFileRequest = CreateFolderRequest;
export class CreateFolderRequest extends BaseRequest {
@IsInt()
@Min(1)
parent: number;
@IsNotEmpty()
name: string;
}
export class DeleteRequest extends BaseRequest {
@IsInt()
@Min(1)
node: number;
}

View File

@@ -0,0 +1,3 @@
export * from './base';
export * as Auth from './auth';
export * as FS from './fs';

28
dto/src/responses/auth.ts Normal file
View File

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

12
dto/src/responses/base.ts Normal file
View File

@@ -0,0 +1,12 @@
export class BaseResponse {
statusCode: number;
}
export class SuccessResponse extends BaseResponse {
statusCode: 200;
}
export class ErrorResponse extends BaseResponse {
statusCode: 400 | 401 | 403;
message?: string;
}

49
dto/src/responses/fs.ts Normal file
View File

@@ -0,0 +1,49 @@
import { BaseResponse, 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;
@IsInt()
@Min(1)
rootId: number;
}
export class GetNodeResponse extends BaseResponse {
statusCode: 200;
@IsInt()
@Min(1)
id: number;
@IsNotEmpty()
name: string;
@IsBoolean()
isFile: boolean;
parent: number | null;
children?: number[];
size?: number;
}
export class GetPathResponse extends BaseResponse {
statusCode: 200;
@IsNotEmpty()
path: string;
}
export class CreateFolderResponse extends BaseResponse {
statusCode: 200;
@IsInt()
@Min(1)
id: number;
}

View File

@@ -0,0 +1,3 @@
export * from './base';
export * as Auth from './auth';
export * as FS from './fs';