diff --git a/config/main.js b/config/main.js index 255c997..53a6fd7 100644 --- a/config/main.js +++ b/config/main.js @@ -46,6 +46,21 @@ exports.getCapacityLogPath = function () { return this.getLogByName('capacity'); }; +exports.isBloqueante = function () { + //1 para bloqueante, 2 para nao bloqueante e 3 pra aceitar os dois + return this.getServiceType() === 1; +}; + +exports.isNaoBloqueante = function () { + //1 para bloqueante, 2 para nao bloqueante e 3 pra aceitar os dois + return this.getServiceType() === 2; +}; + +exports.isAmbos = function () { + //1 para bloqueante, 2 para nao bloqueante e 3 pra aceitar os dois + return this.getServiceType() === 3; +}; + exports.canRunOnBox = function (service) { //1 para bloqueante, 2 para nao bloqueante e 3 pra aceitar os dois var serviceType = parseInt(this.getServiceType()); diff --git a/endpoints/audio.js b/endpoints/audio.js index 2636e53..5bcc2ee 100644 --- a/endpoints/audio.js +++ b/endpoints/audio.js @@ -6,6 +6,7 @@ var core = require('../helpers/core'); var uuid = require('node-uuid'); var mkdirp = require('mkdirp'); var async = require('async'); +var logger = require('../logsystem/main.js'); function init(req, res) { res.set("Content-Type", "application/json"); @@ -21,7 +22,7 @@ function init(req, res) { res.send(500, parameters.errorMessage('Parâmetros insuficientes ou inválidos')); return; } - + process(req, res); }; @@ -29,7 +30,7 @@ function process(req, res) { var id = uuid.v4(); var folder = properties.uploads_folder + id; var locals = {}; - + async.series([ // Cria a pasta apropriada function(callback) { @@ -59,7 +60,9 @@ function process(req, res) { try { callCore(id, locals.audio, req, res); callback(); + logger.incrementService("outros", "traducoes"); } catch (err) { + logger.incrementError("1", err); callback(err); } } diff --git a/endpoints/ios.js b/endpoints/ios.js index 292e181..3bc9ece 100644 --- a/endpoints/ios.js +++ b/endpoints/ios.js @@ -6,6 +6,7 @@ var uuid = require('node-uuid'); var fs = require('fs'); var kue = require('kue'), queue = kue.createQueue(); +var logger = require('../logsystem/main.js'); function init(req, res) { @@ -48,11 +49,13 @@ function init(req, res) { /* 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 + '.mp4' }); + logger.incrementService("outros", "traducoes"); }); /* 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')); + logger.incrementError("1", err); }); }); } diff --git a/endpoints/legenda.js b/endpoints/legenda.js index fe29e7a..a520660 100644 --- a/endpoints/legenda.js +++ b/endpoints/legenda.js @@ -6,6 +6,7 @@ var uuid = require('node-uuid'); var fs = require('fs'); var kue = require('kue'), queue = kue.createQueue(); +var logger = require('../logsystem/main.js'); function init(req, res) { @@ -57,20 +58,22 @@ function init(req, res) { queue.process('exec_command_line', function(job, done){ child = queue_helper.exec_command_line(job.data.command_line, done); }); - + job.on('complete', function() { /* 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 + '.flv' }); + logger.incrementService("outros", "traducoes"); }); /* 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')); + logger.incrementError("1", err); }); - }) + }); }); -}; +} module.exports.init = init; diff --git a/endpoints/texto.js b/endpoints/texto.js index 5d31175..9085e86 100755 --- a/endpoints/texto.js +++ b/endpoints/texto.js @@ -7,6 +7,7 @@ var uuid = require('node-uuid'); var fs = require('fs'); var kue = require('kue'), queue = kue.createQueue(); +var logger = require('../logsystem/main.js'); function init(req, res, Request) { @@ -34,8 +35,8 @@ function init(req, res, Request) { db.create(request_object, function(result) { if (result !== null) { - // TODO retornar ID do video res.send(200, { 'status': 'Requisição ' + result.id + ' cadastrada com sucesso.', 'video_id': result.id}); + logger.incrementService("outros", "traducoes"); } else { res.send(500, { 'error': 'Erro na criação da requisição.'}); } @@ -62,11 +63,13 @@ function init(req, res, Request) { // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); db.update(request_object, 'Completed', function(result) { }); + logger.incrementService("outros", "traducoes"); }); /* 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')); + logger.incrementError("1", 'Erro na chamada ao core'); db.update(request_object, 'Error', function(result) { }); }); diff --git a/endpoints/video.js b/endpoints/video.js index 580b658..7efed0b 100644 --- a/endpoints/video.js +++ b/endpoints/video.js @@ -6,6 +6,7 @@ var core = require('../helpers/core'); var uuid = require('node-uuid'); var mkdirp = require('mkdirp'); var async = require('async'); +var logger = require('../logsystem/main.js'); function init(req, res) { res.set("Content-Type", "application/json"); @@ -58,8 +59,10 @@ function process(req, res) { // Faz a chamada ao core try { callCore(id, locals.video, locals.subtitle, req, res); + logger.incrementService("videos", "traducoes"); callback(); } catch (err) { + logger.incrementError("1", err); callback(err); } } diff --git a/endpoints/video_legenda.js b/endpoints/video_legenda.js index 0ad4fb9..a662ac2 100644 --- a/endpoints/video_legenda.js +++ b/endpoints/video_legenda.js @@ -6,6 +6,7 @@ var core = require('../helpers/core'); var uuid = require('node-uuid'); var mkdirp = require('mkdirp'); var async = require('async'); +var logger = require('../logsystem/main.js'); function init(req, res) { res.set("Content-Type", "application/json"); @@ -23,7 +24,7 @@ function init(req, res) { } process(req, res); -}; +} function process(req, res) { var id = uuid.v4(); @@ -59,8 +60,10 @@ function process(req, res) { try { callCore(id, locals.video, locals.subtitle, req, res); callback(); + logger.incrementService("outros", "traducoes"); } catch (err) { callback(err); + logger.incrementError("1", err); } } ], function(err) { diff --git a/helpers/core.js b/helpers/core.js index c5c9627..2718098 100644 --- a/helpers/core.js +++ b/helpers/core.js @@ -7,6 +7,7 @@ var querystring = require('querystring'); var exec = require('child_process').exec, child; var kue = require('kue'), queue = kue.createQueue(); +var logger = require('../logsystem/main.js'); function call(id, command_line, req, res) { /* Executa a linha de comando */ @@ -66,6 +67,7 @@ function call(id, command_line, req, res) { var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4', 'id' : id }); } else { var data = querystring.stringify({ 'error': 'Erro no Core', 'code': code, 'id' : id }); + logger.incrementError("2"); } // Chama o callback @@ -76,7 +78,7 @@ function call(id, command_line, req, res) { child.on('error', function(code, signal) { var path = url.parse(req.body.callback); var data = querystring.stringify( { 'error': 'Erro na chamada ao core', 'code': code, 'id': id } ); - + logger.incrementError("2"); requests.postRequest(path, data); }); diff --git a/helpers/files.js b/helpers/files.js index e6fb466..59a2424 100644 --- a/helpers/files.js +++ b/helpers/files.js @@ -1,9 +1,9 @@ var parameters = require('../helpers/parameters'); - var http = require('http'); var fs = require('fs'); +var logger = require('../logsystem/main.js'); -/* +/* * Função que processa o vídeo (seja baixando, seja pegando o vídeo enviado) * Deve retornar um objeto contendo o nome e o caminho */ @@ -15,12 +15,13 @@ function downloadAndMoveVideo(folder, req, locals, callback) { // Se a validação falhar if (parameters.checkVideo(req.files.video.name) === false) { var error = 'Vídeo enviado com extensão inválida'; + logger.incrementError("2"); return callback(error); - } + } /* Move o vídeo submetido para a pasta com o seu ID correspondente */ try { - fs.renameSync(req.files.video.path, folder + '/' + req.files.video.name); + fs.renameSync(req.files.video.path, folder + '/' + req.files.video.name); } catch (err) { callback("Erro ao mover o vídeo submetido: " + err); } @@ -70,9 +71,9 @@ function downloadAndMoveVideo(folder, req, locals, callback) { locals.video = { 'path': path } - + // Chama o callback para prosseguir execução - callback(); + callback(); }); }); @@ -89,7 +90,7 @@ function downloadAndMoveVideo(folder, req, locals, callback) { } } -/* +/* * Função que processa a legenda (seja baixando, seja pegando o vídeo enviado) * Deve retornar um objeto contendo o nome e o caminho */ @@ -101,12 +102,13 @@ function downloadAndMoveSubtitle(folder, req, locals, callback) { // Se a validação falhar if (parameters.checkSubtitle(req.files.legenda.name) === false) { var error = 'Legenda enviado com extensão inválida'; + logger.incrementError("3"); return callback(error); - } + } /* Move o vídeo submetido para a pasta com o seu ID correspondente */ try { - fs.renameSync(req.files.legenda.path, folder + '/' + req.files.legenda.name); + fs.renameSync(req.files.legenda.path, folder + '/' + req.files.legenda.name); } catch (err) { callback("Erro ao mover a legenda submetida: " + err); } @@ -156,9 +158,9 @@ function downloadAndMoveSubtitle(folder, req, locals, callback) { locals.subtitle = { 'path': path } - + // Chama o callback para prosseguir execução - callback(); + callback(); }); }); @@ -184,11 +186,11 @@ function downloadAndMoveAudio(folder, req, locals, callback) { if (parameters.checkAudio(req.files.audio.name) === false) { var error = 'Áudio enviado com extensão inválida'; return callback(error); - } + } /* Move o áudio submetido para a pasta com o seu ID correspondente */ try { - fs.renameSync(req.files.audio.path, folder + '/' + req.files.audio.name); + fs.renameSync(req.files.audio.path, folder + '/' + req.files.audio.name); } catch (err) { callback("Erro ao mover o áudio submetido: " + err); } @@ -238,9 +240,9 @@ function downloadAndMoveAudio(folder, req, locals, callback) { locals.audio = { 'path': path } - + // Chama o callback para prosseguir execução - callback(); + callback(); }); }); @@ -259,4 +261,4 @@ function downloadAndMoveAudio(folder, req, locals, callback) { module.exports.downloadAndMoveVideo = downloadAndMoveVideo; module.exports.downloadAndMoveSubtitle = downloadAndMoveSubtitle; -module.exports.downloadAndMoveAudio = downloadAndMoveAudio; \ No newline at end of file +module.exports.downloadAndMoveAudio = downloadAndMoveAudio; diff --git a/server.js b/server.js index 6ee357c..3caed98 100755 --- a/server.js +++ b/server.js @@ -16,6 +16,7 @@ var app = express(); var Request = require('./db/schemas/request').init(mongoose); var db = require('./db/api'); var config = require('./config/main.js'); +var logger = require('./logsystem/main.js'); var kue = require('kue'); var queue = kue.createQueue(); @@ -39,26 +40,33 @@ app.post('/api', function(req, res) { switch(req.body.servico) { /* Tipo de Serviço: Texto */ case 'texto': + logger.incrementService("outros", "requisicoes"); ep_texto.init(req, res, Request); break; /* Tipo de Serviço: iOS */ case 'ios': + logger.incrementService("outros", "requisicoes"); ep_ios.init(req, res); break; /* Tipo de Serviço: Só o Vídeo */ case 'video': + logger.incrementService("videos", "requisicoes"); ep_video.init(req, res); + // logger.incrementService("videos", "traducoes"); break; /* Tipo de Serviço: Só a Legenda */ case 'legenda': + logger.incrementService("outros", "requisicoes"); ep_legenda.init(req, res); + break; /* Tipo de Serviço: Video + Legenda */ case 'video-legenda': + logger.incrementService("outros", "requisicoes"); ep_video_legenda.init(req, res); break; @@ -92,6 +100,12 @@ app.post('/glosa', function(req, res) { }); }); +app.get('/incrementaerro', function(req, res) { + logger.incrementError("1", "detalhe do erro"); + // logger.incrementService("videos", "traducoes"); + res.send(200, "Incrementado"); +}); + app.get('/limparfila', function(req, res) { // graceful shutdown -- libgit2 0.21.2