Moved dto to separate package
This commit is contained in:
2
dto/src/index.ts
Normal file
2
dto/src/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * as Requests from './requests';
|
||||
export * as Responses from './responses';
|
||||
14
dto/src/requests/auth.ts
Normal file
14
dto/src/requests/auth.ts
Normal 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
1
dto/src/requests/base.ts
Normal file
@@ -0,0 +1 @@
|
||||
export class BaseRequest {}
|
||||
19
dto/src/requests/fs.ts
Normal file
19
dto/src/requests/fs.ts
Normal 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;
|
||||
}
|
||||
3
dto/src/requests/index.ts
Normal file
3
dto/src/requests/index.ts
Normal 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
28
dto/src/responses/auth.ts
Normal 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
12
dto/src/responses/base.ts
Normal 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
49
dto/src/responses/fs.ts
Normal 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;
|
||||
}
|
||||
3
dto/src/responses/index.ts
Normal file
3
dto/src/responses/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './base';
|
||||
export * as Auth from './auth';
|
||||
export * as FS from './fs';
|
||||
Reference in New Issue
Block a user