iugu / iugu-node

iugu - Biblioteca para Node
33 stars 37 forks source link

Accounts request_verification #13

Open embarbosa opened 8 years ago

embarbosa commented 8 years ago

Ola Pessoal, Boa noite!

Gostaria de saber como faço para passar o AccountId no resource Accounts, método request_verification.

Alguém pode me passar um exemplo que funcione?

Muito obrigado.

vinone commented 8 years ago

var url = "https://" + URL_DA_API_DO_IUGU + "accounts/" + accountId + "/request_verification";

Depois faça um POST para essa URL passando os parametros especificados aqui: https://iugu.com/referencias/api#enviar-verificação-de-sub-conta

embarbosa commented 8 years ago

Vinicius,

Você está me dizendo para não usar a lib, correto?

No caso estava fazendo teste utilizando a lib.

Você precisou fazer criação e verificação de subconta? Se sim, pode compartilhar o código?

Muito obrigado

On May 17, 2016, at 08:14, Vinicius Mesquita notifications@github.com wrote:

var url = "https://" + URL_DA_API_DO_IUGU + "accounts/" + accountId + "/request_verification";

Depois faça um POST para essa URL passando os parametros especificados aqui: https://iugu.com/referencias/api#enviar-verificação-de-sub-conta

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub

vinone commented 8 years ago

@embarbosa sim, essa parte eu fiz fora da lib.

O código tem muitas referencias a outras lib que uso, mas a estrutura base é essa:

                ...
        requestVerification: function(accountId, userToken, model){         
            var accountVerification = {...}; // Cria o objeto com os parametros da doc

            return getFile(accountVerification["files[id]"])
                .then(function(file){
                    accountVerification["files[id]"] = file;
                    return getFile(accountVerification["files[activity]"]);
                })
                .then(function(file) {
                    accountVerification["files[activity]"] = file;
                    return true;
                })
                .then(function(){
                    var url = "https://" + integration._api.host + integration._api.basePath + "accounts/" + accountId + "/request_verification";

                                     //Fiz a request usando CURL devido a problemas com o envio nos arquivos
                                    //estava quebrando o encoding
                    return low_level_request(userToken, url, accountVerification);
                });
        }
embarbosa commented 8 years ago

Vinicius,

Este método, low_level_request, pode compartilhar o código? Muito obrigado.

On Tue, May 17, 2016 at 8:52 AM, Vinicius Mesquita <notifications@github.com

wrote:

@embarbosa https://github.com/embarbosa sim, essa parte eu fiz fora da lib.

O código tem muitas referencias a outras lib que uso, mas a estrutura base é essa:

            ...
    requestVerification: function(accountId, userToken, model){
        var accountVerification = {...}; // Cria o objeto com os parametros da doc

        return getFile(accountVerification["files[id]"])
            .then(function(file){
                accountVerification["files[id]"] = file;
                return getFile(accountVerification["files[activity]"]);
            })
            .then(function(file) {
                accountVerification["files[activity]"] = file;
                return true;
            })
            .then(function(){
                var url = "https://" + integration._api.host + integration._api.basePath + "accounts/" + accountId + "/request_verification";

                                 //Fiz a request usando CURL devido a problemas com o envio nos arquivos
                                //estava quebrando o encoding
                return low_level_request(userToken, url, accountVerification);
            });
    }

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/iugu/iugu-node/issues/13#issuecomment-219695498

embarbosa commented 8 years ago

Ahhhh e se possível, me explique o que é integration._api.basePath no seu código.

Muito obrigado

2016-05-17 11:50 GMT-03:00 Eduardo Moreira Barbosa < eduardomoreira.net@gmail.com>:

Vinicius,

Este método, low_level_request, pode compartilhar o código? Muito obrigado.

On Tue, May 17, 2016 at 8:52 AM, Vinicius Mesquita < notifications@github.com> wrote:

@embarbosa https://github.com/embarbosa sim, essa parte eu fiz fora da lib.

O código tem muitas referencias a outras lib que uso, mas a estrutura base é essa:

            ...
    requestVerification: function(accountId, userToken, model){
        var accountVerification = {...}; // Cria o objeto com os parametros da doc

        return getFile(accountVerification["files[id]"])
            .then(function(file){
                accountVerification["files[id]"] = file;
                return getFile(accountVerification["files[activity]"]);
            })
            .then(function(file) {
                accountVerification["files[activity]"] = file;
                return true;
            })
            .then(function(){
                var url = "https://" + integration._api.host + integration._api.basePath + "accounts/" + accountId + "/request_verification";

                                 //Fiz a request usando CURL devido a problemas com o envio nos arquivos
                                //estava quebrando o encoding
                return low_level_request(userToken, url, accountVerification);
            });
    }

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/iugu/iugu-node/issues/13#issuecomment-219695498

vinone commented 8 years ago

@embarbosa essa function faz uso de child process para enviar os documentos, por isso te aconselho a utilizá-la com cautela, eu fiz isso dentro de um contexto totalmente gerenciado

function low_level_request(userToken, url, data){
        var _ = require("underscore");
        var Q = require('q');
        var template = "curl <%= url %> -u <%= userToken %>:'' ";
        var arg = "-F '<%= key %>=<%= val %>'";
        var params = [_.template(template, {"url": url ,"userToken": userToken})];
        var exec = Q.denodeify(require('child_process').exec);
        var quotesLess = /'/g;
        var allowedQuote = "´";

        function cleaner(text){
            if(typeof text === 'string'){
                return text.replace(quotesLess, allowedQuote);
            }
        };

        Object.keys(data).forEach(function(key){
            params.push(_.template(arg, {"key": key, "val": cleaner(data[key])}));
        });

        return exec(params.join(" "));
    }

A variavel "integration._api.basePath" significa a versão da API que estou usando, no caso "/v1"