* Recording document views * Add 'views' to document response * Basic displaying of document views, probably want it more sublte than this? But hey, lets get it in there * Bigly improves. RESTful > RPC * Display of who's viewed doc * Add Popover, add Scrollable, move views store * Working server tests 💁 * Document Stars (#81) * Added: Starred documents * UI is dumb but functionality works * Star now displayed inline in title * Optimistic rendering * Documents Endpoints (#85) * More seeds, documents.list endpoint * Upgrade deprecated middleware * document.viewers, specs * Add documents.starred Add request specs for star / unstar endpoints * Basic /starred page * Remove comment * Fixed double layout
36 lines
690 B
JavaScript
36 lines
690 B
JavaScript
// @flow
|
|
import { DataTypes, sequelize } from '../sequelize';
|
|
|
|
const View = sequelize.define(
|
|
'view',
|
|
{
|
|
id: {
|
|
type: DataTypes.UUID,
|
|
defaultValue: DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
count: {
|
|
type: DataTypes.INTEGER,
|
|
defaultValue: 1,
|
|
},
|
|
},
|
|
{
|
|
classMethods: {
|
|
associate: models => {
|
|
View.belongsTo(models.Document);
|
|
View.belongsTo(models.User);
|
|
},
|
|
increment: async where => {
|
|
const [model, created] = await View.findOrCreate({ where });
|
|
if (!created) {
|
|
model.count += 1;
|
|
model.save();
|
|
}
|
|
return model;
|
|
},
|
|
},
|
|
}
|
|
);
|
|
|
|
export default View;
|