sequelize-model-comments

0.0.4 • Public • Published

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.

node-version npm-version David David

GitHub release GitHub tag GitHub commits npm-downloads

license

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 = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');

then adding Sequelize Model Comments is as easy as:

var ModelComments = require('sequelize-model-comments').init(sequelize, options);
ModelComments.defineModels({});

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.enableModelComments();

Example

var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');
 
var ModelComments = require('sequelize-model-comments').init(sequelize, options || {});
ModelComments.defineModels();
 
var Post = sequelize.define('Post', {
  title: Sequelize.STRING,
  content: Sequelize.STRING,
});
 
Post.enableModelComments();

User Tracking

There are 2 steps to enable user tracking, ie, recording the user who created a comment.

  1. Enable user tracking by passing userModel option to init, with the name of the model which stores users in your application as the value.
var options = {
  /* ... */
  userModel: 'users',
};
  1. Pass the id of the user who is responsible for a database operation to sequelize-model-comments by sequelize options.
Post.update({
  /* ... */
  comment: 'This attribute will be used to create a comment which annotates the revision'
}, {
  userId: user.id
}).then(() {
  /* ... */
});

Options

Model Comments supports various options that can be passed into the initialization. The following are the default options:

Default options

// Default options
var 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:

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. 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:

Links

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.4
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.0.4
    2
  • 0.0.3
    2
  • 0.0.2
    0
  • 0.0.1
    0

Package Sidebar

Install

npm i sequelize-model-comments

Weekly Downloads

4

Version

0.0.4

License

MIT

Unpacked Size

21.9 kB

Total Files

15

Last publish

Collaborators

  • lijoantony