merlyn/frontend/src/models/document.js
Sean Hatfield 4f268dfeb6
[FEAT] Document picker folders for organization (#902)
* implement alternating color rows for file picker

* implement alternating colors for workspace directory

* remove unneeded props/variables

* remove unused border classes

* WIP new folder UI

* remove unneeded expanded prop from filerow component

* folder creation UI and files object manipulation WIP

* folder creation & moving files complete

* add developer API support for creating folders and moving files

* update alternating row css for file picker

* remove unneeded props from merge

* normalize paths for folders
priority to custom docs folder
silently fail on duplicate folders

* update folder icon to custom svg

* linting and move FolderIcon to JSX

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2024-03-20 16:10:30 -07:00

39 lines
1.0 KiB
JavaScript

import { API_BASE } from "@/utils/constants";
import { baseHeaders } from "@/utils/request";
const Document = {
createFolder: async (name) => {
return await fetch(`${API_BASE}/document/create-folder`, {
method: "POST",
headers: baseHeaders(),
body: JSON.stringify({ name }),
})
.then((res) => res.json())
.catch((e) => {
console.error(e);
return { success: false, error: e.message };
});
},
moveToFolder: async (files, folderName) => {
const data = {
files: files.map((file) => ({
from: file.folderName ? `${file.folderName}/${file.name}` : file.name,
to: `${folderName}/${file.name}`,
})),
};
return await fetch(`${API_BASE}/document/move-files`, {
method: "POST",
headers: baseHeaders(),
body: JSON.stringify(data),
})
.then((res) => res.json())
.catch((e) => {
console.error(e);
return { success: false, error: e.message };
});
},
};
export default Document;