Skip to content
Snippets Groups Projects
Commit 8d06a19f authored by Hugo SUBTIL's avatar Hugo SUBTIL
Browse files

feat: add startup script for test users

parent 10ace736
Branches
Tags
3 merge requests!38Recette,!37Dev,!35feat: add startup script for test users
// eslint-disable-next-line @typescript-eslint/no-var-requires
const mongoose = require('mongoose');
module.exports = {
data: [
{
pendingStructuresLink: [],
structuresLink: [
mongoose.Types.ObjectId('60059cf7dfb2ac4b00733db0'),
mongoose.Types.ObjectId('6001a48e16b08100062e4180'),
],
phone: '06 06 06 06 06',
newEmail: null,
changeEmailToken: null,
role: 1,
resetPasswordToken: null,
surname: 'ADMIN',
name: 'Admin',
validationToken: null,
emailVerified: true,
email: 'admin@admin.com',
structureOutdatedMailSent: [],
},
{
structureOutdatedMailSent: [],
pendingStructuresLink: [],
structuresLink: [mongoose.Types.ObjectId('6001a48e16b08100062e4180')],
newEmail: null,
changeEmailToken: null,
role: 0,
resetPasswordToken: null,
validationToken: null,
emailVerified: true,
email: 'paula.dubois@mii.com',
name: 'Paula',
surname: 'DUBOIS',
phone: '06 07 08 09 10',
},
{
structureOutdatedMailSent: [],
pendingStructuresLink: [],
structuresLink: [mongoose.Types.ObjectId('6001a48e16b08100062e4180')],
newEmail: null,
changeEmailToken: null,
role: 0,
resetPasswordToken: null,
validationToken: null,
emailVerified: true,
email: 'jp@test.com',
name: 'Jean-Paul',
surname: 'DESCHAMPS',
phone: '06 11 11 11 11',
},
],
};
// eslint-disable-next-line @typescript-eslint/no-var-requires
const mongoose = require('mongoose');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const userData = require('./data/users');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const bcrypt = require('bcrypt');
// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config({ path: '../.env' });
/* connect to the database */
const param =
'mongodb://' +
process.env.MONGO_NON_ROOT_USERNAME +
':' +
process.env.MONGO_NON_ROOT_PASSWORD +
'@' +
process.env.MONGO_DB_HOST_AND_PORT +
'/ram';
mongoose.connect(param, { useNewUrlParser: true, useUnifiedTopology: true }).catch((error) => console.log(error));
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
function hashPassword() {
return bcrypt.hashSync(process.env.USER_PWD, process.env.SALT);
}
// define Schema
var usersSchema = mongoose.Schema({
name: String,
surname: String,
email: String,
emailVerified: Boolean,
validationToken: String,
resetPasswordToken: String,
role: Number,
changeEmailToken: String,
newEmail: String,
structuresLink: [],
structureOutdatedMailSent: [],
pendingStructuresLink: [],
password: String,
phone: String,
});
// compile schema to model
var User = mongoose.model('Users', usersSchema);
/* drop users collections */
mongoose.connection.dropCollection('users', function (err) {
/* show messages */
if (err) {
if (err.code === 26) console.log('-- Users collection does not exists --');
else throw err;
} else console.log('-- Users collection dropped --');
// Init passsword
console.log('-- Users password encryption based on .env --');
userData.data.forEach((user) => {
user.password = hashPassword();
});
// save model to database
User.create(userData.data, function (err, user) {
if (err) return console.error(err);
console.log('-- Users collection initialized --');
process.exit(1);
});
});
......@@ -16,3 +16,4 @@ MAIL_TOKEN=<API token>
APTIC_TOKEN=<APTIC API TOKEN>
GHOST_PORT=<ghost port>
GHOST_DB_PASSWORD=<ghost db password>
USER_PWD=<test user password>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment