1 /*******************************************************************************
2 * Copyright (c) 2017 Kumar Rishabh and others.
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 *******************************************************************************/
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');
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');
33 app.set('views', path.join(__dirname, 'views'));
34 app.set('view engine', 'jade');
36 db_pool = require('./database').pool;
37 minio_client = require('./minio').minio_client;
39 //var db = require('mysql2');
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 }));
47 app.use(cookieParser());
48 app.use(express.static(path.join(__dirname, 'public')));
50 // create minio bucket if it does not exist
51 minio_client.makeBucket('opnfv-vnfcatalogue', 'us-east-1', function(err) {
53 return console.log(err);
55 console.log('Bucket created successfully in "us-east-1".');
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;
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
80 /// catch 404 and forwarding to error handler
81 app.use(function(req, res, next) {
82 var err = new Error('Not Found');
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);
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,
110 module.exports = app;