lib/cieloz/builder.rb in cieloz-0.0.13 vs lib/cieloz/builder.rb in cieloz-0.0.14

- old
+ new

@@ -1,96 +1,40 @@ module Cieloz module Builder def portador source, opts={} - num, val, cod, nome = attrs_from source, opts, - :numero, :validade, :codigo_seguranca, :nome_portador - - RequisicaoTransacao::DadosPortador.new numero: num, - validade: val, codigo_seguranca: cod, nome_portador: nome + RequisicaoTransacao::DadosPortador.map source, opts end def pedido source, opts={} - mappings = attrs_from source, opts, :numero, :valor, - :descricao, :data_hora, :moeda, :idioma, :soft_descriptor - - num, val, desc, time, cur, lang, soft = mappings - val = (val * 100).round unless val.nil? or val.integer? - - time ||= Time.now - cur ||= Cieloz::Configuracao.moeda - lang ||= Cieloz::Configuracao.idioma - soft ||= Cieloz::Configuracao.soft_descriptor - - RequisicaoTransacao::DadosPedido.new data_hora: time, - numero: num, valor: val, moeda: cur, idioma: lang, - descricao: desc, soft_descriptor: soft + RequisicaoTransacao::DadosPedido.map source, opts end def debito source, opts={} - bandeira = attrs_from source, opts, :bandeira - RequisicaoTransacao::FormaPagamento.new.credito bandeira + RequisicaoTransacao::FormaPagamento.map_debito source, opts end def credito source, opts={} - bandeira = attrs_from source, opts, :bandeira - RequisicaoTransacao::FormaPagamento.new.credito bandeira + RequisicaoTransacao::FormaPagamento.map_credito source, opts end def parcelado source, opts={} - bandeira, parcelas = attrs_from source, opts, :bandeira, :parcelas - RequisicaoTransacao::FormaPagamento.new.parcelado bandeira, parcelas + RequisicaoTransacao::FormaPagamento.map_parcelado source, opts end def transacao source, opts={} - portador, pedido, pagamento, url, capturar, campo_livre = - attrs_from source, opts, :dados_portador, :dados_pedido, - :forma_pagamento, :url_retorno, :capturar, :campo_livre - - url ||= Cieloz::Configuracao.url_retorno - - txn = RequisicaoTransacao.new dados_portador: portador, - dados_pedido: pedido, forma_pagamento: pagamento, - campo_livre: campo_livre, url_retorno: url, - dados_ec: Cieloz::Configuracao.credenciais - - capturar ||= Cieloz::Configuracao.captura_automatica - - case capturar.to_s - when 'true' then txn.capturar_automaticamente - else txn.nao_capturar_automaticamente - end - - txn.send pagamento.metodo_autorizacao - - txn + RequisicaoTransacao.map source, opts end def consulta source, opts={} - tid = attrs_from source, opts, :tid - RequisicaoConsulta.new tid: tid + RequisicaoConsulta.map source, opts end def captura source, opts={} - tid, valor = attrs_from source, opts, :tid, :valor - RequisicaoCaptura.new tid: tid, valor: valor + RequisicaoCaptura.map source, opts end def cancelamento source, opts={} - tid, valor = attrs_from source, opts, :tid, :valor - RequisicaoCancelamento.new tid: tid, valor: valor - end - - private - def attrs_from source, opts, *keys - attrs = keys.map { |k| - value_or_attr_name = opts[k] || k - if value_or_attr_name.is_a? Symbol - source.send value_or_attr_name if source.respond_to? value_or_attr_name - else - value_or_attr_name - end - } - attrs.count == 1 ? attrs.first : attrs + RequisicaoCancelamento.map source, opts end end extend Builder end