revo-remit 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/LICENSE +20 -0
  2. data/README.markdown +122 -0
  3. data/lib/remit.rb +132 -0
  4. data/lib/remit/common.rb +151 -0
  5. data/lib/remit/data_types.rb +265 -0
  6. data/lib/remit/error_codes.rb +118 -0
  7. data/lib/remit/get_pipeline.rb +286 -0
  8. data/lib/remit/inbound_request.rb +85 -0
  9. data/lib/remit/ipn_request.rb +8 -0
  10. data/lib/remit/operations/cancel.rb +20 -0
  11. data/lib/remit/operations/cancel_subscription_and_refund.rb +26 -0
  12. data/lib/remit/operations/cancel_token.rb +19 -0
  13. data/lib/remit/operations/fund_prepaid.rb +33 -0
  14. data/lib/remit/operations/get_account_activity.rb +31 -0
  15. data/lib/remit/operations/get_account_balance.rb +32 -0
  16. data/lib/remit/operations/get_all_credit_instruments.rb +20 -0
  17. data/lib/remit/operations/get_all_prepaid_instruments.rb +20 -0
  18. data/lib/remit/operations/get_debt_balance.rb +28 -0
  19. data/lib/remit/operations/get_outstanding_debt_balance.rb +25 -0
  20. data/lib/remit/operations/get_payment_instruction.rb +23 -0
  21. data/lib/remit/operations/get_prepaid_balance.rb +27 -0
  22. data/lib/remit/operations/get_recipient_verification_status.rb +25 -0
  23. data/lib/remit/operations/get_token_by_caller.rb +23 -0
  24. data/lib/remit/operations/get_token_usage.rb +22 -0
  25. data/lib/remit/operations/get_tokens.rb +24 -0
  26. data/lib/remit/operations/get_total_prepaid_liability.rb +26 -0
  27. data/lib/remit/operations/get_transaction.rb +18 -0
  28. data/lib/remit/operations/get_transaction_status.rb +28 -0
  29. data/lib/remit/operations/install_payment_instruction.rb +29 -0
  30. data/lib/remit/operations/pay.rb +31 -0
  31. data/lib/remit/operations/refund.rb +46 -0
  32. data/lib/remit/operations/reserve.rb +28 -0
  33. data/lib/remit/operations/settle.rb +21 -0
  34. data/lib/remit/operations/settle_debt.rb +28 -0
  35. data/lib/remit/operations/subscribe_for_caller_notification.rb +20 -0
  36. data/lib/remit/operations/unsubscribe_for_caller_notification.rb +19 -0
  37. data/lib/remit/operations/write_off_debt.rb +26 -0
  38. data/lib/remit/pipeline_response.rb +20 -0
  39. data/lib/remit/signature_utils_for_outbound.rb +74 -0
  40. data/lib/remit/verify_signature.rb +21 -0
  41. data/spec/integrations/get_account_activity_spec.rb +42 -0
  42. data/spec/integrations/get_tokens_spec.rb +39 -0
  43. data/spec/integrations/integrations_helper.rb +15 -0
  44. data/spec/integrations/ipn_request_spec.rb +40 -0
  45. data/spec/integrations/pipeline_response_spec.rb +27 -0
  46. data/spec/integrations/verify_signature_spec.rb +140 -0
  47. data/spec/mocks/CancelResponse.xml +13 -0
  48. data/spec/mocks/CancelSubscriptionAndRefundResponse.xml +10 -0
  49. data/spec/mocks/CancelTokenResponse.xml +6 -0
  50. data/spec/mocks/ErrorResponse.xml +15 -0
  51. data/spec/mocks/FundPrepaidResponse.xml +11 -0
  52. data/spec/mocks/GetAccountActivityResponse.xml +68 -0
  53. data/spec/mocks/GetAccountBalanceResponse.xml +34 -0
  54. data/spec/mocks/GetDebtBalanceResponse.xml +21 -0
  55. data/spec/mocks/GetOutstandingDebtBalanceResponse.xml +21 -0
  56. data/spec/mocks/GetPaymentInstructionResponse.xml +25 -0
  57. data/spec/mocks/GetPrepaidBalanceResponse.xml +21 -0
  58. data/spec/mocks/GetRecipientVerificationStatusResponse.xml +9 -0
  59. data/spec/mocks/GetTokenByCallerResponse.xml +22 -0
  60. data/spec/mocks/GetTokenUsageResponse.xml +28 -0
  61. data/spec/mocks/GetTokensResponse.xml +22 -0
  62. data/spec/mocks/GetTotalPrepaidLiabilityResponse.xml +21 -0
  63. data/spec/mocks/GetTransactionResponse.xml +76 -0
  64. data/spec/mocks/GetTransactionStatusResponse.xml +16 -0
  65. data/spec/mocks/InstallPaymentInstructionResponse.xml +10 -0
  66. data/spec/mocks/PayResponse.xml +11 -0
  67. data/spec/mocks/RefundResponse.xml +11 -0
  68. data/spec/mocks/ReserveResponse.xml +11 -0
  69. data/spec/mocks/SettleDebtResponse.xml +11 -0
  70. data/spec/mocks/SettleResponse.xml +11 -0
  71. data/spec/mocks/VerifySignatureResponse.xml +11 -0
  72. data/spec/mocks/WriteOffDebtResponse.xml +11 -0
  73. data/spec/mocks/errors/InvalidParameterValue.xml +10 -0
  74. data/spec/mocks/errors/InvalidParams_certificateUrl.xml +2 -0
  75. data/spec/mocks/errors/RequestExpired.xml +10 -0
  76. data/spec/spec_helper.rb +85 -0
  77. data/spec/units/cancel_subscription_and_refund_spec.rb +29 -0
  78. data/spec/units/cancel_token_spec.rb +24 -0
  79. data/spec/units/fund_prepaid_spec.rb +28 -0
  80. data/spec/units/get_account_activity_spec.rb +58 -0
  81. data/spec/units/get_account_balance_spec.rb +28 -0
  82. data/spec/units/get_debt_balance_spec.rb +29 -0
  83. data/spec/units/get_outstanding_debt_balance_spec.rb +29 -0
  84. data/spec/units/get_pipeline_spec.rb +181 -0
  85. data/spec/units/get_prepaid_balance_spec.rb +29 -0
  86. data/spec/units/get_recipient_verification_status_spec.rb +26 -0
  87. data/spec/units/get_token_by_caller_spec.rb +56 -0
  88. data/spec/units/get_token_usage_spec.rb +51 -0
  89. data/spec/units/get_tokens_spec.rb +56 -0
  90. data/spec/units/get_total_prepaid_liability_spec.rb +26 -0
  91. data/spec/units/get_transaction_spec.rb +103 -0
  92. data/spec/units/get_transaction_status_spec.rb +44 -0
  93. data/spec/units/pay_spec.rb +112 -0
  94. data/spec/units/refund_spec.rb +41 -0
  95. data/spec/units/reserve_spec.rb +41 -0
  96. data/spec/units/settle_debt_spec.rb +41 -0
  97. data/spec/units/settle_spec.rb +41 -0
  98. data/spec/units/units_helper.rb +25 -0
  99. data/spec/units/write_off_debt_spec.rb +41 -0
  100. metadata +236 -0
