reworked folder hierarchy fetch + adde folder creation
This commit is contained in:
@@ -1,18 +1,72 @@
|
|||||||
const folder = require('../models/folder.model');
|
const folder = require('../models/folder.model');
|
||||||
|
|
||||||
exports.getFoldersHierarchy = async (req, res) => {
|
exports.getFoldersByHierarchy = async (req, res) => {
|
||||||
const folders = await folder.findAll({
|
let folders = await folder.findAll();
|
||||||
where: {
|
|
||||||
folderParent: null,
|
for (let i = 0; i < folders.length; i++) {
|
||||||
},
|
folders[i].dataValues.subFolders = []
|
||||||
include: [
|
}
|
||||||
{
|
|
||||||
model: folder,
|
console.log(folders);
|
||||||
as: 'subFolders',
|
|
||||||
hierarchy: true,
|
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);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const {Sequelize, DataTypes} = require('sequelize');
|
|||||||
const db = require('../config/db')
|
const db = require('../config/db')
|
||||||
|
|
||||||
const folder = db.define('Folders', {
|
const folder = db.define('Folders', {
|
||||||
folderid: {
|
folderId: {
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
primaryKey: true,
|
primaryKey: true,
|
||||||
autoIncrement: true,
|
autoIncrement: true,
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ const router = express.Router();
|
|||||||
|
|
||||||
const folderController = require('../controller/folder.controller')
|
const folderController = require('../controller/folder.controller')
|
||||||
|
|
||||||
router.get('/folders', folderController.getFoldersHierarchy);
|
router.get('/folders', folderController.getFolders);
|
||||||
|
router.get('/folders/hierarchy', folderController.getFoldersByHierarchy);
|
||||||
|
router.get('/folders/:id', folderController.getFoldersById);
|
||||||
|
|
||||||
|
router.post('/folders', folderController.createFolder);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
Reference in New Issue
Block a user