henkm/docdata

View on GitHub
lib/docdata.rb

Summary

Maintainability
A
0 mins
Test Coverage
# Libraries
require 'ostruct'
require 'rails'
require 'savon'
require 'active_support/dependencies'
require 'active_support'
require 'open-uri'
require 'nokogiri'
require 'veto'


#  Files
require "docdata/version"
require "docdata/config"
require "docdata/engine" if defined?(Rails) && Rails::VERSION::MAJOR.to_i >= 3
require "docdata/docdata_error"
require "docdata/shopper"
require "docdata/payment"
require "docdata/refund"
require "docdata/line_item"
require "docdata/response"
require "docdata/ideal"
require "docdata/bank"

include Savon

# 
# Docdata Module
# 
module Docdata
  API_VERSION = 1

  # # @return [String] Your DocData username
  # # @note The is a required parameter.
  # mattr_accessor :username
  # @@username = nil

  # # @return [String] Your DocData password
  # mattr_accessor :password
  # @@password = nil

  # # @return [Boolean] Test mode switch
  # mattr_accessor :test_mode
  # @@test_mode = true

  # # @param [String] Set the url of your website where docdata can send messages to
  # mattr_accessor :return_url
  # @@return_url = nil

  # returns the version number
  def self.version
    VERSION
  end 

  # sets up configuration
  def self.setup
    yield self
  end

  def self.url
    if Config.test_mode
      "https://test.docdatapayments.com/ps/services/paymentservice/1_1?wsdl"
    else
      # "https://www.docdatapayments.com/ps/services/paymentservice/1_1?wsdl"
      # "https://secure.docdatapayments.com/ps/services/paymentservice/1_0?wsdl"
      "https://secure.docdatapayments.com/ps/services/paymentservice/1_1?wsdl"
    end
  end

  # For testing purpose only: set the username and password
  # in environment variables to make the tests pass with your test
  # credentials.
  def self.set_credentials_from_environment
    Config.password   = ENV["DOCDATA_PASSWORD"]
    Config.username   = ENV["DOCDATA_USERNAME"]
    Config.return_url = ENV["DOCDATA_RETURN_URL"]
  end

  def self.client
    Savon.client(wsdl: url)
  end

end