Guest User

Untitled

a guest
Feb 20th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import express from 'express';
  2. import * as uuid from 'uuid';
  3. import { Db } from './services/database';
  4. import routes from './api/routes';
  5.  
  6. const app = express();
  7. app.use(express.json());
  8.  
  9. /**
  10.  * Registzer routes
  11.  */
  12.  
  13. routes(app);
  14.  
  15. app.get('/install-treky', (req, res) => {
  16.     let db = Db;
  17.     // Create collections
  18.     // Here we store users
  19.     const usersColl = db.collection('users');
  20.     // Here we store metrics submitted tgrough API
  21.     const metricsColl = db.collection('metrics');
  22.     // Here we store names, icons, and links of apps
  23.     const appsColl = db.collection('apps');
  24.     // here we store target web based destinations ( e.g.: trello, fb, gmail, google.....)
  25.     const wwwDestColl = db.collection('wwwDestinations');
  26.  
  27.     // Let's try to create them
  28.  
  29.     let collectionsSuccess = true;
  30.     let errors = [];
  31.  
  32.     usersColl.create().then(
  33.         () => console.log('Collection "users" Created'),
  34.         err => {
  35.             console.error('Failed to create collection "users". ', err);
  36.             collectionsSuccess = false;
  37.             errors.push(err);
  38.         },
  39.     );
  40.  
  41.     collectionsSuccess
  42.         ? metricsColl.create().then(
  43.                 () => console.log('Collection "metrics" Created'),
  44.                 err => {
  45.                     console.error('Failed to create collection "metrics". ', err);
  46.                     collectionsSuccess = false;
  47.                     errors.push(err);
  48.                 },
  49.           )
  50.         : null;
  51.  
  52.     collectionsSuccess
  53.         ? appsColl.create().then(
  54.                 () => console.log('Collection "apps" Created'),
  55.                 err => {
  56.                     console.error('Failed to create collection "apps". ', err);
  57.                     collectionsSuccess = false;
  58.                     errors.push(err);
  59.                 },
  60.           )
  61.         : null;
  62.  
  63.     collectionsSuccess
  64.         ? wwwDestColl.create().then(
  65.                 () => console.log('Collection "wwwDestinations" Created'),
  66.                 err => {
  67.                     console.error('Failed to create collection "wwwDestinations". ', err);
  68.                     collectionsSuccess = false;
  69.                     errors.push(err);
  70.                 },
  71.           )
  72.         : null;
  73.  
  74.     // If all collections have been created seed user, otherwise exit process with returning error response
  75.     if (!collectionsSuccess) {
  76.         return res.json({ success: false, error: true, message: errors });
  77.     }
  78.     // Seeding
  79.  
  80.     const doc = {
  81.         _key: uuid.v4(),
  82.         email: 'admin@treky.app',
  83.         password: 'secureMeLater',
  84.     };
  85.  
  86.     const sampleDestination = {
  87.         _key: uuid.v4(),
  88.         domains: ['https://www.sketchapp.com'],
  89.         icon:
  90.             'https://www.sketchapp.com/images/components/icons/apple-touch-icon-precomposed.png',
  91.         favicon: 'https://www.sketchapp.com/images/components/icons/favicon@2x.png',
  92.     };
  93.  
  94.     const sampleApp = {
  95.         _key: uuid.v4(),
  96.         names: ['Sketch'],
  97.         icon:
  98.             'https://www.sketchapp.com/images/components/icons/apple-touch-icon-precomposed.png',
  99.         favicon: 'https://www.sketchapp.com/images/components/icons/favicon@2x.png',
  100.     };
  101.  
  102.     let seedSuccess = true;
  103.     let seedErrors = [];
  104.     usersColl.save(doc).then(
  105.         meta => console.log('User seed saved:', meta._rev),
  106.         err => {
  107.             console.error('Failed to seed user:', err);
  108.             seedErrors.push(err);
  109.             seedSuccess = false;
  110.         },
  111.     );
  112.  
  113.     appsColl.save(sampleApp).then(
  114.         meta => console.log('App seed saved:', meta._rev),
  115.         err => {
  116.             console.error('Failed to seed app:', err);
  117.             seedErrors.push(err);
  118.             seedSuccess = false;
  119.         },
  120.     );
  121.  
  122.     wwwDestColl.save(sampleDestination).then(
  123.         meta => console.log('WWW Destiantion seed saved:', meta._rev),
  124.         err => {
  125.             console.error('Failed to seed WWW Destination:', err);
  126.             seedErrors.push(err);
  127.             seedSuccess = false;
  128.         },
  129.     );
  130.  
  131.     if (!seedSuccess) {
  132.         return res.json({ success: false, error: true, message: seedErrors });
  133.     }
  134.  
  135.     return res.json({
  136.         success: true,
  137.         error: false,
  138.         message: 'Installation successful',
  139.     });
  140. });
  141.  
  142. const PORT = 8080;
  143.  
  144. app.listen(PORT, () => {
  145.     console.log(`server running on port ${PORT}`);
  146. });
Add Comment
Please, Sign In to add comment