ios.js
1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var parameters = require('../helpers/parameters');
var properties = require('../helpers/properties');
var exec = require('child_process').exec, child;
var uuid = require('node-uuid');
var fs = require('fs');
function init(req, res) {
var id = uuid.v4();
/* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
if ((req.body.transparencia === '') || (req.body.texto === '')) {
res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
return;
}
/* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
if (parameters.checkTransparency(req.body.transparencia) === false) {
res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
return;
}
/* Cria a linha de comando */
var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + id + ' && cd ../vlibras-core' +
' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
id + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + id + ' IOS';
/* Executa a linha de comando */
child = exec(command_line, function(err, stdout, stderr) {
// [stdout] = vlibras-core output
// console.log(stdout);
});
/* Listener que dispara quando a requisição ao core finaliza */
child.on('close', function(code, signal){
res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.avi' });
});
/* Listener que dispara quando a requisição ao core da erro */
child.on('error', function(code, signal){
res.send(500, parameters.errorMessage('Erro na chamada ao core'));
});
};
module.exports.init = init;