Moved dto from package to folder
This commit is contained in:
61
dto/responses/admin.ts
Normal file
61
dto/responses/admin.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { SuccessResponse } from './base';
|
||||
import {
|
||||
IsArray,
|
||||
IsBoolean,
|
||||
IsEnum,
|
||||
IsNotEmpty,
|
||||
IsNumber,
|
||||
IsString,
|
||||
ValidateNested
|
||||
} from 'class-validator';
|
||||
import { UserRole, ValidateConstructor } from '../utils';
|
||||
|
||||
@ValidateConstructor
|
||||
export class GetUsersEntry {
|
||||
constructor(
|
||||
id: number,
|
||||
gitlab: boolean,
|
||||
name: string,
|
||||
role: UserRole,
|
||||
tfaEnabled: boolean
|
||||
) {
|
||||
this.id = id;
|
||||
this.gitlab = gitlab;
|
||||
this.name = name;
|
||||
this.role = role;
|
||||
this.tfaEnabled = tfaEnabled;
|
||||
}
|
||||
|
||||
@IsNumber()
|
||||
id: number;
|
||||
|
||||
@IsBoolean()
|
||||
gitlab: boolean;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
name: string;
|
||||
|
||||
@IsEnum(UserRole)
|
||||
role: UserRole;
|
||||
|
||||
@IsBoolean()
|
||||
tfaEnabled: boolean;
|
||||
}
|
||||
|
||||
@ValidateConstructor
|
||||
export class GetUsers extends SuccessResponse {
|
||||
constructor(users: GetUsersEntry[]) {
|
||||
super();
|
||||
this.users = users;
|
||||
}
|
||||
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
users: GetUsersEntry[];
|
||||
}
|
||||
|
||||
export class LogoutAllUser extends SuccessResponse {}
|
||||
export class DeleteUser extends SuccessResponse {}
|
||||
export class SetUserRole extends SuccessResponse {}
|
||||
export class DisableTfa extends SuccessResponse {}
|
||||
40
dto/responses/auth.ts
Normal file
40
dto/responses/auth.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { SuccessResponse } from './base';
|
||||
import { IsBase32, IsJWT, IsNotEmpty } from 'class-validator';
|
||||
import { ValidateConstructor } from '../utils';
|
||||
|
||||
@ValidateConstructor
|
||||
export class LoginResponse extends SuccessResponse {
|
||||
constructor(jwt: string) {
|
||||
super();
|
||||
this.jwt = jwt;
|
||||
}
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsJWT()
|
||||
jwt: string;
|
||||
}
|
||||
|
||||
@ValidateConstructor
|
||||
export class RequestTotpTfaResponse extends SuccessResponse {
|
||||
constructor(qrCode: string, secret: string) {
|
||||
super();
|
||||
this.qrCode = qrCode;
|
||||
this.secret = secret;
|
||||
}
|
||||
|
||||
@IsNotEmpty()
|
||||
qrCode: string;
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsBase32()
|
||||
secret: string;
|
||||
}
|
||||
|
||||
export class TfaRequiredResponse extends SuccessResponse {}
|
||||
export class RemoveTfaResponse extends SuccessResponse {}
|
||||
export class RequestEmailTfaResponse extends SuccessResponse {}
|
||||
export class TfaCompletedResponse extends SuccessResponse {}
|
||||
export class SignupResponse extends SuccessResponse {}
|
||||
export class ChangePasswordResponse extends SuccessResponse {}
|
||||
export class LogoutAllResponse extends SuccessResponse {}
|
||||
export class RefreshResponse extends LoginResponse {}
|
||||
25
dto/responses/base.ts
Normal file
25
dto/responses/base.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { IsNumber, Max, Min } from 'class-validator';
|
||||
|
||||
export class BaseResponse {
|
||||
constructor(statusCode: number) {
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
|
||||
@IsNumber()
|
||||
@Min(100)
|
||||
@Max(599)
|
||||
statusCode: number;
|
||||
}
|
||||
|
||||
export class SuccessResponse extends BaseResponse {
|
||||
constructor() {
|
||||
super(200);
|
||||
}
|
||||
|
||||
declare statusCode: 200;
|
||||
}
|
||||
|
||||
export class ErrorResponse extends BaseResponse {
|
||||
declare statusCode: 400 | 401 | 403;
|
||||
message?: string;
|
||||
}
|
||||
89
dto/responses/fs.ts
Normal file
89
dto/responses/fs.ts
Normal file
@@ -0,0 +1,89 @@
|
||||
import { SuccessResponse } from './base';
|
||||
import {
|
||||
IsBoolean,
|
||||
IsInt,
|
||||
IsNotEmpty,
|
||||
IsOptional,
|
||||
IsString,
|
||||
Min
|
||||
} from 'class-validator';
|
||||
import { ValidateConstructor } from '../utils';
|
||||
|
||||
@ValidateConstructor
|
||||
export class GetRootResponse extends SuccessResponse {
|
||||
constructor(rootId: number) {
|
||||
super();
|
||||
this.rootId = rootId;
|
||||
}
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
rootId: number;
|
||||
}
|
||||
|
||||
export class GetNodeResponse extends SuccessResponse {
|
||||
constructor(
|
||||
id: number,
|
||||
name: string,
|
||||
isFile: boolean,
|
||||
parent: number | null
|
||||
) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.isFile = isFile;
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
id: number;
|
||||
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
@IsBoolean()
|
||||
isFile: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
parent: number | null;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt({ each: true })
|
||||
@Min(1, { each: true })
|
||||
children?: number[];
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@Min(0)
|
||||
size?: number;
|
||||
}
|
||||
|
||||
@ValidateConstructor
|
||||
export class GetPathResponse extends SuccessResponse {
|
||||
constructor(path: string) {
|
||||
super();
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsString()
|
||||
path: string;
|
||||
}
|
||||
|
||||
@ValidateConstructor
|
||||
export class CreateFolderResponse extends SuccessResponse {
|
||||
constructor(id: number) {
|
||||
super();
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
id: number;
|
||||
}
|
||||
|
||||
export class UploadFileResponse extends SuccessResponse {}
|
||||
export class DeleteResponse extends SuccessResponse {}
|
||||
export class CreateFileResponse extends CreateFolderResponse {}
|
||||
5
dto/responses/index.ts
Normal file
5
dto/responses/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export * from './base';
|
||||
export * as Auth from './auth';
|
||||
export * as FS from './fs';
|
||||
export * as User from './user';
|
||||
export * as Admin from './admin';
|
||||
27
dto/responses/user.ts
Normal file
27
dto/responses/user.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { SuccessResponse } from './base';
|
||||
import { ValidateConstructor } from '../utils';
|
||||
import { IsBoolean, IsNotEmpty, IsString } from 'class-validator';
|
||||
|
||||
@ValidateConstructor
|
||||
export class UserInfoResponse extends SuccessResponse {
|
||||
constructor(name: string, gitlab: boolean, tfaEnabled: boolean) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.gitlab = gitlab;
|
||||
this.tfaEnabled = tfaEnabled;
|
||||
}
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
@IsBoolean()
|
||||
gitlab: boolean;
|
||||
|
||||
@IsBoolean()
|
||||
tfaEnabled: boolean;
|
||||
}
|
||||
|
||||
export class DeleteUserResponse extends SuccessResponse {}
|
||||
export class ChangePasswordResponse extends SuccessResponse {}
|
||||
export class LogoutAllResponse extends SuccessResponse {}
|
||||
Reference in New Issue
Block a user