@@ -0,0 +1,8 @@
1
+ module Remit
2
+
3
+ class IpnRequest < InboundRequest
4
+ # signature key name
5
+ SIGNATURE_KEY = 'signature'
6
+ end
7
+
8
+ end
@@ -0,0 +1,20 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module Cancel
5
+ class Request < Remit::Request
6
+ action :Cancel
7
+ parameter :transaction_id, :required => true
8
+ parameter :description
9
+ end
10
+
11
+ class Response < Remit::Response
12
+ parser :rexml
13
+ parameter :cancel_response, :type => Remit::TransactionResponse
14
+ end
15
+
16
+ def cancel(request = Request.new)
17
+ call(request, Response)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ require 'remit/common'
2
+
3
+ # This operation is used by Amazon Simple Pay.
4
+ module Remit
5
+ module CancelSubscriptionAndRefund
6
+ class Request < Remit::Request
7
+ action :CancelSubscriptionAndRefund
8
+ parameter :caller_reference, :required => true
9
+ parameter :cancel_reason
10
+ parameter :refund_amount, :type => Remit::RequestTypes::Amount
11
+ parameter :subscription_id, :required => true
12
+ end
13
+
14
+ class Response < Remit::Response
15
+ class CancelSubscriptionAndRefundResult < Remit::BaseResponse
16
+ parameter :refund_transaction_id
17
+ end
18
+ parameter :cancel_subscription_and_refund_result, :type=>CancelSubscriptionAndRefundResult
19
+ parameter :response_metadata, :type=>ResponseMetadata
20
+ end
21
+
22
+ def cancel_subscription_and_refund(request = Request.new)
23
+ call(request, Response)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module CancelToken
5
+ class Request < Remit::Request
6
+ action :CancelToken
7
+ parameter :token_id, :required => true
8
+ parameter :reason_text
9
+ end
10
+
11
+ class Response < Remit::Response
12
+ parameter :response_metadata, :type=>ResponseMetadata
13
+ end
14
+
15
+ def cancel_token(request = Request.new)
16
+ call(request, Response)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module FundPrepaid
5
+ class Request < Remit::Request
6
+ action :FundPrepaid
7
+ parameter :transaction_ids
8
+ parameter :caller_description
9
+ parameter :caller_reference, :required => true
10
+ parameter :charge_fee_to, :required => true
11
+ parameter :funding_amount, :type => Remit::RequestTypes::Amount, :required => true
12
+ parameter :prepaid_instrument_id, :required => true
13
+ parameter :recipient_reference
14
+ parameter :sender_description
15
+ parameter :sender_reference
16
+ parameter :sender_token_id, :required => true
17
+ parameter :transaction_date
18
+ end
19
+
20
+ class Response < Remit::Response
21
+ class FundPrepaidResult < Remit::BaseResponse
22
+ parameter :transaction_id
23
+ parameter :transaction_status
24
+ end
25
+ parameter :fund_prepaid_result, :type => FundPrepaidResult
26
+ parameter :response_metadata, :type=>ResponseMetadata
27
+ end
28
+
29
+ def fund_prepaid(request = Request.new)
30
+ call(request, Response)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,31 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetAccountActivity
5
+ class Request < Remit::Request
6
+ action :GetAccountActivity
7
+ parameter :start_date, :required => true
8
+ parameter :end_date
9
+ parameter :max_batch_size
10
+ parameter :sort_order_by_date
11
+ parameter :response_group
12
+ parameter :operation
13
+ parameter :payment_method
14
+ parameter :role
15
+ parameter :status
16
+ end
17
+
18
+ class Response < Remit::Response
19
+ class GetAccountActivityResult < Remit::BaseResponse
20
+ parameter :batch_size
21
+ parameter :transactions, :collection => Transaction, :element=>"Transaction"
22
+ parameter :start_time_for_next_transaction, :type => :time
23
+ end
24
+ parameter :get_account_activity_result, :type => GetAccountActivityResult
25
+ end
26
+
27
+ def get_account_activity(request = Request.new)
28
+ call(request, Response)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetAccountBalance
5
+ class Request < Remit::Request
6
+ action :GetAccountBalance
7
+ end
8
+
9
+ class Response < Remit::Response
10
+ class GetAccountBalanceResult < Remit::BaseResponse
11
+ class AccountBalance < Remit::BaseResponse
12
+ class AvailableBalances < Remit::BaseResponse
13
+ parameter :disburse_balance, :type => Amount
14
+ parameter :refund_balance, :type => Amount
15
+ end
16
+
17
+ parameter :total_balance, :type => Amount
18
+ parameter :pending_in_balance, :type => Amount
19
+ parameter :pending_out_balance, :type => Amount
20
+ parameter :available_balances, :type => AvailableBalances
21
+ end
22
+ parameter :account_balance, :type=>AccountBalance
23
+ end
24
+ parameter :get_account_balance_result, :type => GetAccountBalanceResult
25
+ parameter :response_metadata, :type=>ResponseMetadata
26
+ end
27
+
28
+ def get_account_balance(request = Request.new)
29
+ call(request, Response)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ require 'remit/common'
2
+
3
+ #This action seems to have been deprecated
4
+
5
+ module Remit
6
+ module GetAllCreditInstruments
7
+ class Request < Remit::Request
8
+ action :GetAllCreditInstruments
9
+ parameter :instrument_status
10
+ end
11
+
12
+ class Response < Remit::Response
13
+ parameter :credit_instrument_ids
14
+ end
15
+
16
+ def get_all_credit_instruments(request = Request.new)
17
+ call(request, Response)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'remit/common'
2
+
3
+ #This action seems to have been deprecated
4
+
5
+ module Remit
6
+ module GetAllPrepaidInstruments
7
+ class Request < Remit::Request
8
+ action :GetAllPrepaidInstruments
9
+ parameter :instrument_status
10
+ end
11
+
12
+ class Response < Remit::Response
13
+ parameter :prepaid_instrument_ids
14
+ end
15
+
16
+ def get_all_prepaid_instruments(request = Request.new)
17
+ call(request, Response)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetDebtBalance
5
+ class Request < Remit::Request
6
+ action :GetDebtBalance
7
+ parameter :credit_instrument_id, :required => true
8
+ end
9
+
10
+ class Response < Remit::Response
11
+ class GetDebtBalanceResult < Remit::BaseResponse
12
+ class DebtBalance < Remit::BaseResponse
13
+ parameter :available_balance, :type => Amount
14
+ parameter :pending_out_balance, :type => Amount
15
+ end
16
+ parameter :debt_balance, :type => DebtBalance
17
+ end
18
+
19
+ parameter :get_debt_balance_result, :type => GetDebtBalanceResult
20
+ parameter :response_metadata, :type=>ResponseMetadata
21
+
22
+ end
23
+
24
+ def get_debt_balance(request = Request.new)
25
+ call(request, Response)
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetOutstandingDebtBalance
5
+ class Request < Remit::Request
6
+ action :GetOutStandingDebtBalance
7
+ end
8
+
9
+ class Response < Remit::Response
10
+ class GetOutstandingDebtBalanceResult < Remit::BaseResponse
11
+ class OutstandingDebtBalance < Remit::BaseResponse
12
+ parameter :outstanding_balance, :type => Amount
13
+ parameter :pending_out_balance, :type => Amount
14
+ end
15
+ parameter :outstanding_debt, :type => OutstandingDebtBalance
16
+ end
17
+ parameter :get_outstanding_debt_balance_result, :type => GetOutstandingDebtBalanceResult
18
+ parameter :response_metadata, :type=>ResponseMetadata
19
+ end
20
+
21
+ def get_outstanding_debt_balance(request = Request.new)
22
+ call(request, Response)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ require 'remit/common'
2
+
3
+ #This actions seems to have been deprecated
4
+
5
+ module Remit
6
+ module GetPaymentInstruction
7
+ class Request < Remit::Request
8
+ action :GetPaymentInstruction
9
+ parameter :token_id, :required => true
10
+ end
11
+
12
+ class Response < Remit::Response
13
+ parameter :token, :type => Token
14
+ parameter :payment_instruction
15
+ parameter :account_id
16
+ parameter :token_friendly_name
17
+ end
18
+
19
+ def get_payment_instruction(request = Request.new)
20
+ call(request, Response)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetPrepaidBalance
5
+ class Request < Remit::Request
6
+ action :GetPrepaidBalance
7
+ parameter :prepaid_instrument_id, :required => true
8
+ end
9
+
10
+ class Response < Remit::Response
11
+ class GetPrepaidBalanceResult < Remit::BaseResponse
12
+ class PrepaidBalance < Remit::BaseResponse
13
+ parameter :available_balance, :type => Amount
14
+ parameter :pending_in_balance, :type => Amount
15
+ end
16
+
17
+ parameter :prepaid_balance, :type => PrepaidBalance
18
+ end
19
+ parameter :get_prepaid_balance_result, :type=>GetPrepaidBalanceResult
20
+ parameter :response_metadata, :type=>ResponseMetadata
21
+ end
22
+
23
+ def get_prepaid_balance(request = Request.new)
24
+ call(request, Response)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,25 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetRecipientVerificationStatus
5
+ class Request < Remit::Request
6
+ action :GetRecipientVerificationStatus
7
+ parameter :recipient_token_id, :required => true
8
+ end
9
+
10
+ class Response < Remit::Response
11
+ parser :rexml
12
+ class GetRecipientVerificationStatusResult < Remit::BaseResponse
13
+ parameter :recipient_verification_status
14
+ end
15
+
16
+ parameter :get_recipient_verification_status_result, :type => GetRecipientVerificationStatusResult
17
+ parameter :response_metadata, :type=>ResponseMetadata
18
+
19
+ end
20
+
21
+ def get_recipient_verification_status(request = Request.new)
22
+ call(request, Response)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetTokenByCaller
5
+ class Request < Remit::Request
6
+ action :GetTokenByCaller
7
+ parameter :caller_reference
8
+ parameter :token_id
9
+ end
10
+
11
+ class Response < Remit::Response
12
+ class GetTokenByCallerResult < Remit::BaseResponse
13
+ parameter :token, :type => Token
14
+ end
15
+ parameter :get_token_by_caller_result, :type=>GetTokenByCallerResult
16
+ parameter :response_metadata, :type=>ResponseMetadata
17
+ end
18
+
19
+ def get_token_by_caller(request = Request.new)
20
+ call(request, Response)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetTokenUsage
5
+ class Request < Remit::Request
6
+ action :GetTokenUsage
7
+ parameter :token_id, :required => true
8
+ end
9
+
10
+ class Response < Remit::Response
11
+ class GetTokenUsageResult < Remit::BaseResponse
12
+ parameter :token_usage_limits, :type => TokenUsageLimit
13
+ end
14
+ parameter :get_token_usage_result, :type=>GetTokenUsageResult
15
+ parameter :response_metadata, :type=>ResponseMetadata
16
+ end
17
+
18
+ def get_token_usage(request = Request.new)
19
+ call(request, Response)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetTokens
5
+ class Request < Remit::Request
6
+ action :GetTokens
7
+ parameter :caller_reference
8
+ parameter :token_friendly_name
9
+ parameter :token_status
10
+ end
11
+
12
+ class Response < Remit::Response
13
+ class GetTokensResult < Remit::BaseResponse
14
+ parameter :tokens, :element => 'Token', :collection => Remit::Token
15
+ end
16
+ parameter :get_tokens_result, :type=>GetTokensResult
17
+ parameter :response_metadata, :type=>ResponseMetadata
18
+ end
19
+
20
+ def get_tokens(request = Request.new)
21
+ call(request, Response)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ require 'remit/common'
2
+
3
+ module Remit
4
+ module GetTotalPrepaidLiability
5
+ class Request < Remit::Request
6
+ action :GetTotalPrepaidLiability
7
+ end
8
+
9
+ class Response < Remit::Response
10
+ class GetTotalPrepaidLiabilityResult < Remit::BaseResponse
11
+ class OutstandingPrepaidLiability < Remit::BaseResponse
12
+ parameter :outstanding_balance, :type => Amount
13
+ parameter :panding_in_balance, :type => Amount
14
+ end
15
+
16
+ parameter :outstanding_prepaid_liability, :type => OutstandingPrepaidLiability
17
+ end
18
+ parameter :get_total_prepaid_liability_result, :type=>GetTotalPrepaidLiabilityResult
19
+ parameter :response_metadata, :type=>ResponseMetadata
20
+ end
21
+
22
+ def get_total_prepaid_liability(request = Request.new)
23
+ call(request, Response)
24
+ end
25
+ end
26
+ end