Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  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. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement