Commit 32390a326dbf2abc783b4604f6d79f9ace212b24

Authored by dhuy
1 parent 022ebf65
Exists in master and in 1 other branch devel

Refactoring the source code of endpoints files

endpoints/ios.js
... ... @@ -7,35 +7,37 @@ var fs = require('fs');
7 7 function init(req, res) {
8 8 /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
9 9 if ((req.body.transparencia !== '') && (req.body.texto !== '')) {
10   - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
11   - if (parameters.checkTransparency(req.body.transparencia)) {
12   - /* Cria a linha de comando */
13   - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
14   - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
15   - properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' IOS';
16   -
17   - /* Executa a linha de comando */
18   - child = exec(command_line, function(err, stdout, stderr) {
19   - // [stdout] = vlibras-core output
20   - // console.log(stdout);
21   - });
22   -
23   - /* Listener que dispara quando a requisição ao core finaliza */
24   - child.on('close', function(code, signal){
25   - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.avi' });
26   - properties.ID_FROM_BD++;
27   - });
28   -
29   - /* Listener que dispara quando a requisição ao core da erro */
30   - child.on('error', function(code, signal){
31   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
32   - });
33   - } else {
34   - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
35   - }
36   - } else {
37 10 res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  11 + return;
38 12 }
  13 +
  14 + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
  15 + if (parameters.checkTransparency(req.body.transparencia)) {
  16 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  17 + return;
  18 + }
  19 +
  20 + /* Cria a linha de comando */
  21 + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
  22 + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
  23 + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' IOS';
  24 +
  25 + /* Executa a linha de comando */
  26 + child = exec(command_line, function(err, stdout, stderr) {
  27 + // [stdout] = vlibras-core output
  28 + // console.log(stdout);
  29 + });
  30 +
  31 + /* Listener que dispara quando a requisição ao core finaliza */
  32 + child.on('close', function(code, signal){
  33 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.avi' });
  34 + properties.ID_FROM_BD++;
  35 + });
  36 +
  37 + /* Listener que dispara quando a requisição ao core da erro */
  38 + child.on('error', function(code, signal){
  39 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  40 + });
39 41 };
40 42  
41 43 module.exports.init = init;
42 44 \ No newline at end of file
... ...
endpoints/legenda.js
... ... @@ -7,50 +7,53 @@ var fs = require('fs');
7 7 function init(req, res) {
8 8 /* Verifica se o paramêtro [transparencia] possue algum valor */
9 9 if (req.body.transparencia !== '') {
10   - /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */
11   - if ((parameters.checkTransparency(req.body.transparencia) === true)) {
12   - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
13   - if (parameters.checkSubtitle(req.files.legenda.name)) {
14   - /* Cria uma pasta cujo o nome é o ID */
15   - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
16   -
17   - /* Listener que dispara quando a pasta é criada */
18   - child.on('close', function(code, signal){
19   - /* Move a legenda submetido para a pasta com o seu ID correspondente */
20   - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
21   - if (error) { console.log(error); }
22   - });
23   -
24   - /* Cria a linha de comando */
25   - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
26   - req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
27   -
28   - /* Executa a linha de comando */
29   - child = exec(command_line, function(err, stdout, stderr) {
30   - // [stdout] = vlibras-core output
31   - // console.log(stdout);
32   - });
33   -
34   - /* Listener que dispara quando a requisição ao core finaliza */
35   - child.on('close', function(code, signal){
36   - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
37   - properties.ID_FROM_BD++;
38   - });
39   -
40   - /* Listener que dispara quando a requisição ao core da erro */
41   - child.on('error', function(code, signal){
42   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
43   - });
44   - });
45   - } else {
46   - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
47   - }
48   - } else {
49   - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
50   - }
51   - } else {
52 10 res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  11 + return;
53 12 }
  13 +
  14 + /* Verifica se os paramêtros [transparencia] possuem os seus únicos valores possíveis */
  15 + if ((parameters.checkTransparency(req.body.transparencia) === true)) {
  16 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  17 + return;
  18 + }
  19 +
  20 + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
  21 + if (parameters.checkSubtitle(req.files.legenda.name)) {
  22 + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
  23 + return;
  24 + }
  25 +
  26 + /* Cria uma pasta cujo o nome é o ID */
  27 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  28 +
  29 + /* Listener que dispara quando a pasta é criada */
  30 + child.on('close', function(code, signal){
  31 + /* Move a legenda submetido para a pasta com o seu ID correspondente */
  32 + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
  33 + if (error) { console.log(error); }
  34 + });
  35 +
  36 + /* Cria a linha de comando */
  37 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  38 + req.files.legenda.name + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  39 +
  40 + /* Executa a linha de comando */
  41 + child = exec(command_line, function(err, stdout, stderr) {
  42 + // [stdout] = vlibras-core output
  43 + // console.log(stdout);
  44 + });
  45 +
  46 + /* Listener que dispara quando a requisição ao core finaliza */
  47 + child.on('close', function(code, signal){
  48 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  49 + properties.ID_FROM_BD++;
  50 + });
  51 +
  52 + /* Listener que dispara quando a requisição ao core da erro */
  53 + child.on('error', function(code, signal){
  54 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  55 + });
  56 + });
