Sha256: 3bf451a6715391e8b29b38e6dd4498eb2e175c9488e6d8d95f5283cde4ebcb6c

Contents?: true

Size: 1.39 KB

Versions: 5

Compression:

Stored size: 1.39 KB

Contents

module Gateway

  class TransactionReportFile
    def TransactionReportFileParser(file_to_parse)
      response = {}
      response['CreditCardTransaction'] = []
      response['OnlineDebitTransaction'] = []
      response['BoletoTransaction'] = []

      header_parser = HeaderParser.new
      credit_card_parser = CreditCardTransactionParser.new
      boleto_parser = BoletoTransactionParser.new
      online_debit_parser = OnlineDebitTransactionParser.new
      trailer_parser = TrailerParser.new

      begin
        response_splited = file_to_parse.split("\n")

        response_splited.each do |item|

          to_parse_item = item.split(',')
          if to_parse_item[0] == '01'
            response['Header'] = header_parser.Parse(to_parse_item)
          end

          if to_parse_item[0] == '20'
            response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
          end

          if to_parse_item[0] == '40'
            response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
          end

          if to_parse_item[0] == '30'
            response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
          end

          if to_parse_item[0] == '99'
            response['Trailer'] = trailer_parser.Parse(to_parse_item)
          end
        end
      rescue Exception => err
        return err
      end
      return response
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
mundipagg_sdk-1.4.1 lib/gateway/transaction_report_file.rb
stone_ecommerce-1.4.0 lib/gateway/transaction_report_file.rb
mundipagg_sdk-1.4.0 lib/gateway/transaction_report_file.rb
stone_ecommerce-1.3.0 lib/gateway/transaction_report_file.rb
stone_ecommerce-1.2.3 lib/gateway/transaction_report_file.rb