server.js 2.13 KB
/* Helpers */
var properties = require('./helpers/properties');

/* Endpoints */
var endpoint_sinal = require('./endpoints/sinal');

/* Environment */
var path = require('path');
var express = require('express');
var bodyParser = require('body-parser');
var PythonShell = require('python-shell');
var app = express();

var options = {
	pythonPath: 'python3',
  	scriptPath: __dirname + '/../wikilibras-core',
  	args: []
};

/* Database */
var mongoose = require('mongoose');
require('./db/config').connect(mongoose);
var Sign = require('./db/schemas/sinal').init(mongoose);
var API = require('./db/api');
var outputVideosDir = __dirname + '/../wikilibras-core/users/'
// var outputVideosDir = '/home/wikilibras/wikilibras-core/users/'

// app.use(express.static(path.join(__dirname, '/public')));
app.use("/public", express.static(outputVideosDir));

// deprecated: app.use(express.bodyParser({ keepExtensions: true }));
app.use(express.urlencoded({ keepExtensions: true }))
app.use(express.json())

app.get('/', function(req, res) {
	res.send(200, { 'status': 'server is running!' });
});

app.get('/signs', function(req, res) {
	res.sendfile('views/index.html');
});

app.post('/sign', function(req, res) {
	options.args = JSON.stringify(req.body);
	PythonShell.run('controller.py', options, function (err, results) {
  		if (err) { console.log(err); endpoint_sinal.init(req, res, Sign,"Falhou"); res.send(400); return; }
        // results is an array consisting of messages collected during execution
		endpoint_sinal.init(req, res, Sign,"Sucesso");
		res.send(200);
	});
});

app.get('/api/signs', function(req, res) {
	API.read_all(Sign, function(result) {
		if (result !== null) {
			res.send(200, result);
		} else {
			res.send(500, { 'error': 'Erro na busca.'});
		}
	});
});

app.delete('/api/:hash', function(req, res) {
	API.remove(Sign, req.params.hash, function(result) {
		if (result !== null) {
			res.send(200, { 'status': 'Remoção concluída.'});
		} else {
			res.send(500, { 'error': 'Erro na remoção.'});
		}
	});
});

app.listen(properties.PORT, properties.HOST, function() {
	console.log('Server running on ' + properties.HOST + ':' + properties.PORT);
});