2016-06-21 05:44:02 +08:00
|
|
|
const crypto = require('crypto');
|
|
|
|
|
2016-06-19 18:02:32 +08:00
|
|
|
module.exports = (sequelize, Sequelize) => {
|
|
|
|
const Message = sequelize.define('Message', {
|
|
|
|
subject: Sequelize.STRING,
|
|
|
|
snippet: Sequelize.STRING,
|
|
|
|
body: Sequelize.STRING,
|
2016-06-21 05:57:54 +08:00
|
|
|
hash: Sequelize.STRING,
|
2016-06-19 18:02:32 +08:00
|
|
|
headers: Sequelize.STRING,
|
|
|
|
date: Sequelize.DATE,
|
|
|
|
unread: Sequelize.BOOLEAN,
|
|
|
|
starred: Sequelize.BOOLEAN,
|
|
|
|
}, {
|
|
|
|
classMethods: {
|
|
|
|
associate: ({MessageUID}) => {
|
|
|
|
// is this really a good idea?
|
|
|
|
// Message.hasMany(Contact, {as: 'from'})
|
|
|
|
Message.hasMany(MessageUID, {as: 'uids'})
|
|
|
|
},
|
2016-06-21 05:44:02 +08:00
|
|
|
hashForHeaders: (headers) => {
|
|
|
|
return crypto.createHash('sha256').update(headers, 'utf8').digest('hex');
|
|
|
|
},
|
2016-06-19 18:02:32 +08:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
return Message;
|
|
|
|
};
|