formatting code upload project instance to files
This commit is contained in:
parent
ce4c98ff13
commit
a0b4f00f47
65 changed files with 399 additions and 748 deletions
|
@ -2,29 +2,20 @@ import { App } from "../../core/controllers/app";
|
|||
import { Result } from "../../core/helper/result";
|
||||
import { CreateDataBaseModelUseCase } from "../../core/usecases/create_database_model_usecase";
|
||||
import { CreateFolderUseCase } from "../../core/usecases/crete_folder_usecase";
|
||||
import {
|
||||
ProjectInstanceDbModel,
|
||||
ProjectInstanceValidationModel,
|
||||
} from "./project_instance_model";
|
||||
import { ProjectInstanceDbModel, ProjectInstanceValidationModel } from "./project_instance_model";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
|
||||
export class CreateNewProjectInstanceScenario {
|
||||
call = async (
|
||||
model: ProjectInstanceValidationModel
|
||||
): Promise<Result<Error, any>> => {
|
||||
call = async (model: ProjectInstanceValidationModel): Promise<Result<Error, any>> => {
|
||||
try {
|
||||
const folderName = uuidv4() + "/";
|
||||
const createFolderUseCase = await new CreateFolderUseCase().call(
|
||||
App.staticFilesStoreDir() + folderName
|
||||
);
|
||||
const createFolderUseCase = await new CreateFolderUseCase().call(App.staticFilesStoreDir() + folderName);
|
||||
if (createFolderUseCase.isFailure()) {
|
||||
return createFolderUseCase.forward();
|
||||
}
|
||||
model.rootDir = folderName;
|
||||
|
||||
const createDataBaseModelUseCase = await new CreateDataBaseModelUseCase(
|
||||
ProjectInstanceDbModel
|
||||
).call(model);
|
||||
const createDataBaseModelUseCase = await new CreateDataBaseModelUseCase(ProjectInstanceDbModel).call(model);
|
||||
|
||||
if (createDataBaseModelUseCase.isFailure()) {
|
||||
return createDataBaseModelUseCase.forward();
|
||||
|
|
|
@ -3,6 +3,7 @@ import { IProjectModel, projectSchema } from "../projects/projects_model";
|
|||
import { IsMongoId, IsOptional, IsString } from "class-validator";
|
||||
|
||||
export interface IProjectInstanceModel {
|
||||
_id: string;
|
||||
project: IProjectModel;
|
||||
description: string;
|
||||
rootDir: string;
|
||||
|
@ -30,10 +31,7 @@ export const ProjectInstanceSchema = new Schema({
|
|||
|
||||
export const schemaProjectInstance = "instance_project";
|
||||
|
||||
export const ProjectInstanceDbModel = model<IProjectInstanceModel>(
|
||||
schemaProjectInstance,
|
||||
ProjectInstanceSchema
|
||||
);
|
||||
export const ProjectInstanceDbModel = model<IProjectInstanceModel>(schemaProjectInstance, ProjectInstanceSchema);
|
||||
|
||||
export class ProjectInstanceValidationModel {
|
||||
@IsMongoId()
|
||||
|
|
|
@ -1,15 +1,7 @@
|
|||
import { CrudController } from "../../core/controllers/crud_controller";
|
||||
import {
|
||||
CallbackStrategyWithEmpty,
|
||||
ResponseBase,
|
||||
} from "../../core/controllers/http_controller";
|
||||
import { Result } from "../../core/helper/result";
|
||||
import { CreateNewProjectInstanceScenario } from "./create_new_project_scenario";
|
||||
import {
|
||||
ProjectInstanceDbModel,
|
||||
ProjectInstanceValidationModel,
|
||||
} from "./project_instance_model";
|
||||
import { UploadCadFileToProjectUseCase } from "./upload_file_to_project_usecase";
|
||||
import { ProjectInstanceDbModel, ProjectInstanceValidationModel } from "./project_instance_model";
|
||||
import { UploadCadFileToProjectScenario } from "./upload_file_to_to_project_scenario";
|
||||
|
||||
export class ProjectInstancePresentation extends CrudController<
|
||||
ProjectInstanceValidationModel,
|
||||
|
@ -27,14 +19,8 @@ export class ProjectInstancePresentation extends CrudController<
|
|||
{
|
||||
method: "post",
|
||||
subUrl: "upload",
|
||||
fn: new TestUseCase(),
|
||||
fn: new UploadCadFileToProjectScenario(),
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
class TestUseCase extends CallbackStrategyWithEmpty {
|
||||
async call(): ResponseBase {
|
||||
return Result.ok(200);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
import {
|
||||
CallbackStrategyWithFileUpload,
|
||||
ResponseBase,
|
||||
} from "../../core/controllers/http_controller";
|
||||
import { Result } from "../../core/helper/result";
|
||||
|
||||
export class UploadCadFileToProjectUseCase extends CallbackStrategyWithFileUpload {
|
||||
checkingFileExpression: RegExp = RegExp('.FCStd')
|
||||
async call(file: File): ResponseBase {
|
||||
|
||||
return Result.ok("200");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import { App } from "../../core/controllers/app";
|
||||
import { CallbackStrategyWithFileUpload, ResponseBase } from "../../core/controllers/http_controller";
|
||||
import { Result } from "../../core/helper/result";
|
||||
import { CreateFileUseCase } from "../../core/usecases/create_file_usecase";
|
||||
import { PipelineStatusUseCase } from "../realtime/usecases/pipeline_status_usecase";
|
||||
|
||||
export interface IFile extends File {
|
||||
data: Buffer;
|
||||
}
|
||||
|
||||
export class UploadCadFileToProjectScenario extends CallbackStrategyWithFileUpload {
|
||||
checkingFileExpression: RegExp = RegExp(".pages");
|
||||
|
||||
async call(file: IFile): ResponseBase {
|
||||
const pipelineStatusUseCase = await new PipelineStatusUseCase().call();
|
||||
if (pipelineStatusUseCase.isFailure()) {
|
||||
return pipelineStatusUseCase.forward();
|
||||
}
|
||||
const projectFolder = pipelineStatusUseCase.value.path;
|
||||
// TODO:
|
||||
const createFileUseCase = await new CreateFileUseCase().call(projectFolder + file.name, file.data);
|
||||
if (createFileUseCase.isFailure()) {
|
||||
return createFileUseCase.forward();
|
||||
}
|
||||
|
||||
return Result.ok("ok");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue