Pessoal,
boa tarde!
ao executar :
curl http://localhost:3000/pagamentos/pagamento - X POST -v -H "Content-type: application/json" -d @files/pagamento.json
está dando o erro: upload completely sent off: 316 out of 316 bytes http 400 bad request no chunk, no close, no size. assume close to signal end
custom-express.js
var express = require('express');
var consign = require('consign');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');
module.exports = function(){
var app=express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use (expressValidator());
consign()
.include('controllers')
.then('persistencia')
.then('servicos')
.into(app);
return app;
}
pagamentos.js
module.exports = function(app){ app.get('/pagamentos',function(req,res){ console.log('recebida requisicao de teste na porta 3000.'); res.send('OK.');
}); app.delete('/pagamentos/pagamento/:id',function(req,res){ var pagamento = {}; var id = req.params.id;
pagamento.id =id;
pagamento.status = 'CANCELADO';
var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);
pagamentoDao.atualiza(pagamento, function(erro){
if (erro){
res.status(500).send(erro);
return;
}
console.log('pagamento cancelado');
res.STATUS(204).send(pagamento);
});
}); app.put('/pagamentos/pagamento/:id',function(req,res){
var pagamento = {};
var id = req.params.id;
pagamento.id =id;
pagamento.status = 'CONFIRMADO';
var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);
pagamentoDao.atualiza(pagamento, function(erro){
if (erro){
res.status(500).send(erro);
return;
}
console.log('pagamento confirmado');
res.send(pagamento);
});
});
app.post('/pagamentos/pagamento',function(req,res){
req.assert("pagamento.forma_de_pagamento","Forma de pagamento eh obrigatorio").notEmpty();
req.assert("pagamento.valor","Valor eh obrigatorio e decimal").notEmpty().isFloat();
var erros = req.validationErrors();
if(erros){
console.log('Erros de validação encontrados');
res.status(400).send(erros);
return;
}
var pagamento =req.body["pagamento"];
console.log('processando pagamento');
pagamento.status = 'CRIADO';
pagamento.data = new Date;
var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);
pagamentoDao.salva(pagamento,function(erro,resultado){
if(erro) {
console.log ("Erro ao inserir no banco " + erro);
res.stataus(500).send(erro);
}else {
pagamento.id = resultado.insertId;
console.log('pagamento criado');
if(pagamento.forma_de_pagamento =='cartao'){
var cartao = req.body["cartao"];
console.log('cartao');
var clienteCartoes = new app.servicos.clienteCartoes();
clienteCartoes.autoriza(cartao,function(exception,request,response,retorno){
console.log('retorno');
res.status(201).json(retorno);
return;
});
}else {
res.location('/pagamentos/pagamento/' + pagamento.id);
var response = {
dados_do_pagamento: pagamento,
links:[
{
href:" http://localhost:3000/pagamentos/pagamento/" +
pagamento.id,
rel:"confirmar",
method:"PUT"
},
{
href:" http://localhost:3000/pagamentos/pagamento/" +
pagamento.id,
rel:"cancelar",
method:"DELETE"
}
]
}
res.status(201).json(response);
}
}
});
}); } clienteCartoes.js
var restify = require('restify');
function CartoesClient(){
this._cliente = restify.createJsonClient({
url:'http://localhost:3001'
});
}
CartoesClient.prototype.autoriza = function(cartao,callback){
this._cliente.post('/cartoes/autoriza',cartao,callback );
}
module.exports = function(){
return CartoesClient;
}