Com relação a aula três, consumindo serviço REST.
Estou com a seguinte dificuldade, ao invocar o serviço de pagamento por cartão no arquivo pagamentos.js
estoura o seguinte erro:
processando pagamento...
pagamento criado: [object Object]
{ numero: '1234567890123456',
bandeira: 'VISA',
ano_de_expiracao: '2020',
mes_de_expiracao: '12',
cvv: '12' }
/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/Parser.js:80
throw err; // Rethrow non-MySQL errors
^
TypeError: app.servicos.CartoesClient is not a constructor
at Query._callback (/home/zezinho/Documentos/dev_estudo/payfast/controllers/pagamentos.js:85:42)
at Query.Sequence.end (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
at Query._handleFinalResultPacket (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/sequences/Query.js:139:8)
at Query.OkPacket (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/sequences/Query.js:72:10)
at Protocol._parsePacket (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/Protocol.js:279:23)
at Parser.write (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/Parser.js:76:12)
at Protocol.write (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/zezinho/Documentos/dev_estudo/payfast/node_modules/mysql/lib/Connection.js:103:28)
at Socket.emit (events.js:160:13)
at addChunk (_stream_readable.js:269:12)
Meu arquivo pagamentos.js:
if (pagamento.forma_de_pagamento == 'cartao') {
var cartao = req.body["cartao"];
console.log(cartao);
var clienteCartoes = new app.servicos.CartoesClient;
clienteCartoes.autoriza(cartao,
function (exception, request, response, retorno) {
if (exception) {
console.log(exception);
res.status(400).send(exception);
return;
}
console.log(retorno);
res.location('/pagamentos/pagamento/' + pagamento.id);
var response = {
dados_do_pagamanto: pagamento,
cartao: retorno,
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);
return;
A linha de criação do pagamento
var clienteCartoes = new app.servicos.CartoesClient;
Também já foi testada assim:
var clienteCartoes = new app.servicos.CartoesClient();
O clienteCartoes.js se enncontra assim:
var clients = require('restify-clients');
function CartoesClient() {
this._client = clients.createJsonClient({
url: 'http://localhost:3001',
version: '~1.0'
});
}
CartoesClient.prototype.autoriza = function(cartao, callback) {
this._client.post('/cartoes/autoriza', cartao, callback);
}
module.exports = function() {
return CartoesClient;
};
A linha do module exports já foi testada também da seguinte forma:
module.exports = CartoesClient;
Alguma idéia do de que está acontecendo?