fileserver/dto/index.ts
2022-08-23 22:15:01 +02:00

74 lines
1.5 KiB
TypeScript

//
// Responses
//
export interface BaseResponse {
statusCode: number;
}
export interface ErrorResponse extends BaseResponse {
statusCode: 400 | 401 | 403;
message?: string;
}
export type RefreshResponse = LoginResponse;
export interface LoginResponse extends BaseResponse {
statusCode: 200;
jwt: string;
}
export interface GetRootResponse extends BaseResponse {
statusCode: 200;
rootId: number;
}
export interface GetNodeResponse extends BaseResponse {
statusCode: 200;
id: number;
name: string;
isFile: boolean;
parent: number | null;
children?: number[];
size?: number;
}
export interface GetPathResponse extends BaseResponse {
statusCode: 200;
path: string;
}
export type CreateFileResponse = CreateFolderResponse;
export interface CreateFolderResponse extends BaseResponse {
statusCode: 200;
id: number;
}
export type SignupResponse = DeleteResponse;
export type UploadFileResponse = DeleteResponse;
export interface DeleteResponse extends BaseResponse {
statusCode: 200;
}
//
// Requests
//
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface BaseRequest {}
export type AuthSignUpRequest = AuthLoginRequest;
export interface AuthLoginRequest extends BaseRequest {
username: string;
password: string;
}
export type CreateFileRequest = CreateFolderRequest;
export interface CreateFolderRequest extends BaseRequest {
parent: number;
name: string;
}
export interface DeleteRequest extends BaseRequest {
node: number;
}