Advertisement
Guest User

Untitled

a guest
Jun 8th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var async = require('watt');
  2. var app = require('../../server/server');
  3. var fs = require('fs');
  4. var Enumerable = require('linq');
  5. var appRoot = require('app-root-path');
  6. var path = require('path');
  7.  
  8. var runSync = async(function* (next) {
  9.  
  10.     var curEnv = {
  11.         name: 'test env' + new Date().getTime(),
  12.         config: {
  13.             themeBackgroundColor: '#f36b22',
  14.             panelHeaderTextColor: '#FFFFFF',
  15.             navBarTextColor: '#FFFFFF',
  16.             meetingOrderType: 'ASCENDING_DATE',
  17.             publishMeetingWithNotif: true,
  18.             deleteMeetingWithNotif: true,
  19.             showMeetingOverForMonths: 24,
  20.             sendAnnotatedDoc: true,
  21.             allowVotingDoc: true,
  22.             allowVotingWithSignature: true,
  23.             defaultMeetingRoleId: 7,
  24.             licenseOption: 'standard'
  25.         }
  26.     };
  27.  
  28.     var environmentRole = [
  29.         { name: 'Administrator' },
  30.         { name: 'Meeting Organiser' },
  31.         { name: 'User' },
  32.         { name: 'Super Admin' }
  33.     ];
  34.  
  35.     function folderExists(filePath) {
  36.         try {
  37.             return fs.statSync(filePath).isDirectory();
  38.         } catch (err) {
  39.             return false;
  40.         }
  41.     }
  42.  
  43.     var createdEnv = yield app.models.Environment.findOrCreate(
  44.         {
  45.             where: { name: curEnv.name },
  46.             include: ["config"]
  47.         },
  48.         { name: curEnv.name },
  49.         next
  50.     );
  51.  
  52.     //create a folder for each environment files
  53.     var envFolderPath = appRoot.path + '/server/storage/' + createdEnv.id;
  54.     if (!folderExists(envFolderPath))
  55.         fs.mkdirSync(envFolderPath);
  56.  
  57.     var localIcon = {
  58.         name: 'placeholder.png',
  59.         type: 'image/png',
  60.         url: '/api/containers/default/download/placeholder.png'
  61.     };
  62.  
  63.     yield createdEnv.icon.create(localIcon, next);
  64.  
  65.     console.log('added icon to ', createdEnv.name);
  66.  
  67.     var localPic = {
  68.         name: 'placeholder.png',
  69.         type: 'image/png',
  70.         url: '/api/containers/default/download/placeholder.png'
  71.     };
  72.  
  73.     yield createdEnv.coverPicture.create(localPic, next);
  74.  
  75.     console.log('added cover to ', createdEnv.name);
  76.  
  77.     //add default email templates
  78.     var templatesFolder = path.join(appRoot.path, 'server', 'email-templates');
  79.  
  80.     var mailContent = yield fs.readFile(path.join(templatesFolder, 'publish-meeting-template.html'), next);
  81.     curEnv.config.publishMeetingTemplate = mailContent.toString();
  82.  
  83.     var mailContentForNotifyMeeting = yield fs.readFile(path.join(templatesFolder, 'notify-meeting-template.html'), next);
  84.     curEnv.config.notifyMeetingTemplate = mailContentForNotifyMeeting.toString();
  85.  
  86.     var mailContentForDeleteMeeting = yield fs.readFile(path.join(templatesFolder, 'delete-meeting-template.html'), next);
  87.     curEnv.config.deleteMeetingTemplate = mailContentForDeleteMeeting.toString();
  88.  
  89.     var mailContentForAnnotation = yield fs.readFile(path.join(templatesFolder, 'annotated-document.html'), next);
  90.     curEnv.config.annotatedDocumentTemplate = mailContentForAnnotation.toString();
  91.  
  92.     var mailContentForMeetingOver = yield fs.readFile(path.join(templatesFolder, 'meeting-over-template.html'), next);
  93.     curEnv.config.meetingOverTemplate = mailContentForMeetingOver.toString();
  94.  
  95.     var mailContentForNewUser = yield fs.readFile(path.join(templatesFolder, 'new-user-template.html'), next);
  96.     curEnv.config.newUserTemplate = mailContentForNewUser.toString();
  97.  
  98.     var existingConfig = yield createdEnv.config.create(curEnv.config, next);
  99.     console.log('added config to ', createdEnv.name);
  100.  
  101.     for (var aEnvRole of environmentRole) {
  102.         aEnvRole.idEnvironment = createdEnv.id;
  103.         var createdEnvRole = yield app.models.Role.findOrCreate({
  104.             where: {
  105.                 name: aEnvRole.name
  106.             }
  107.         }, aEnvRole, next);
  108.         console.log('created role ' + createdEnvRole.name);
  109.     }
  110.  
  111.     // var SUser = yield app.models.EboardUser.findOrCreate(
  112.     //     { where: { email: "superadmin@agileum.com" } },
  113.     //     {
  114.     //         email: "superadmin@agileum.com",
  115.     //         password: '123',
  116.     //         firstName: 'Super',
  117.     //         lastName: 'Admin',
  118.     //         status: 'ACTIVE'
  119.     //     },
  120.     //     next
  121.     // );
  122.     var SUser = yield app.models.EboardUser.findOrCreate(
  123.         { where: { email: "lionel.andriniaina@agileum.com" } },
  124.         {
  125.             email: "lionel.andriniaina@agileum.com",
  126.             password: '123',
  127.             firstName: 'Lionel',
  128.             lastName: 'Andriniaina',
  129.             status: 'ACTIVE'
  130.         },
  131.         next
  132.     );
  133.     console.log('SUser:', SUser);
  134.  
  135.     yield createdEnv.users.add(SUser, next);
  136.     console.log('added super admin ');
  137.  
  138.     var suUser = yield app.models.EnvironmentUser.findOne({
  139.         where: {
  140.             and: [
  141.                 { environmentId: createdEnv.id },
  142.                 { eboardUserId: SUser.id }
  143.             ]
  144.         }
  145.     }, next);
  146.     console.log('suUser:', suUser);
  147.  
  148.     //super admin
  149.     var superAdminRole = yield app.models.Role.findOne({
  150.         where: {
  151.             name: 'Super Admin'
  152.         }
  153.     }, next);
  154.     console.log('superAdminRole:', superAdminRole);
  155.     suUser.idRole = superAdminRole.id || 1;
  156.     yield app.models.EnvironmentUser.upsert(suUser, next);
  157.     console.log('gave super admin some powers');
  158.  
  159.     //now meeting roles
  160.     var envRoles = yield app.models.MeetingRole.find({
  161.         where: {
  162.             idEnvironment: createdEnv.id
  163.         }
  164.     }, next);
  165.     console.log('envRoles:', envRoles);
  166.  
  167.     if (envRoles.length === 0) {
  168.  
  169.         var defaultMeetingRoles = [{
  170.             name: 'director',
  171.             isPredefined: true,
  172.             permission: {
  173.                 canDownload: true,
  174.                 canUpload: true,
  175.                 canVote: false
  176.             }
  177.         }, {
  178.             name: 'chairman',
  179.             isPredefined: true,
  180.             permission: {
  181.                 canDownload: true,
  182.                 canUpload: true,
  183.                 canVote: false
  184.             }
  185.         }, {
  186.             name: 'member',
  187.             isPredefined: true,
  188.             permission: {
  189.                 canDownload: true,
  190.                 canUpload: true,
  191.                 canVote: false
  192.             }
  193.         }];
  194.  
  195.         for (var mRole of defaultMeetingRoles) {
  196.  
  197.             var allMr = yield app.models.MeetingRole.find({
  198.                 where: {
  199.                     idEnvironment: createdEnv.id
  200.                 }
  201.             }, next);
  202.             console.log('allMr:', allMr);
  203.  
  204.             var existingMR = Enumerable.from(allMr).firstOrDefault(m => m.name.toLowerCase() === mRole.name.toLowerCase());
  205.             if (!existingMR) {
  206.                 console.log('creating role: ', mRole.name);
  207.                 var createdMR = yield createdEnv.meetingRoles.create(mRole, next);
  208.                 var resp = yield createdMR.permission.create(mRole.permission, next);
  209.                 existingMR = createdMR;
  210.             }
  211.             existingConfig = yield createdEnv.config(next);
  212.             yield existingConfig.patchAttributes({
  213.                 defaultMeetingRoleId: existingMR.id
  214.             }, next);
  215.  
  216.         }
  217.         console.log('added meeting roles to ', createdEnv.name);
  218.  
  219.     }
  220. });
  221.  
  222. exports.createSampleEnvironment = function (shouldExit) {
  223.     runSync(function (err) {
  224.         if (err) {
  225.             console.error('error while creating sample environment');
  226.             console.error(err);
  227.         }
  228.  
  229.         console.log('sample environment created');
  230.         if (shouldExit)
  231.             process.exit(1);
  232.     });
  233. };
  234.  
  235. this.createSampleEnvironment(true);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement