Sha256: 07305ff826ab695fdf410c020b8eb37afcdf8892629d6e7e3da18b64ba8b0d29

Contents?: true

Size: 1.29 KB

Versions: 4

Compression:

Stored size: 1.29 KB

Contents

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

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
stone_ecommerce-1.0.3 lib/gateway/transaction_report_file.rb
mundipagg_sdk-1.0.3 lib/gateway/transaction_report_file.rb
stone_ecommerce-1.0.2 lib/gateway/transaction_report_file.rb
stone_ecommerce-1.0.0 lib/gateway/transaction_report_file.rb