54 57 };
55 58  
56 59 module.exports.init = init;
57 60 \ No newline at end of file
... ...
endpoints/texto.js
... ... @@ -7,34 +7,36 @@ var fs = require('fs');
7 7 function init(req, res) {
8 8 /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
9 9 if ((req.body.transparencia !== '') && (req.body.texto !== '')) {
10   - /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
11   - if (parameters.checkTransparency(req.body.transparencia)) {
12   - /* Cria a linha de comando */
13   - var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
14   - ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
15   - properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' WEB';
16   -
17   - /* Executa a linha de comando */
18   - child = exec(command_line, function(err, stdout, stderr) {
19   - // [stdout] = vlibras-core output
20   - });
21   -
22   - /* Listener que dispara quando a requisição ao core finaliza */
23   - child.on('close', function(code, signal){
24   - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.webm' });
25   - properties.ID_FROM_BD++;
26   - });
27   -
28   - /* Listener que dispara quando a requisição ao core da erro */
29   - child.on('error', function(code, signal){
30   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
31   - });
32   - } else {
33   - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
34   - }
35   - } else {
36 10 res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  11 + return;
37 12 }
  13 +
  14 + /* Verifica se o paramêtro [transparencia] possui os únicos valores possíveis [opaco, transparente] */
  15 + if (parameters.checkTransparency(req.body.transparencia)) {
  16 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  17 + return;
  18 + }
  19 +
  20 + /* Cria a linha de comando */
  21 + var command_line = 'echo ' + req.body.texto + ' >> ' + __dirname + '/text_files/' + properties.ID_FROM_BD + ' && cd ../vlibras-core' +
  22 + ' && ./vlibras ' + parameters.getServiceType(req.body.servico) + ' ../vlibras-api/text_files/' +
  23 + properties.ID_FROM_BD + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD + ' WEB';
  24 +
  25 + /* Executa a linha de comando */
  26 + child = exec(command_line, function(err, stdout, stderr) {
  27 + // [stdout] = vlibras-core output
  28 + });
  29 +
  30 + /* Listener que dispara quando a requisição ao core finaliza */
  31 + child.on('close', function(code, signal){
  32 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.webm' });
  33 + properties.ID_FROM_BD++;
  34 + });
  35 +
  36 + /* Listener que dispara quando a requisição ao core da erro */
  37 + child.on('error', function(code, signal){
  38 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  39 + });
38 40 };
39 41  
40 42 module.exports.init = init;
41 43 \ No newline at end of file
... ...
endpoints/video.js
... ... @@ -10,107 +10,110 @@ var fs = require('fs');
10 10 function init(req, res) {
11 11 /* Verifica se os paramêtros [posicao, tamanho, transparencia] possuem algum valor */
12 12 if ((req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {
13   - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
14   - if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {
15   - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
16   - if (parameters.checkVideo(req.files.video.name)) {
17   - /* Cria uma pasta cujo o nome é o ID */
18   - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
19   -
20   - /* Listener que dispara quando a pasta é criada */
21   - child.on('close', function(code, signal){
22   - /* Move o vídeo submetido para a pasta com o seu ID correspondente */
23   - fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
24   - if (error) { console.log(error); }
25   - });
26   -
27   - /* Cria a linha de comando */
28   - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
29   - req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
30   - parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
31   -
32   - /* Executa a linha de comando */
33   - child = exec(command_line, function(err, stdout, stderr) {
34   - // [stdout] = vlibras-core output
35   - });
36   -
37   - if (req.body.callback === undefined) {
38   - /* Listener que dispara quando a requisição ao core finaliza */
39   - child.on('close', function(code, signal){
40   - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
41   - properties.ID_FROM_BD++;
42   - });
43   -
44   - child.on('error', function(code, signal){
45   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
46   - });
47   - } else {
48   -
49   - child.on('close', function(code, signal){
50   - var path = url.parse(req.body.callback);
51   -
52   - var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
53   -
54   - var options = {
55   - host: path.hostname,
56   - port: path.port,
57   - path: path.path,
58   - method: 'POST',
59   - headers: {
60   - 'Content-Type': 'application/x-www-form-urlencoded',
61   - 'Content-Length': Buffer.byteLength(data)
62   - }
63   - };
64   -
65   - var requesting = http.request(options, function(res) {
66   - res.setEncoding('utf8');
67   - // res.on('data', function (chunk) {
68   - // console.log("req.body: " + chunk);
69   - // });
70   - });
71   -
72   - requesting.write(data);
73   - requesting.end();
74   -
75   - properties.ID_FROM_BD++;
76   - });
77   -
78   - /* Listener que dispara quando a requisição ao core da erro */
79   - child.on('error', function(code, signal){
80   -
81   - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
82   -
83   - var options = {
84   - host: path.hostname,
85   - port: path.port,
86   - path: path.path,
87   - method: 'POST',
88   - headers: {
89   - 'Content-Type': 'application/x-www-form-urlencoded',
90   - 'Content-Length': Buffer.byteLength(data)
91   - }
92   - };
93   -
94   - var requesting = http.request(options, function(res) {
95   - res.setEncoding('utf8');
96   - });
97   -
98   - requesting.write(data);
99   - requesting.end();
100   - });
101   -
102   - res.send(200);
103   - }
104   - });
105   - } else {
106   - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
107   - }
108   - } else {
109   - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
110   - }
111   - } else {
112 13 res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  14 + return;
113 15 }
  16 +
  17 + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
  18 + if ((parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {
  19 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  20 + return;
  21 + }
  22 +
  23 + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
  24 + if (parameters.checkVideo(req.files.video.name)) {
  25 + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
  26 + return;
  27 + }
  28 +
  29 + /* Cria uma pasta cujo o nome é o ID */
  30 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  31 +
  32 + /* Listener que dispara quando a pasta é criada */
  33 + child.on('close', function(code, signal){
  34 + /* Move o vídeo submetido para a pasta com o seu ID correspondente */
  35 + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
  36 + if (error) { console.log(error); }
  37 + });
  38 +
  39 + /* Cria a linha de comando */
  40 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  41 + req.files.video.name + ' 1 ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
  42 + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  43 +
  44 + /* Executa a linha de comando */
  45 + child = exec(command_line, function(err, stdout, stderr) {
  46 + // [stdout] = vlibras-core output
  47 + });
  48 +
  49 + if (req.body.callback === undefined) {
  50 + /* Listener que dispara quando a requisição ao core finaliza */
  51 + child.on('close', function(code, signal){
  52 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  53 + properties.ID_FROM_BD++;
  54 + });
  55 +
  56 + child.on('error', function(code, signal){
  57 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  58 + });
  59 + } else {
  60 +
  61 + child.on('close', function(code, signal){
  62 + var path = url.parse(req.body.callback);
  63 +
  64 + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  65 +
  66 + var options = {
  67 + host: path.hostname,
  68 + port: path.port,
  69 + path: path.path,
  70 + method: 'POST',
  71 + headers: {
  72 + 'Content-Type': 'application/x-www-form-urlencoded',
  73 + 'Content-Length': Buffer.byteLength(data)
  74 + }
  75 + };
  76 +
  77 + var requesting = http.request(options, function(res) {
  78 + res.setEncoding('utf8');
  79 + // res.on('data', function (chunk) {
  80 + // console.log("req.body: " + chunk);
  81 + // });
  82 + });
  83 +
  84 + requesting.write(data);
  85 + requesting.end();
  86 +
  87 + properties.ID_FROM_BD++;
  88 + });
  89 +
  90 + /* Listener que dispara quando a requisição ao core da erro */
  91 + child.on('error', function(code, signal){
  92 +
  93 + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
  94 +
  95 + var options = {
  96 + host: path.hostname,
  97 + port: path.port,
  98 + path: path.path,
  99 + method: 'POST',
  100 + headers: {
  101 + 'Content-Type': 'application/x-www-form-urlencoded',
  102 + 'Content-Length': Buffer.byteLength(data)
  103 + }
  104 + };
  105 +
  106 + var requesting = http.request(options, function(res) {
  107 + res.setEncoding('utf8');
  108 + });
  109 +
  110 + requesting.write(data);
  111 + requesting.end();
  112 + });
  113 +
  114 + res.send(200);
  115 + }
  116 + });
114 117 };
115 118  
116 119 module.exports.init = init;
117 120 \ No newline at end of file
... ...
endpoints/video_legenda.js
... ... @@ -10,119 +10,123 @@ var fs = require('fs');
10 10 function init(req, res) {
11 11 /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */
12 12 if ((req.body.linguagem !== '') && (req.body.posicao !== '') && (req.body.tamanho !== '') && (req.body.transparencia !== '')) {
13   - /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
14   - if ((parameters.checkLanguage(req.body.linguagem) === true) && (parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {
15   - /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
16   - if (parameters.checkVideo(req.files.video.name)) {
17   - /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
18   - if (parameters.checkSubtitle(req.files.legenda.name)) {
19   - /* Cria uma pasta cujo o nome é o ID */
20   - child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
21   -
22   - /* Listener que dispara quando a pasta é criada */
23   - child.on('close', function(code, signal){
24   -
25   - /* Move o vídeo submetido para a pasta com o seu ID correspondente */
26   - fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
27   - if (error) { console.log(error); }
28   - });
29   -
30   - /* Move a legenda submetido para a pasta com o seu ID correspondente */
31   - fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
32   - if (error) { console.log(error); }
33   - });
34   -
35   - /* Cria a linha de comando */
36   - var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
37   - req.files.video.name + ' uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) +
38   - ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
39   - parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
40   -
41   - /* Executa a linha de comando */
42   - child = exec(command_line, function(err, stdout, stderr) {
43   - // [stdout] = vlibras-core output
44   - });
45   -
46   - if (req.body.callback === undefined) {
47   - /* Listener que dispara quando a requisição ao core finaliza */
48   - child.on('close', function(code, signal){
49   - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
50   - properties.ID_FROM_BD++;
51   - });
52   -
53   - child.on('error', function(code, signal){
54   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
55   - });
56   - } else {
57   -
58   - child.on('close', function(code, signal){
59   - var path = url.parse(req.body.callback);
60   -
61   - var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
62   -
63   - var options = {
64   - host: path.hostname,
65   - port: path.port,
66   - path: path.path,
67   - method: 'POST',
68   - headers: {
69   - 'Content-Type': 'application/x-www-form-urlencoded',
70   - 'Content-Length': Buffer.byteLength(data)
71   - }
72   - };
73   -
74   - var requesting = http.request(options, function(res) {
75   - res.setEncoding('utf8');
76   - // res.on('data', function (chunk) {
77   - // console.log("req.body: " + chunk);
78   - // });
79   - });
80   -
81   - requesting.write(data);
82   - requesting.end();
83   -
84   - properties.ID_FROM_BD++;
85   - });
86   -
87   - /* Listener que dispara quando a requisição ao core da erro */
88   - child.on('error', function(code, signal){
89   -
90   - var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
91   -
92   - var options = {
93   - host: path.hostname,
94   - port: path.port,
95   - path: path.path,
96   - method: 'POST',
97   - headers: {
98   - 'Content-Type': 'application/x-www-form-urlencoded',
99   - 'Content-Length': Buffer.byteLength(data)
100   - }
101   - };
102   -
103   - var requesting = http.request(options, function(res) {
104   - res.setEncoding('utf8');
105   - });
106   -
107   - requesting.write(data);
108   - requesting.end();
109   - });
110   -
111   - res.send(200);
112   - }
113   - });
114   - } else {
115   - res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
116   - }
117   - } else {
118   - res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
119   - }
120   - } else {
121   - res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
122   - }
123   - } else {
124 13 res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio'));
  14 + return;
  15 + }
  16 +
  17 + /* Verifica se os paramêtros [linguagem, posicao, tamanho, transparencia] possuem os seus únicos valores possíveis */
  18 + if ((parameters.checkLanguage(req.body.linguagem) === true) && (parameters.checkPosition(req.body.posicao) === true) && (parameters.checkSize(req.body.tamanho) === true) && (parameters.checkTransparency(req.body.transparencia) === true)) {
  19 + res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos'));
  20 + return;
  21 + }
  22 +
  23 + /* Checa se o arquivo de vídeo submetivo possui uma extensão válida */
  24 + if (parameters.checkVideo(req.files.video.name)) {
  25 + res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
  26 + return;
125 27 }
  28 +
  29 + /* Checa se o arquivo de legenda submetivo possui uma extensão válida */
  30 + if (parameters.checkSubtitle(req.files.legenda.name)) {
  31 + res.send(500, parameters.errorMessage('Legenda com Extensão Inválida'));
  32 + return;
  33 + }
  34 +
  35 + /* Cria uma pasta cujo o nome é o ID */
  36 + child = exec('mkdir ' + __dirname + '/uploads/' + properties.ID_FROM_BD);
  37 +
  38 + /* Listener que dispara quando a pasta é criada */
  39 + child.on('close', function(code, signal){
  40 +
  41 + /* Move o vídeo submetido para a pasta com o seu ID correspondente */
  42 + fs.rename(req.files.video.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.video.name, function(error) {
  43 + if (error) { console.log(error); }
  44 + });
  45 +
  46 + /* Move a legenda submetido para a pasta com o seu ID correspondente */
  47 + fs.rename(req.files.legenda.path, __dirname + '/uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name, function(error) {
  48 + if (error) { console.log(error); }
  49 + });
  50 +
  51 + /* Cria a linha de comando */
  52 + var command_line = 'vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' uploads/' + properties.ID_FROM_BD + '/' +
  53 + req.files.video.name + ' uploads/' + properties.ID_FROM_BD + '/' + req.files.legenda.name + ' ' + parameters.getLanguage(req.body.linguagem) +
  54 + ' ' + parameters.getPosition(req.body.posicao) + ' ' + parameters.getSize(req.body.tamanho) + ' ' +
  55 + parameters.getTransparency(req.body.transparencia) + ' ' + properties.ID_FROM_BD;
  56 +
  57 + /* Executa a linha de comando */
  58 + child = exec(command_line, function(err, stdout, stderr) {
  59 + // [stdout] = vlibras-core output
  60 + });
  61 +
  62 + if (req.body.callback === undefined) {
  63 + /* Listener que dispara quando a requisição ao core finaliza */
  64 + child.on('close', function(code, signal){
  65 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  66 + properties.ID_FROM_BD++;
  67 + });
  68 +
  69 + child.on('error', function(code, signal){
  70 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  71 + });
  72 + } else {
  73 +
  74 + child.on('close', function(code, signal){
  75 + var path = url.parse(req.body.callback);
  76 +
  77 + var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + properties.ID_FROM_BD + '.flv' });
  78 +
  79 + var options = {
  80 + host: path.hostname,
  81 + port: path.port,
  82 + path: path.path,
  83 + method: 'POST',
  84 + headers: {
  85 + 'Content-Type': 'application/x-www-form-urlencoded',
  86 + 'Content-Length': Buffer.byteLength(data)
  87 + }
  88 + };
  89 +
  90 + var requesting = http.request(options, function(res) {
  91 + res.setEncoding('utf8');
  92 + // res.on('data', function (chunk) {
  93 + // console.log("req.body: " + chunk);
  94 + // });
  95 + });
  96 +
  97 + requesting.write(data);
  98 + requesting.end();
  99 +
  100 + properties.ID_FROM_BD++;
  101 + });
  102 +
  103 + /* Listener que dispara quando a requisição ao core da erro */
  104 + child.on('error', function(code, signal){
  105 +
  106 + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
  107 +
  108 + var options = {
  109 + host: path.hostname,
  110 + port: path.port,
  111 + path: path.path,
  112 + method: 'POST',
  113 + headers: {
  114 + 'Content-Type': 'application/x-www-form-urlencoded',
  115 + 'Content-Length': Buffer.byteLength(data)
  116 + }
  117 + };
  118 +
  119 + var requesting = http.request(options, function(res) {
  120 + res.setEncoding('utf8');
  121 + });
  122 +
  123 + requesting.write(data);
  124 + requesting.end();
  125 + });
  126 +
  127 + res.send(200);
  128 + }
  129 + });
126 130 };
127 131  
128 132 module.exports.init = init;
129 133 \ No newline at end of file
... ...