This commit is contained in:
IDONTSUDO 2024-10-28 11:52:53 +03:00
parent 00c553ecd7
commit 29dcfb6ac1
5 changed files with 59 additions and 6 deletions

View file

@ -0,0 +1,48 @@
import { CallbackStrategyWithEmpty, ResponseBase } from "../../../core/controllers/http_controller";
import { Result } from "../../../core/helpers/result";
import { StaticFilesProject } from "../../../core/models/static_files";
import { ReadFileAndParseJsonUseCase } from "../../../core/usecases/read_file_and_parse_json";
import { SearchManyDataBaseModelUseCase } from "../../../core/usecases/search_many_database_model_usecase";
import { IProjectModel, ProjectDBModel } from "../models/project_model_database_model";
export interface Parts {
name: string;
part_path: string;
material_path: string;
stlUrl: string;
image: string;
glUrl: string;
daeUrl: string;
fbx: string;
objUrl: string;
solidType: string;
}
export class RobossemblerAssetsLocaleMapperScenario extends CallbackStrategyWithEmpty {
call = async (): ResponseBase =>
(
await new SearchManyDataBaseModelUseCase<IProjectModel>(ProjectDBModel).call(
{ isActive: true },
"is dont active projects"
)
).map(async (projectModel) => {
const { rootDir } = projectModel[0];
return (await new ReadFileAndParseJsonUseCase().call<Parts[]>(rootDir + StaticFilesProject.parts)).map(
(model) => {
model.map((el) => {
const assetLibsAddress = rootDir + "/libs/objects/" + el.name;
el.fbx = `${assetLibsAddress}.fbx`;
el.stlUrl = `${assetLibsAddress}${el.part_path}`;
el.glUrl = `${assetLibsAddress}.glb`;
el.daeUrl = `${assetLibsAddress}.dae`;
el.objUrl = `${assetLibsAddress}.obj`;
el.image = `${assetLibsAddress}.png`;
el.solidType = "active";
return el;
});
return Result.ok(model);
}
);
// );
});
}

View file

@ -2,6 +2,7 @@ import { CrudController } from "../../core/controllers/crud_controller";
import { SearchManyDataBaseModelUseCase } from "../../core/usecases/search_many_database_model_usecase"; import { SearchManyDataBaseModelUseCase } from "../../core/usecases/search_many_database_model_usecase";
import { CreateNewProjectInstanceScenario, ProjectValidationModel } from "./domain/create_new_project_scenario"; import { CreateNewProjectInstanceScenario, ProjectValidationModel } from "./domain/create_new_project_scenario";
import { GetActiveProjectIdScenario } from "./domain/get_active_project_id_scenario"; import { GetActiveProjectIdScenario } from "./domain/get_active_project_id_scenario";
import { RobossemblerAssetsLocaleMapperScenario } from "./domain/robossembler_assets_absolute_path_mapper_scenario";
import { RobossemblerAssetsNetworkMapperScenario } from "./domain/robossembler_assets_network_mapper_scenario"; import { RobossemblerAssetsNetworkMapperScenario } from "./domain/robossembler_assets_network_mapper_scenario";
import { SetActiveProjectScenario } from "./domain/set_active_project_use_scenario"; import { SetActiveProjectScenario } from "./domain/set_active_project_use_scenario";
import { UploadCadFileToProjectScenario } from "./domain/upload_file_to_to_project_scenario"; import { UploadCadFileToProjectScenario } from "./domain/upload_file_to_to_project_scenario";
@ -39,11 +40,12 @@ export class ProjectsPresentation extends CrudController<ProjectValidationModel,
subUrl: "assets", subUrl: "assets",
fn: new RobossemblerAssetsNetworkMapperScenario(), fn: new RobossemblerAssetsNetworkMapperScenario(),
}); });
// this.subRoutes.push({ this.subRoutes.push({
// method: "POST", method: "GET",
// subUrl: "upload/env", subUrl: "local/assets",
// fn: new UploadNewEnvScenario(), fn: new RobossemblerAssetsLocaleMapperScenario(),
// }); });
this.router.post("/projects/upload/env", async (req, res) => { this.router.post("/projects/upload/env", async (req, res) => {
try { try {
} catch (error) {} } catch (error) {}

View file

@ -132,6 +132,7 @@ export class CoreHttpRepository extends HttpRepository {
getAssetsActiveProject = async (): Promise<Result<HttpError, Parts[]>> => { getAssetsActiveProject = async (): Promise<Result<HttpError, Parts[]>> => {
return this._jsonRequest<Parts[]>(HttpMethod.GET, "/projects/assets"); return this._jsonRequest<Parts[]>(HttpMethod.GET, "/projects/assets");
}; };
getSceneAsset = (id: string) => getSceneAsset = (id: string) =>
this._jsonToClassInstanceRequest(HttpMethod.GET, `/scenes/by_id?id=${id}`, SceneAsset) as Promise< this._jsonToClassInstanceRequest(HttpMethod.GET, `/scenes/by_id?id=${id}`, SceneAsset) as Promise<
Result<HttpError, SceneAsset> Result<HttpError, SceneAsset>

View file

@ -23,7 +23,7 @@ export class SelectDetailStore extends FormState<SelectDetailViewModel, any> {
return false; return false;
}; };
init = async () => { init = async () => {
await this.mapOk("parts", this.dataSetRepository.getAssetsActiveProject()); await this.mapOk("parts", this.dataSetRepository.getLocalParts());
}; };
updateCheckbox(el: Parts): void { updateCheckbox(el: Parts): void {
el.isSelect = true; el.isSelect = true;

View file

@ -1,5 +1,6 @@
import { Result } from "../../core/helper/result"; import { Result } from "../../core/helper/result";
import { HttpError, HttpMethod, CoreHttpRepository } from "../../core/repository/core_http_repository"; import { HttpError, HttpMethod, CoreHttpRepository } from "../../core/repository/core_http_repository";
import { Parts } from "../details/details_http_repository";
import { DataSetModel, Dataset, IDatasetModel } from "./dataset_model"; import { DataSetModel, Dataset, IDatasetModel } from "./dataset_model";
export class DataSetHttpRepository extends CoreHttpRepository { export class DataSetHttpRepository extends CoreHttpRepository {
@ -13,4 +14,5 @@ export class DataSetHttpRepository extends CoreHttpRepository {
execDatasetProcess = async (id: string) => this._jsonRequest(HttpMethod.POST, `${this.featureApi}/exec?id=${id}`); execDatasetProcess = async (id: string) => this._jsonRequest(HttpMethod.POST, `${this.featureApi}/exec?id=${id}`);
isRunningProcess = async () => this._jsonRequest(HttpMethod.GET, `${this.featureApi}/is/running`); isRunningProcess = async () => this._jsonRequest(HttpMethod.GET, `${this.featureApi}/is/running`);
deleteProcess = async () => this._jsonRequest(HttpMethod.GET, `${this.featureApi}/delete/process`); deleteProcess = async () => this._jsonRequest(HttpMethod.GET, `${this.featureApi}/delete/process`);
getLocalParts = () => this._jsonRequest<Parts>(HttpMethod.GET,`/projects/local/assets`)
} }