define paths
This commit is contained in:
Vendored
+9
-15
@@ -496,8 +496,7 @@
|
||||
board,
|
||||
name
|
||||
);
|
||||
file.contentVersions.add(taskFileContent);
|
||||
this.fileModel.addOrUpdateFile(file);
|
||||
this.saveTask(file, taskFileContent);
|
||||
};
|
||||
saveTask = (file, newTaskFileContent) => {
|
||||
file.contentVersions.add(newTaskFileContent);
|
||||
@@ -550,18 +549,19 @@
|
||||
handleStringifiedFile = (stringifiedFile) => {
|
||||
const file = parseValidObject(stringifiedFile, FileReference);
|
||||
if (file == null) return;
|
||||
this.handleFile(file);
|
||||
this.handleFileAndClearContents(file);
|
||||
};
|
||||
handleFile = (file) => {
|
||||
handleFileAndClearContents = (file) => {
|
||||
for (const fileContent of file.contentVersions) {
|
||||
this.storeFileContent(file, fileContent);
|
||||
this.taskModel.handleTaskFileContent(file, fileContent);
|
||||
file.contentVersions.delete(fileContent);
|
||||
}
|
||||
};
|
||||
// methods
|
||||
addOrUpdateFile = (file) => {
|
||||
this.handleFile(file);
|
||||
this.chatModel.sendMessage("", file);
|
||||
this.handleFileAndClearContents(file);
|
||||
};
|
||||
// storage
|
||||
storeFileContent = (file, fileContent) => {
|
||||
@@ -578,10 +578,6 @@
|
||||
listFileIds = () => {
|
||||
return this.storageModel.list(this.getBasePath());
|
||||
};
|
||||
listFileContents = (file) => {
|
||||
const filePath = this.getFilePath(file.id);
|
||||
return this.storageModel.list(filePath);
|
||||
};
|
||||
getFile = (fileId) => {
|
||||
const filePath = this.getFilePath(fileId);
|
||||
const fileOrNull = this.storageModel.readStringifiable(
|
||||
@@ -590,6 +586,10 @@
|
||||
);
|
||||
return fileOrNull;
|
||||
};
|
||||
listFileContents = (file) => {
|
||||
const filePath = this.getFilePath(file.id);
|
||||
return this.storageModel.list(filePath);
|
||||
};
|
||||
getLatestFileContentName = (fileContentNames) => {
|
||||
return fileContentNames[fileContentNames.length - 1];
|
||||
};
|
||||
@@ -2567,10 +2567,4 @@
|
||||
ConnectionModal(connectionViewModel),
|
||||
StorageModal(storageViewModel)
|
||||
);
|
||||
console.log(
|
||||
checkMatchesObjectStructure(
|
||||
{ a: 1, c: /* @__PURE__ */ new Set() },
|
||||
{ a: 2, c: /* @__PURE__ */ new Set(["bla"]) }
|
||||
)
|
||||
);
|
||||
})();
|
||||
|
||||
@@ -26,6 +26,12 @@ export default class FileModel {
|
||||
);
|
||||
};
|
||||
|
||||
getModelDirectoryPath = (
|
||||
modelName: keyof typeof modelDirectories
|
||||
): string[] => {
|
||||
return [...this.getBasePath(), modelName];
|
||||
};
|
||||
|
||||
getFilePath = (fileId: string): string[] => {
|
||||
return [...this.getBasePath(), fileId];
|
||||
};
|
||||
@@ -140,6 +146,11 @@ export default class FileModel {
|
||||
};
|
||||
}
|
||||
|
||||
// paths
|
||||
export const modelDirectories = {
|
||||
taskModel: "tasks",
|
||||
};
|
||||
|
||||
// types
|
||||
export interface File extends ValidObject {
|
||||
id: string;
|
||||
|
||||
@@ -13,6 +13,31 @@ export default class TaskModel {
|
||||
chatModel: ChatModel;
|
||||
fileModel: FileModel;
|
||||
|
||||
// paths
|
||||
getBasePath = (): string[] => {
|
||||
return this.fileModel.getModelDirectoryPath("taskModel");
|
||||
};
|
||||
|
||||
getLocationDirPath = (): string[] => {
|
||||
return [...this.getBasePath(), subDirectories.locations];
|
||||
};
|
||||
|
||||
getTaskLocationPath = (fileId: string): string[] => {
|
||||
return [...this.getLocationDirPath(), fileId];
|
||||
};
|
||||
|
||||
getBoardDirPath = (): string[] => {
|
||||
return [...this.getBasePath(), subDirectories.boards];
|
||||
};
|
||||
|
||||
getBoardPath = (boardName: string): string[] => {
|
||||
return [...this.getBoardDirPath(), boardName];
|
||||
};
|
||||
|
||||
getTaskPath = (boardName: string, fileId: string): string[] => {
|
||||
return [...this.getBoardPath(boardName), fileId];
|
||||
};
|
||||
|
||||
// handler
|
||||
handleTaskFileContent = (
|
||||
file: File,
|
||||
@@ -42,6 +67,12 @@ export default class TaskModel {
|
||||
this.fileModel.addOrUpdateFile(file);
|
||||
};
|
||||
|
||||
// locations
|
||||
updateTaskLocation = (
|
||||
file: File,
|
||||
taskFileContent: TaskFileContent
|
||||
): void => {};
|
||||
|
||||
// init
|
||||
constructor(chatModel: ChatModel, fileModel: FileModel) {
|
||||
this.chatModel = chatModel;
|
||||
@@ -64,6 +95,11 @@ export default class TaskModel {
|
||||
};
|
||||
}
|
||||
|
||||
export const subDirectories = {
|
||||
locations: "locations",
|
||||
boards: "boards",
|
||||
};
|
||||
|
||||
// types
|
||||
export interface TaskFileContent extends FileContent<"task"> {
|
||||
name: string;
|
||||
|
||||
@@ -184,11 +184,11 @@ export const filePaths = {
|
||||
info: (id: string) => [...filePaths.chat.chatBase(id), "info"],
|
||||
color: (id: string) => [...filePaths.chat.chatBase(id), "color"],
|
||||
messages: (id: string) => [...filePaths.chat.chatBase(id), "messages"],
|
||||
files: (id: string) => [...filePaths.chat.chatBase(id), "files"],
|
||||
lastUsedPage: (id: string) => [
|
||||
...filePaths.chat.chatBase(id),
|
||||
"last-used-page",
|
||||
],
|
||||
files: (id: string) => [...filePaths.chat.chatBase(id), "files"],
|
||||
},
|
||||
|
||||
settingsModel: {
|
||||
|
||||
Reference in New Issue
Block a user