Completed ResetRequest and Token models
This commit is contained in:
parent
1c8a64c0c0
commit
baad13cf17
3 changed files with 66 additions and 21 deletions
21
server/models/ResetRequest.js
Normal file
21
server/models/ResetRequest.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
const { v4: uuidv4 } = require('uuid');
|
||||
const { DataTypes, Model } = require('sequelize');
|
||||
|
||||
class ResetRequest extends Model {
|
||||
static initModel(sequelize) {
|
||||
ResetRequest.init(
|
||||
{
|
||||
reqID: {
|
||||
type: DataTypes.STRING,
|
||||
primaryKey: true,
|
||||
defaultValue: uuidv4,
|
||||
},
|
||||
},
|
||||
{ sequelize }
|
||||
);
|
||||
|
||||
return ResetRequest;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ResetRequest;
|
||||
|
|
@ -10,6 +10,10 @@ class Token extends Model {
|
|||
primaryKey: true,
|
||||
defaultValue: uuidv4,
|
||||
},
|
||||
expires: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: true,
|
||||
},
|
||||
},
|
||||
{ sequelize }
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,51 +2,71 @@ const User = require('./User');
|
|||
const Group = require('./Group');
|
||||
const Organization = require('./Organization');
|
||||
const Token = require('./Token');
|
||||
const ResetRequest = require('./ResetRequest');
|
||||
|
||||
async function initModels(sequelize) {
|
||||
User.initModel(sequelize);
|
||||
Organization.initModel(sequelize);
|
||||
Group.initModel(sequelize);
|
||||
Token.initModel(sequelize);
|
||||
|
||||
User.hasMany(Group, { foreignKey: 'ownerID', onDelete: 'CASCADE' });
|
||||
Group.belongsTo(User, { foreignKey: 'ownerID' });
|
||||
|
||||
User.hasOne(Organization, { foreignKey: 'ownerID', onDelete: 'CASCADE' });
|
||||
Organization.hasOne(Organization, { foreignKey: 'ownerID' });
|
||||
|
||||
Organization.hasMany(Group, { foreignKey: 'ownerID', onDelete: 'CASCADE' });
|
||||
|
||||
Group.belongsTo(Organization, { foreignKey: 'orgOwnerID' });
|
||||
ResetRequest.initModel(sequelize);
|
||||
|
||||
User.hasOne(Token, { foreignKey: 'userID', onDelete: 'CASCADE' });
|
||||
Token.belongsTo(User, { foreignKey: 'userID' });
|
||||
|
||||
User.belongsToMany(Organization, {
|
||||
through: 'orgUsers',
|
||||
foreignKey: 'userID',
|
||||
User.hasOne(ResetRequest, { foreignKey: 'userID', onDelete: 'CASCADE' });
|
||||
User.hasMany(Group, {
|
||||
as: 'groupOwner',
|
||||
foreignKey: 'ownerID',
|
||||
onDelete: 'CASCADE',
|
||||
});
|
||||
Organization.belongsToMany(User, {
|
||||
through: 'orgUsers',
|
||||
uniqueKey: 'orgID',
|
||||
});
|
||||
|
||||
User.belongsToMany(Group, {
|
||||
as: 'memberGroups',
|
||||
through: 'groupUsers',
|
||||
foreignKey: 'userID',
|
||||
});
|
||||
User.hasOne(Organization, {
|
||||
as: 'orgOwner',
|
||||
foreignKey: 'ownerID',
|
||||
onDelete: 'CASCADE',
|
||||
});
|
||||
User.belongsToMany(Organization, {
|
||||
as: 'memberOrgs',
|
||||
through: 'orgUsers',
|
||||
foreignKey: 'userID',
|
||||
});
|
||||
|
||||
Group.belongsTo(User, { as: 'userOwner', foreignKey: 'ownerID' });
|
||||
Group.belongsTo(Organization, {
|
||||
as: 'orgOwner',
|
||||
foreignKey: 'ownerID',
|
||||
});
|
||||
Group.belongsToMany(User, {
|
||||
through: 'groupUsers',
|
||||
foreignKey: 'groupID',
|
||||
});
|
||||
|
||||
Organization.belongsTo(User, { foreignKey: 'ownerID' });
|
||||
|
||||
Organization.hasMany(Group, {
|
||||
as: 'groupOwner',
|
||||
foreignKey: 'ownerID',
|
||||
onDelete: 'CASCADE',
|
||||
});
|
||||
|
||||
Organization.belongsToMany(User, {
|
||||
through: 'orgUsers',
|
||||
uniqueKey: 'orgID',
|
||||
});
|
||||
|
||||
Token.belongsTo(User, { foreignKey: 'userID' });
|
||||
ResetRequest.belongsTo(User, { foreignKey: 'userID' });
|
||||
|
||||
if (process.env.NODE_ENV == 'development') {
|
||||
await sequelize.sync({ logging: false, force: true });
|
||||
} else {
|
||||
await sequelize.sync({ logging: false, alter: true });
|
||||
}
|
||||
|
||||
return { User, Group, Organization, Token };
|
||||
return { User, Group, Organization, Token, ResetRequest };
|
||||
}
|
||||
|
||||
module.exports = { User, Organization, Group, Token, initModels };
|
||||
module.exports = { User, Organization, Group, Token, ResetRequest, initModels };
|
||||
|
|
|
|||
Reference in a new issue