This commit is contained in:
Jori Lallo
2016-08-18 14:42:53 -07:00
parent 3089ac7bc8
commit e3e5ead9e0
5 changed files with 35 additions and 11 deletions

View File

@ -8,7 +8,7 @@
"build:webpack": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --progress",
"build:analyze": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --json | webpack-bundle-size-analyzer",
"build": "npm run clean && npm run build:webpack",
"start": "cross-env NODE_ENV=development DEBUG=sql,cache,presenters ./node_modules/.bin/nodemon --watch server index.js",
"start": "cross-env NODE_ENV=development DEBUG=cache,presenters ./node_modules/.bin/nodemon --watch server index.js",
"lint": "eslint frontend",
"deploy": "git push heroku master",
"heroku-postbuild": "npm run build && npm run sequelize db:migrate",

View File

@ -4,7 +4,7 @@ import {
sequelize,
} from '../sequelize';
const URL_REGEX = /^[a-zA-Z0-9-]*-([a-zA-Z0-9]{15})$/;
const URL_REGEX = /^[a-zA-Z0-9-]*-([a-zA-Z0-9]{10,15})$/;
import auth from './authentication';
// import pagination from './middlewares/pagination';
@ -22,11 +22,16 @@ const getDocumentForId = async (id) => {
},
});
} else {
try {
document = await Document.findOne({
where: {
id,
},
});
} catch (e) {
// Invalid UUID
throw httpErrors.NotFound();
}
}
return document;
};

View File

@ -0,0 +1,11 @@
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
queryInterface.addIndex('revisions', ['documentId']);
},
down: function (queryInterface, Sequelize) {
queryInterface.removeIndex('revisions', ['documentId']);
},
};

View File

@ -142,7 +142,7 @@ const Atlas = sequelize.define('atlas', {
return newTree;
},
async addNodeToNavigationTree(document) {
addNodeToNavigationTree(document) {
const newNode = {
id: document.id,
title: document.title,
@ -163,6 +163,7 @@ const Atlas = sequelize.define('atlas', {
};
this.navigationTree = insertNode(this.navigationTree);
return this.navigationTree;
},
async deleteDocument(document) {
const deleteNodeAndDocument = async (node, documentId, shouldDelete = false) => {

View File

@ -35,9 +35,16 @@ const documentBeforeSave = async (doc) => {
doc.revisionCount = doc.revisionCount + 1;
// Collaborators
const ids = await Revision.findAll({
let ids = [];
// Only get previous user IDs if the document already exists
if (doc.id) {
ids = await Revision.findAll({
attributes: [[DataTypes.literal('DISTINCT "userId"'), 'userId']],
where: {
documentId: doc.id,
},
}).map(rev => rev.userId);
}
// We'll add the current user as revision hasn't been generated yet
ids.push(doc.lastModifiedById);
doc.collaboratorIds = _.uniq(ids);