73 lines
1.4 KiB
JavaScript
73 lines
1.4 KiB
JavaScript
const folder = require('../models/folder.model');
|
|
|
|
exports.getFoldersByHierarchy = async (req, res) => {
|
|
let folders = await folder.findAll();
|
|
|
|
for (let i = 0; i < folders.length; i++) {
|
|
folders[i].dataValues.subFolders = []
|
|
}
|
|
|
|
console.log(folders);
|
|
|
|
let toRemove = []
|
|
for (let i = (folders.length - 1); i >= 0; i--) {
|
|
|
|
parent = findByValue(folders, "folderId", folders[i].folderParent);
|
|
if (parent != null) {
|
|
console.log("parent: ", parent);
|
|
parent.dataValues.subFolders.push(folders[i]);
|
|
|
|
toRemove.push(i);
|
|
}
|
|
}
|
|
|
|
console.log(toRemove)
|
|
for (el of toRemove) {
|
|
folders.splice(el, 1);
|
|
}
|
|
|
|
console.log(folders);
|
|
|
|
res.json(folders);
|
|
}
|
|
|
|
exports.getFolders = async (req, res) => {
|
|
const folders = await folder.findAll();
|
|
res.json(folders);
|
|
}
|
|
|
|
exports.getFoldersById = async (req, res) => {
|
|
|
|
const id = req.params.id
|
|
|
|
const folders = await folder.findAll({
|
|
where: {
|
|
folderId: id,
|
|
}},
|
|
);
|
|
res.json(folders);
|
|
}
|
|
|
|
exports.createFolder = async (req, res) => {
|
|
const josnFolder = req.body;
|
|
|
|
await folder.create({
|
|
folderName: josnFolder.name,
|
|
folderParent: josnFolder.parent,
|
|
});
|
|
|
|
res.status(201).json("ok");
|
|
}
|
|
|
|
function findByValue(list, key, value) {
|
|
|
|
for (el of list) {
|
|
if (el[key] == value) {
|
|
return el;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|