Start ssh properly for Ubuntu
[samplevnf.git] / VNF_Catalogue / app.js
1 /*******************************************************************************
2  * Copyright (c) 2017 Kumar Rishabh and others.
3  *
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Apache License, Version 2.0
6  * which accompanies this distribution, and is available at
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *******************************************************************************/
9
10 var express = require('express');
11 var path = require('path');
12 var favicon = require('serve-favicon');
13 var logger = require('morgan');
14 var cookieParser = require('cookie-parser');
15 var bodyParser = require('body-parser');
16 var validator = require('express-validator');
17
18 var routes = require('./routes/index');
19 var search_projects = require('./routes/search_projects');
20 var search_projects_results = require('./routes/search_projects_results');
21 var search_max = require('./routes/search_max');
22 var project_profile = require('./routes/project_profile');
23 var add_project = require('./routes/add_project');
24 var add_tag = require('./routes/add_tag');
25 var search_tag = require('./routes/search_tag');
26 var search_vnf = require('./routes/search_vnf');
27 var vnf_tag_association = require('./routes/vnf_tag_association');
28 //var project_profile = require('./routes/project_profile');
29
30 var app = express();
31
32 // view engine setup
33 app.set('views', path.join(__dirname, 'views'));
34 app.set('view engine', 'jade');
35
36 db_pool = require('./database').pool;
37 minio_client = require('./minio').minio_client;
38 // Database
39 //var db = require('mysql2');
40
41 // uncomment after placing your favicon in /public
42 //app.use(favicon(__dirname + '/public/favicon.ico'));
43 app.use(logger('dev'));
44 app.use(bodyParser.json());
45 app.use(bodyParser.urlencoded({ extended: false }));
46 app.use(validator());
47 app.use(cookieParser());
48 app.use(express.static(path.join(__dirname, 'public')));
49
50 // create minio bucket if it does not exist
51 minio_client.makeBucket('opnfv-vnfcatalogue', 'us-east-1', function(err) {
52     if (err) {
53         return console.log(err);
54     } else {
55         console.log('Bucket created successfully in "us-east-1".');
56     }
57 });
58
59 // Make our db accessible to our router
60 app.use(function(req,res,next){
61     //db_pool size 50 default
62     req.db_pool = db_pool;
63     req.minio = minio_client;
64     next();
65 });
66
67 app.use('/', routes);
68 app.use('/search_projects', search_projects);
69 app.use('/search_projects_results', search_projects_results);
70 app.use('/project_profile', project_profile);
71 app.use('/add_project', add_project);
72 app.use('/add_tag', add_tag);
73 app.use('/search_tag', search_tag);
74 app.use('/search_vnf', search_vnf);
75 app.use('/vnf_tag_association', vnf_tag_association);
76 app.use('/search_max', search_max);
77 //app.use('/', project_profile);
78 // Some Error handling for now #TODO Remove
79
80 /// catch 404 and forwarding to error handler
81 app.use(function(req, res, next) {
82     var err = new Error('Not Found');
83     err.status = 404;
84     next(err);
85 });
86
87
88 // development error handler
89 // will print stacktrace
90 if (app.get('env') === 'development') {
91     app.use(function(err, req, res, next) {
92         res.status(err.status || 500);
93         res.render('error', {
94             message: err.message,
95             error: err
96         });
97     });
98 }
99
100 // production error handler
101 // no stacktraces leaked to user
102 app.use(function(err, req, res, next) {
103     res.status(err.status || 500);
104     res.render('error', {
105         message: err.message,
106         error: {}
107     });
108 });
109
110 module.exports = app;