adding socket listner dataset screen

This commit is contained in:
IDONTSUDO 2024-04-16 15:20:24 +03:00
parent 776b6e540e
commit a2066ce5cd
16 changed files with 127 additions and 50 deletions

View file

@ -2,9 +2,10 @@ import makeAutoObservable from "mobx-store-inheritance";
import { DataSetRepository } from "./dataset_repository";
import { UiErrorState } from "../../core/store/base_store";
import { HttpError } from "../../core/repository/http_repository";
import { Asset, Assets, DataSetModel, IDatasetModel } from "./dataset_model";
import { Asset, Assets, DataSetModel, IDatasetModel, ProcessStatus } from "./dataset_model";
import { message } from "antd";
import { UUID } from "../all_projects/data/project_repository";
import { SocketRepository, socketRepository } from "../../core/repository/socket_repository";
export enum DrawersDataset {
NewDataset = "Новый датасет",
@ -21,9 +22,10 @@ export class DataSetStore extends UiErrorState<HttpError> {
activeProject: UUID;
dataSetModel = DataSetModel.empty();
drawers: Drawer[];
socketRepository: SocketRepository;
constructor() {
super();
this.socketRepository = socketRepository;
this.dataSetRepository = new DataSetRepository();
this.drawers = Object.entries(DrawersDataset).map((k, v) => {
return {
@ -32,13 +34,30 @@ export class DataSetStore extends UiErrorState<HttpError> {
};
});
makeAutoObservable(this);
socketRepository.on((e) => {
if (e.event === "realtime") {
if (e.payload !== undefined && e.payload.value !== undefined && e.payload.value.id !== undefined) {
this.updateDatasetStatus(String(e.payload.value.id), ProcessStatus.END);
}
if (e.payload !== undefined && e.payload.error !== undefined && e.payload.error.id !== undefined) {
this.updateDatasetStatus(String(e.payload.error.id), ProcessStatus.ERROR);
}
}
});
}
updateDatasetStatus(id: string, status: ProcessStatus) {
this.datasets = this.datasets?.map((el) => {
if (el._id.isEqual(id)) {
el.processStatus = status;
}
return el;
});
}
openEmptyCard() {
this.dataSetModel = DataSetModel.empty();
this.editDrawer(DrawersDataset.NewDataset, true);
}
setNewDatasetName(e: string): void {
this.dataSetModel.name = e;
}
@ -74,7 +93,6 @@ export class DataSetStore extends UiErrorState<HttpError> {
editDataset(id: string) {
this.dataSetModel = DataSetModel.fromIDatasetModel(this.datasets?.find((el) => el._id === id) as IDatasetModel);
console.log(this.dataSetModel.name);
this.editDrawer(DrawersDataset.NewDataset, true);
}
@ -93,6 +111,7 @@ export class DataSetStore extends UiErrorState<HttpError> {
async (s) => {
(await this.dataSetRepository.execDatasetProcess(id)).fold(
() => {
this.updateDatasetStatus(id,ProcessStatus.RUN)
message.success("Процесс запущен");
},
(e) => message.error(e.message)