Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import express from 'express';
- import * as uuid from 'uuid';
- import { Db } from './services/database';
- import routes from './api/routes';
- const app = express();
- app.use(express.json());
- /**
- * Registzer routes
- */
- routes(app);
- app.get('/install-treky', (req, res) => {
- let db = Db;
- // Create collections
- // Here we store users
- const usersColl = db.collection('users');
- // Here we store metrics submitted tgrough API
- const metricsColl = db.collection('metrics');
- // Here we store names, icons, and links of apps
- const appsColl = db.collection('apps');
- // here we store target web based destinations ( e.g.: trello, fb, gmail, google.....)
- const wwwDestColl = db.collection('wwwDestinations');
- // Let's try to create them
- let collectionsSuccess = true;
- let errors = [];
- usersColl.create().then(
- () => console.log('Collection "users" Created'),
- err => {
- console.error('Failed to create collection "users". ', err);
- collectionsSuccess = false;
- errors.push(err);
- },
- );
- collectionsSuccess
- ? metricsColl.create().then(
- () => console.log('Collection "metrics" Created'),
- err => {
- console.error('Failed to create collection "metrics". ', err);
- collectionsSuccess = false;
- errors.push(err);
- },
- )
- : null;
- collectionsSuccess
- ? appsColl.create().then(
- () => console.log('Collection "apps" Created'),
- err => {
- console.error('Failed to create collection "apps". ', err);
- collectionsSuccess = false;
- errors.push(err);
- },
- )
- : null;
- collectionsSuccess
- ? wwwDestColl.create().then(
- () => console.log('Collection "wwwDestinations" Created'),
- err => {
- console.error('Failed to create collection "wwwDestinations". ', err);
- collectionsSuccess = false;
- errors.push(err);
- },
- )
- : null;
- // If all collections have been created seed user, otherwise exit process with returning error response
- if (!collectionsSuccess) {
- return res.json({ success: false, error: true, message: errors });
- }
- // Seeding
- const doc = {
- _key: uuid.v4(),
- email: 'admin@treky.app',
- password: 'secureMeLater',
- };
- const sampleDestination = {
- _key: uuid.v4(),
- domains: ['https://www.sketchapp.com'],
- icon:
- 'https://www.sketchapp.com/images/components/icons/apple-touch-icon-precomposed.png',
- favicon: 'https://www.sketchapp.com/images/components/icons/favicon@2x.png',
- };
- const sampleApp = {
- _key: uuid.v4(),
- names: ['Sketch'],
- icon:
- 'https://www.sketchapp.com/images/components/icons/apple-touch-icon-precomposed.png',
- favicon: 'https://www.sketchapp.com/images/components/icons/favicon@2x.png',
- };
- let seedSuccess = true;
- let seedErrors = [];
- usersColl.save(doc).then(
- meta => console.log('User seed saved:', meta._rev),
- err => {
- console.error('Failed to seed user:', err);
- seedErrors.push(err);
- seedSuccess = false;
- },
- );
- appsColl.save(sampleApp).then(
- meta => console.log('App seed saved:', meta._rev),
- err => {
- console.error('Failed to seed app:', err);
- seedErrors.push(err);
- seedSuccess = false;
- },
- );
- wwwDestColl.save(sampleDestination).then(
- meta => console.log('WWW Destiantion seed saved:', meta._rev),
- err => {
- console.error('Failed to seed WWW Destination:', err);
- seedErrors.push(err);
- seedSuccess = false;
- },
- );
- if (!seedSuccess) {
- return res.json({ success: false, error: true, message: seedErrors });
- }
- return res.json({
- success: true,
- error: false,
- message: 'Installation successful',
- });
- });
- const PORT = 8080;
- app.listen(PORT, () => {
- console.log(`server running on port ${PORT}`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement