Sequelize Model Comments
Comments support for your sequelize models. Record the user who created the comment. When used along with sequelize-paper-trail, annotates revisions with a user supplied comment.
Table of Contents
Installation
npm install --save sequelize-model-comments
Note: the current test suite is very limited in coverage.
Usage
Sequelize Model Comments assumes that you have already set up your Sequelize connection, for example, like this:
var Sequelize = ;var sequelize = 'database' 'username' 'password';
then adding Sequelize Model Comments is as easy as:
var ModelComments = ;ModelComments;
which loads the Model Comments library, and the defineModels()
method sets up a Comments
table.
Note: If you pass userModel
option to init
in order to enable user tracking, userModel
should be setup before defineModels()
is called.
Then for each model that you want to keep a model comments you simply add:
Model;
Example
var Sequelize = ;var sequelize = 'database' 'username' 'password'; var ModelComments = ;ModelComments; var Post = sequelize; Post;
User Tracking
There are 2 steps to enable user tracking, ie, recording the user who created a comment.
- Enable user tracking by passing
userModel
option toinit
, with the name of the model which stores users in your application as the value.
var options = /* ... */ userModel: 'users';
- Pass the id of the user who is responsible for a database operation to
sequelize-model-comments
by sequelize options.
Post;
Options
Model Comments supports various options that can be passed into the initialization. The following are the default options:
Default options
// Default optionsvar options = commentModel: 'Comment' UUID: false underscored: false underscoredAttributes: false defaultAttributes: documentId: 'documentId' model: 'model' ;
Options documentation
Option | Type | Default Value | Description |
---|---|---|---|
[debug] | Boolean | false | Enables logging to the console. |
[commentModel] | String | 'Comment | Name of the model that keeps the comments. |
[UUID] | Boolean | false | The [commentModel] has id attribute of type UUID for postgresql. |
[underscored] | Boolean | false | The [commentModel] has 'createdAt' and 'updatedAt' attributes, by default, setting this option to true changes it to 'created_at' and 'updated_at'. |
[underscoredAttributes] | Boolean | false | The [commentModel] has a [defaultAttribute] 'documentId' by default, setting this option to true changes it to 'document_id'. |
[defaultAttributes] | Object | { documentId: 'documentId', model: 'model' } | |
[userModel] | String | Name of the model that stores users in your. |
Support
Please use:
- GitHub's issue tracker
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Author
© Lijo Antony – @lijo_ – lijozom@gmail.com
Distributed under the MIT license. See LICENSE
for more information.
https://github.com/lijoantony/sequelize-model-comments
Thanks
This project was inspired by and derived from: