Backend fixes

This commit is contained in:
Jori Lallo
2016-07-06 21:36:50 -07:00
parent b5012c43a9
commit 0de27e55d6
3 changed files with 20 additions and 15 deletions

View File

@ -139,20 +139,29 @@ router.post('documents.delete', auth(), async (ctx) => {
ctx.assertPresent(id, 'id is required');
const user = ctx.state.user;
let document = await Document.findOne({
const document = await Document.findOne({
where: {
id: id,
teamId: user.teamId,
},
});
const atlas = await Atlas.findById(document.atlasId);
if (!document) throw httpErrors.BadRequest();
// TODO: Don't allow to destroy root docs
// TODO: handle sub documents
// Don't allow deletion of root docs
if (atlas.type === 'atlas' && !document.parentDocumentId) {
throw httpErrors.BadRequest('Unable to delete atlas\'s root document');
}
try {
await document.destroy();
if (atlas.type === 'atlas') {
await atlas.updateNavigationTree();
}
} catch (e) {
throw httpErrors.BadRequest('Error while deleting');
};

View File

@ -8,10 +8,6 @@ module.exports = {
{
type: Sequelize.UUID,
allowNull: true,
references: {
model: "documents",
key: "id",
}
}
);
},

View File

@ -96,15 +96,15 @@ const Atlas = sequelize.define('atlas', {
atlasId: this.id,
},
});
if (!childDocument) throw new Error;
childNodes.push({
id: childDocument.id,
title: childDocument.title,
url: childDocument.getUrl(),
children: await getIdsForChildren(child.children),
})
nodeIds.push(child.id);
if (childDocument) {
childNodes.push({
id: childDocument.id,
title: childDocument.title,
url: childDocument.getUrl(),
children: await getIdsForChildren(child.children),
})
nodeIds.push(child.id);
}
}
return childNodes;
};