-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
Copy pathsetup.js
78 lines (60 loc) · 2.13 KB
/
setup.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require('dotenv').config({ path: '.env' });
require('dotenv').config({ path: '.env.local' });
const { globSync } = require('glob');
const fs = require('fs');
const { generate: uniqueId } = require('shortid');
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE);
async function setupApp() {
try {
const Admin = require('../models/coreModels/Admin');
const AdminPassword = require('../models/coreModels/AdminPassword');
const newAdminPassword = new AdminPassword();
const salt = uniqueId();
const passwordHash = newAdminPassword.generateHash(salt, 'admin123');
const demoAdmin = {
name: 'IDURAR',
surname: 'Admin',
enabled: true,
role: 'owner',
};
const result = await new Admin(demoAdmin).save();
const AdminPasswordData = {
password: passwordHash,
emailVerified: true,
salt: salt,
user: result._id,
};
await new AdminPassword(AdminPasswordData).save();
console.log('👍 Admin created : Done!');
const Setting = require('../models/coreModels/Setting');
const settingFiles = [];
const settingsFiles = globSync('./src/setup/defaultSettings/**/*.json');
for (const filePath of settingsFiles) {
const file = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
settingFiles.push(...file);
}
await Setting.insertMany(settingFiles);
console.log('👍 Settings created : Done!');
const PaymentMode = require('../models/appModels/PaymentMode');
const Taxes = require('../models/appModels/Taxes');
await Taxes.insertMany([{ taxName: 'Tax 0%', taxValue: '0', isDefault: true }]);
console.log('👍 Taxes created : Done!');
await PaymentMode.insertMany([
{
name: 'Default Payment',
description: 'Default Payment Mode (Cash , Wire Transfer)',
isDefault: true,
},
]);
console.log('👍 PaymentMode created : Done!');
console.log('🥳 Setup completed :Success!');
process.exit();
} catch (e) {
console.log('\n🚫 Error! The Error info is below');
console.log(e);
process.exit();
}
}
setupApp();