Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module.exports = function(sequelize, DataTypes) {
- var user = sequelize.define('users', {
- email: {type: Sequelize.STRING, field: 'email'},
- password: Sequelize.STRING,
- name: Sequelize.STRING,
- company_id: Sequelize.INTEGER,
- rg: Sequelize.STRING,
- cpf: Sequelize.STRING,
- birth_date: Sequelize.STRING,
- sex: Sequelize.STRING,
- address: Sequelize.STRING,
- number: Sequelize.STRING,
- complement: Sequelize.STRING,
- neighborhood: Sequelize.STRING,
- city: Sequelize.STRING,
- cep: Sequelize.STRING,
- uf: Sequelize.STRING,
- obs: Sequelize.STRING,
- status_id: Sequelize.INTEGER,
- model_id: Sequelize.INTEGER,
- model: Sequelize.STRING,
- deleted_at: Sequelize.STRING,
- created_at: Sequelize.STRING,
- updated_at: Sequelize.STRING,
- }, {timestamps:false, attributes: { exclude : [ 'password' ]},
- classMethods: {
- associate: function(models) {
- user.belongsToMany(models.groups, {
- through: {
- model: models.user_groups
- }, foreignKey:'user_id', as: 'groups'}),
- user.belongsToMany(models.permissions, {
- through: {
- model: models.user_permissions
- }, foreignKey:'user_id', as: 'permissions'})
- },
- morphTo: function(models, model_id, model){
- if(model == 'medics'){
- models.medics.findById(model_id).then(function(results) {
- return results;
- });
- }else if(model == 'employees'){
- models.employees.findById(model_id).then(function(results) {
- return results;
- });
- }
- }
- }});
- return user;
- }
- models.users.findById(req.params.id).then(function(results) {
- if(results)
- console.log(models.users.morphTo(models, results.dataValues.model_id, results.dataValues.model));
- else
- res.status(204).send();
- });
- Executing (default): SELECT `id`, `crm` FROM `medics` AS `medics` WHERE `medics`.`id` = 1
- models.users.findById(req.params.id).then(function(results) {
- if(results) {
- models.users.morphTo(models, results.dataValues.model_id, results.dataValues.model).then(function(result) {
- console.log('This is your result:', result);
- });
- } else {
- res.status(204).send();
- }
- });
- morphTo: function(models, model_id, model){
- if(model == 'medics'){
- return models.medics.findById(model_id);
- }else if(model == 'employees'){
- return models.employees.findById(model_id);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement