paypal-sdk-rest 1.7.4 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -14
- data/README.md +45 -251
- data/lib/lib.rb +88 -0
- data/lib/paypal/core/access_token.rb +20 -0
- data/lib/paypal/core/paypal_environment.rb +38 -0
- data/lib/paypal/core/paypal_http_client.rb +51 -0
- data/lib/paypal/core/token_requests.rb +40 -0
- data/lib/paypal/core/version.rb +3 -0
- data/lib/v1/billing_agreements/agreement_bill_balance_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_cancel_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_create_request.rb +33 -0
- data/lib/v1/billing_agreements/agreement_execute_request.rb +31 -0
- data/lib/v1/billing_agreements/agreement_get_request.rb +31 -0
- data/lib/v1/billing_agreements/agreement_re_activate_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_set_balance_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_suspend_request.rb +35 -0
- data/lib/v1/billing_agreements/agreement_transactions_request.rb +41 -0
- data/lib/v1/billing_agreements/agreement_update_request.rb +35 -0
- data/lib/v1/billing_plans/plan_create_request.rb +33 -0
- data/lib/v1/billing_plans/plan_get_request.rb +31 -0
- data/lib/v1/billing_plans/plan_list_request.rb +49 -0
- data/lib/v1/billing_plans/plan_update_request.rb +35 -0
- data/lib/v1/identity/user_consent.rb +45 -0
- data/lib/v1/identity/userinfo_get_request.rb +33 -0
- data/lib/v1/invoices/invoice_cancel_request.rb +35 -0
- data/lib/v1/invoices/invoice_create_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_external_payment_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_external_refund_request.rb +33 -0
- data/lib/v1/invoices/invoice_delete_request.rb +31 -0
- data/lib/v1/invoices/invoice_get_request.rb +31 -0
- data/lib/v1/invoices/invoice_list_request.rb +44 -0
- data/lib/v1/invoices/invoice_next_invoice_number_request.rb +29 -0
- data/lib/v1/invoices/invoice_qr_code_request.rb +46 -0
- data/lib/v1/invoices/invoice_record_payment_request.rb +35 -0
- data/lib/v1/invoices/invoice_record_refund_request.rb +35 -0
- data/lib/v1/invoices/invoice_remind_request.rb +35 -0
- data/lib/v1/invoices/invoice_search_request.rb +33 -0
- data/lib/v1/invoices/invoice_send_request.rb +36 -0
- data/lib/v1/invoices/invoice_update_request.rb +40 -0
- data/lib/v1/invoices/template_create_request.rb +33 -0
- data/lib/v1/invoices/template_delete_request.rb +31 -0
- data/lib/v1/invoices/template_get_request.rb +31 -0
- data/lib/v1/invoices/template_list_request.rb +34 -0
- data/lib/v1/invoices/template_update_request.rb +35 -0
- data/lib/v1/orders/orders_cancel_request.rb +31 -0
- data/lib/v1/orders/orders_create_request.rb +33 -0
- data/lib/v1/orders/orders_get_request.rb +31 -0
- data/lib/v1/orders/orders_pay_request.rb +35 -0
- data/lib/v1/payment_experience/web_profile_create_request.rb +33 -0
- data/lib/v1/payment_experience/web_profile_delete_request.rb +31 -0
- data/lib/v1/payment_experience/web_profile_get_request.rb +31 -0
- data/lib/v1/payment_experience/web_profile_list_request.rb +29 -0
- data/lib/v1/payment_experience/web_profile_partial_update_request.rb +35 -0
- data/lib/v1/payment_experience/web_profile_update_request.rb +35 -0
- data/lib/v1/payments/authorization_capture_request.rb +35 -0
- data/lib/v1/payments/authorization_get_request.rb +31 -0
- data/lib/v1/payments/authorization_reauthorize_request.rb +35 -0
- data/lib/v1/payments/authorization_void_request.rb +31 -0
- data/lib/v1/payments/capture_get_request.rb +31 -0
- data/lib/v1/payments/capture_refund_request.rb +35 -0
- data/lib/v1/payments/order_authorize_request.rb +35 -0
- data/lib/v1/payments/order_capture_request.rb +35 -0
- data/lib/v1/payments/order_get_request.rb +31 -0
- data/lib/v1/payments/order_void_request.rb +31 -0
- data/lib/v1/payments/payment_create_request.rb +33 -0
- data/lib/v1/payments/payment_execute_request.rb +35 -0
- data/lib/v1/payments/payment_get_request.rb +31 -0
- data/lib/v1/payments/payment_list_request.rb +69 -0
- data/lib/v1/payments/payment_update_request.rb +35 -0
- data/lib/v1/payments/refund_get_request.rb +31 -0
- data/lib/v1/payments/sale_get_request.rb +31 -0
- data/lib/v1/payments/sale_refund_request.rb +35 -0
- data/lib/v1/sync/search_get_request.rb +99 -0
- data/lib/v1/vault/credit_card_create_request.rb +33 -0
- data/lib/v1/vault/credit_card_delete_request.rb +31 -0
- data/lib/v1/vault/credit_card_get_request.rb +31 -0
- data/lib/v1/vault/credit_card_list_request.rb +79 -0
- data/lib/v1/vault/credit_card_update_request.rb +35 -0
- data/lib/v1/webhooks/available_event_type_list_request.rb +29 -0
- data/lib/v1/webhooks/event_get_request.rb +31 -0
- data/lib/v1/webhooks/event_list_request.rb +54 -0
- data/lib/v1/webhooks/event_resend_request.rb +35 -0
- data/lib/v1/webhooks/simulate_event_request.rb +33 -0
- data/lib/v1/webhooks/webhook_create_request.rb +33 -0
- data/lib/v1/webhooks/webhook_delete_request.rb +31 -0
- data/lib/v1/webhooks/webhook_get_request.rb +31 -0
- data/lib/v1/webhooks/webhook_list_event_subscriptions_request.rb +31 -0
- data/lib/v1/webhooks/webhook_list_request.rb +34 -0
- data/lib/v1/webhooks/webhook_update_request.rb +35 -0
- data/lib/v1/webhooks/webhook_verify_signature_request.rb +33 -0
- data/spec/integration/test_harness.rb +25 -0
- data/spec/integration/v1/billing_agreements/agreement_create_spec.rb +63 -0
- data/spec/integration/v1/billing_plans/plan_create_spec.rb +12 -0
- data/spec/integration/v1/billing_plans/plan_get_spec.rb +16 -0
- data/spec/integration/v1/billing_plans/plan_helper.rb +71 -0
- data/spec/integration/v1/billing_plans/plan_list_spec.rb +16 -0
- data/spec/integration/v1/billing_plans/plan_update_spec.rb +19 -0
- data/spec/integration/v1/identity/userinfo_get_spec.rb +65 -0
- data/spec/integration/v1/invoices/invoice_cancel_spec.rb +23 -0
- data/spec/integration/v1/invoices/invoice_create_spec.rb +15 -0
- data/spec/integration/v1/invoices/invoice_delete_external_payment_spec.rb +23 -0
- data/spec/integration/v1/invoices/invoice_delete_external_refund_spec.rb +21 -0
- data/spec/integration/v1/invoices/invoice_delete_spec.rb +16 -0
- data/spec/integration/v1/invoices/invoice_get_spec.rb +18 -0
- data/spec/integration/v1/invoices/invoice_helper.rb +171 -0
- data/spec/integration/v1/invoices/invoice_list_spec.rb +20 -0
- data/spec/integration/v1/invoices/invoice_next_invoice_number_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_qr_code_spec.rb +18 -0
- data/spec/integration/v1/invoices/invoice_record_payment_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_record_refund_spec.rb +14 -0
- data/spec/integration/v1/invoices/invoice_remind_spec.rb +22 -0
- data/spec/integration/v1/invoices/invoice_search_spec.rb +20 -0
- data/spec/integration/v1/invoices/invoice_send_spec.rb +15 -0
- data/spec/integration/v1/invoices/invoice_update_spec.rb +26 -0
- data/spec/integration/v1/invoices/template_create_spec.rb +14 -0
- data/spec/integration/v1/invoices/template_delete_spec.rb +15 -0
- data/spec/integration/v1/invoices/template_get_spec.rb +18 -0
- data/spec/integration/v1/invoices/template_list_spec.rb +15 -0
- data/spec/integration/v1/invoices/template_update_spec.rb +62 -0
- data/spec/integration/v1/orders/orders_cancel_spec.rb +15 -0
- data/spec/integration/v1/orders/orders_create_spec.rb +17 -0
- data/spec/integration/v1/orders/orders_get_spec.rb +18 -0
- data/spec/integration/v1/orders/orders_helper.rb +36 -0
- data/spec/integration/v1/orders/orders_pay_spec.rb +19 -0
- data/spec/integration/v1/payment_experience/pe_helper.rb +35 -0
- data/spec/integration/v1/payment_experience/web_profile_create_spec.rb +20 -0
- data/spec/integration/v1/payment_experience/web_profile_delete_spec.rb +15 -0
- data/spec/integration/v1/payment_experience/web_profile_get_spec.rb +17 -0
- data/spec/integration/v1/payment_experience/web_profile_list_spec.rb +18 -0
- data/spec/integration/v1/payment_experience/web_profile_partial_update_spec.rb +32 -0
- data/spec/integration/v1/payment_experience/web_profile_update_spec.rb +44 -0
- data/spec/integration/v1/payments/authorization_capture_spec.rb +17 -0
- data/spec/integration/v1/payments/authorization_get_spec.rb +18 -0
- data/spec/integration/v1/payments/authorization_reauthorize_spec.rb +26 -0
- data/spec/integration/v1/payments/authorization_void_spec.rb +19 -0
- data/spec/integration/v1/payments/capture_get_spec.rb +20 -0
- data/spec/integration/v1/payments/capture_refund_spec.rb +27 -0
- data/spec/integration/v1/payments/order_authorize_spec.rb +20 -0
- data/spec/integration/v1/payments/order_capture_spec.rb +21 -0
- data/spec/integration/v1/payments/order_get_spec.rb +14 -0
- data/spec/integration/v1/payments/order_void_spec.rb +14 -0
- data/spec/integration/v1/payments/payment_create_spec.rb +13 -0
- data/spec/integration/v1/payments/payment_execute_spec.rb +19 -0
- data/spec/integration/v1/payments/payment_get_spec.rb +17 -0
- data/spec/integration/v1/payments/payment_list_spec.rb +16 -0
- data/spec/integration/v1/payments/payment_update_spec.rb +28 -0
- data/spec/integration/v1/payments/payments_helper.rb +72 -0
- data/spec/integration/v1/payments/refund_get_spec.rb +19 -0
- data/spec/integration/v1/payments/sale_get_spec.rb +18 -0
- data/spec/integration/v1/payments/sale_refund_spec.rb +18 -0
- data/spec/integration/v1/sync/search_get_spec.rb +34 -0
- data/spec/integration/v1/vault/credit_card_create_spec.rb +16 -0
- data/spec/integration/v1/vault/credit_card_delete_spec.rb +16 -0
- data/spec/integration/v1/vault/credit_card_get_spec.rb +17 -0
- data/spec/integration/v1/vault/credit_card_list_spec.rb +18 -0
- data/spec/integration/v1/vault/credit_card_update_spec.rb +26 -0
- data/spec/integration/v1/vault/vault_helper.rb +28 -0
- data/spec/integration/v1/webhooks/available_event_type_list_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_create_spec.rb +12 -0
- data/spec/integration/v1/webhooks/webhook_delete_spec.rb +13 -0
- data/spec/integration/v1/webhooks/webhook_get_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_helper.rb +43 -0
- data/spec/integration/v1/webhooks/webhook_list_event_subscriptions_spec.rb +16 -0
- data/spec/integration/v1/webhooks/webhook_list_spec.rb +15 -0
- data/spec/integration/v1/webhooks/webhook_update_spec.rb +29 -0
- data/spec/integration/v1/webhooks/webhook_verify_signature_spec.rb +20 -0
- data/spec/spec_helper.rb +97 -28
- data/spec/unit/paypal_http_client_spec.rb +264 -0
- metadata +250 -120
- data/Rakefile +0 -15
- data/data/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/data/DigiCertSHA2ExtendedValidationServerCA.pem +0 -28
- data/data/paypal.crt +0 -171
- data/lib/generators/paypal/sdk/USAGE +0 -3
- data/lib/generators/paypal/sdk/install_generator.rb +0 -17
- data/lib/generators/paypal/sdk/templates/paypal.rb +0 -2
- data/lib/generators/paypal/sdk/templates/paypal.yml +0 -29
- data/lib/paypal-sdk-core.rb +0 -38
- data/lib/paypal-sdk-rest.rb +0 -2
- data/lib/paypal-sdk/core/api.rb +0 -20
- data/lib/paypal-sdk/core/api/base.rb +0 -169
- data/lib/paypal-sdk/core/api/data_types/array_with_block.rb +0 -44
- data/lib/paypal-sdk/core/api/data_types/base.rb +0 -225
- data/lib/paypal-sdk/core/api/data_types/enum.rb +0 -26
- data/lib/paypal-sdk/core/api/data_types/simple_types.rb +0 -52
- data/lib/paypal-sdk/core/api/ipn.rb +0 -66
- data/lib/paypal-sdk/core/api/rest.rb +0 -177
- data/lib/paypal-sdk/core/authentication.rb +0 -66
- data/lib/paypal-sdk/core/config.rb +0 -253
- data/lib/paypal-sdk/core/credential.rb +0 -16
- data/lib/paypal-sdk/core/credential/base.rb +0 -27
- data/lib/paypal-sdk/core/credential/certificate.rb +0 -32
- data/lib/paypal-sdk/core/credential/signature.rb +0 -22
- data/lib/paypal-sdk/core/credential/third_party/subject.rb +0 -25
- data/lib/paypal-sdk/core/credential/third_party/token.rb +0 -39
- data/lib/paypal-sdk/core/exceptions.rb +0 -112
- data/lib/paypal-sdk/core/logging.rb +0 -50
- data/lib/paypal-sdk/core/openid_connect.rb +0 -140
- data/lib/paypal-sdk/core/openid_connect/api.rb +0 -50
- data/lib/paypal-sdk/core/openid_connect/data_types.rb +0 -73
- data/lib/paypal-sdk/core/openid_connect/get_api.rb +0 -28
- data/lib/paypal-sdk/core/openid_connect/request_data_type.rb +0 -52
- data/lib/paypal-sdk/core/openid_connect/set_api.rb +0 -36
- data/lib/paypal-sdk/core/util.rb +0 -11
- data/lib/paypal-sdk/core/util/http_helper.rb +0 -171
- data/lib/paypal-sdk/core/util/oauth_signature.rb +0 -64
- data/lib/paypal-sdk/core/util/ordered_hash.rb +0 -165
- data/lib/paypal-sdk/rest.rb +0 -39
- data/lib/paypal-sdk/rest/api.rb +0 -23
- data/lib/paypal-sdk/rest/data_types.rb +0 -2597
- data/lib/paypal-sdk/rest/error_hash.rb +0 -39
- data/lib/paypal-sdk/rest/get_api.rb +0 -20
- data/lib/paypal-sdk/rest/request_data_type.rb +0 -53
- data/lib/paypal-sdk/rest/set_api.rb +0 -42
- data/lib/paypal-sdk/rest/version.rb +0 -7
- data/spec/README.md +0 -22
- data/spec/config/cacert.pem +0 -171
- data/spec/config/cert_key.pem +0 -33
- data/spec/config/paypal.yml +0 -35
- data/spec/config/sample_data.yml +0 -3
- data/spec/core/api/data_type_spec.rb +0 -289
- data/spec/core/api/rest_spec.rb +0 -211
- data/spec/core/config_spec.rb +0 -192
- data/spec/core/logging_spec.rb +0 -28
- data/spec/core/openid_connect_spec.rb +0 -153
- data/spec/invoice_examples_spec.rb +0 -38
- data/spec/payments_examples_spec.rb +0 -437
- data/spec/payouts_examples_spec.rb +0 -74
- data/spec/rest/data_types_spec.rb +0 -62
- data/spec/rest/error_hash_spec.rb +0 -83
- data/spec/subscription_examples_spec.rb +0 -227
- data/spec/support/sample_data.rb +0 -5
- data/spec/web_profile_examples_spec.rb +0 -106
- data/spec/webhooks_examples_spec.rb +0 -93
@@ -0,0 +1,72 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
|
3
|
+
include PayPal::V1::Payments
|
4
|
+
|
5
|
+
module PaymentsHelper
|
6
|
+
class << self
|
7
|
+
FAKE_ID = 'O-2FK09787H36911800'
|
8
|
+
|
9
|
+
def create_auth_capture(auth_id)
|
10
|
+
body = {
|
11
|
+
:amount => {
|
12
|
+
:total => '10',
|
13
|
+
:currency => 'USD'
|
14
|
+
},
|
15
|
+
:is_final_capture => true
|
16
|
+
}
|
17
|
+
|
18
|
+
TestHarness::exec(AuthorizationCaptureRequest.new(auth_id), body)
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_payment(intent, payment_method='credit_card', invoice_number=nil)
|
22
|
+
body = {
|
23
|
+
:intent => intent,
|
24
|
+
:transactions => [{
|
25
|
+
:amount => {
|
26
|
+
:total => '10',
|
27
|
+
:currency => 'USD',
|
28
|
+
}
|
29
|
+
}],
|
30
|
+
:redirect_urls => {
|
31
|
+
:cancel_url => 'http://example.com/cancel',
|
32
|
+
:return_url => 'http://example.com/return',
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
if invoice_number
|
37
|
+
body[:transactions][0][:invoice_number] = invoice_number
|
38
|
+
end
|
39
|
+
|
40
|
+
if payment_method == 'credit_card'
|
41
|
+
body[:payer] = {
|
42
|
+
:payment_method => 'credit_card',
|
43
|
+
:funding_instruments => [{
|
44
|
+
:credit_card => {
|
45
|
+
:billing_address => {
|
46
|
+
:line1 => '123 example ave',
|
47
|
+
:line2 => 'apt 4',
|
48
|
+
:city => 'Anytown',
|
49
|
+
:state => 'CA',
|
50
|
+
:postal_code => '12345',
|
51
|
+
:country_code => 'US'
|
52
|
+
},
|
53
|
+
:cvv2 => '617',
|
54
|
+
:expire_month => 1,
|
55
|
+
:expire_year => 2020,
|
56
|
+
:first_name => 'Joe',
|
57
|
+
:last_name => 'Shopper',
|
58
|
+
:type => 'visa',
|
59
|
+
:number => '4422009910903049'
|
60
|
+
}
|
61
|
+
}]
|
62
|
+
}
|
63
|
+
else
|
64
|
+
body[:payer] = {
|
65
|
+
:payment_method => 'paypal'
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
TestHarness::exec(PaymentCreateRequest.new, body)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './payments_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Payments
|
5
|
+
|
6
|
+
describe RefundGetRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_response = PaymentsHelper::create_payment('sale')
|
9
|
+
sale_id = create_response.result.transactions[0].related_resources[0].sale.id
|
10
|
+
|
11
|
+
refund_response = TestHarness::exec(SaleRefundRequest.new(sale_id), {})
|
12
|
+
request = RefundGetRequest.new(refund_response.result.id)
|
13
|
+
|
14
|
+
resp = TestHarness::client.execute(request)
|
15
|
+
|
16
|
+
expect(resp.status_code).to eq(200)
|
17
|
+
expect(resp.result).not_to be_nil
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './payments_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Payments
|
5
|
+
|
6
|
+
describe SaleGetRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_response = PaymentsHelper::create_payment('sale')
|
9
|
+
sale_id = create_response.result.transactions[0].related_resources[0].sale.id
|
10
|
+
|
11
|
+
request = SaleGetRequest.new(sale_id)
|
12
|
+
resp = TestHarness::client.execute(request)
|
13
|
+
|
14
|
+
expect(resp.status_code).to eq(200)
|
15
|
+
expect(resp.result).not_to be_nil
|
16
|
+
expect(resp.result.id).to eq(sale_id)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './payments_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Payments
|
5
|
+
|
6
|
+
describe SaleRefundRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_response = PaymentsHelper::create_payment('sale')
|
9
|
+
sale_id = create_response.result.transactions[0].related_resources[0].sale.id
|
10
|
+
|
11
|
+
request = SaleRefundRequest.new(sale_id)
|
12
|
+
request.request_body({})
|
13
|
+
|
14
|
+
resp = TestHarness::client.execute(request)
|
15
|
+
expect(resp.status_code).to eq(201)
|
16
|
+
expect(resp.result).not_to be_nil
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
|
3
|
+
include PayPal::V1::Sync
|
4
|
+
|
5
|
+
describe SearchGetRequest do
|
6
|
+
it 'retreives a specific transaction' do
|
7
|
+
txn_id = '4LJ583775B2362642'
|
8
|
+
req = SearchGetRequest.new
|
9
|
+
|
10
|
+
req.transaction_id(txn_id)
|
11
|
+
|
12
|
+
search_response = TestHarness::client.execute(req)
|
13
|
+
expect(search_response.status_code).to eq(200)
|
14
|
+
expect(search_response.result).not_to be_nil
|
15
|
+
|
16
|
+
result = search_response.result
|
17
|
+
expect(result.transaction_details).not_to be_nil
|
18
|
+
expect(result.total_items).to eq(1)
|
19
|
+
|
20
|
+
expect(result.transaction_details[0].transaction_info.transaction_id).to eq(txn_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'retreives a range of transactions' do
|
24
|
+
request = SearchGetRequest.new()
|
25
|
+
request.start_date("2018-01-22T00:00:00+00:00")
|
26
|
+
request.end_date("2018-01-23T00:00:00+00:00")
|
27
|
+
|
28
|
+
resp = TestHarness::client.execute(request)
|
29
|
+
|
30
|
+
expect(resp.status_code).to eq(200)
|
31
|
+
expect(resp.result).not_to be_nil
|
32
|
+
expect(resp.result.transaction_details.count).to eq(77)
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './vault_helper'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
include PayPal::V1::Vault
|
6
|
+
|
7
|
+
describe CreditCardCreateRequest do
|
8
|
+
it 'successfully makes a request' do
|
9
|
+
resp = VaultHelper::create_card
|
10
|
+
|
11
|
+
expect(resp.status_code).to eq(201)
|
12
|
+
expect(resp.result).not_to be_nil
|
13
|
+
|
14
|
+
expect(resp.result.type).to eq('visa')
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './vault_helper'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
include PayPal::V1::Vault
|
6
|
+
|
7
|
+
describe CreditCardDeleteRequest do
|
8
|
+
it 'successfully makes a request' do
|
9
|
+
create_resp = VaultHelper::create_card
|
10
|
+
|
11
|
+
request = CreditCardDeleteRequest.new(create_resp.result.id)
|
12
|
+
|
13
|
+
resp = TestHarness::client.execute(request)
|
14
|
+
expect(resp.status_code).to eq(204)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './vault_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Vault
|
5
|
+
|
6
|
+
describe CreditCardGetRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_resp = VaultHelper::create_card
|
9
|
+
request = CreditCardGetRequest.new(create_resp.result.id)
|
10
|
+
|
11
|
+
resp = TestHarness::client.execute(request)
|
12
|
+
expect(resp.status_code).to eq(200)
|
13
|
+
expect(resp.result).not_to be_nil
|
14
|
+
|
15
|
+
expect(resp.result.id).to eq(create_resp.result.id)
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './vault_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Vault
|
5
|
+
|
6
|
+
describe CreditCardListRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
VaultHelper::create_card
|
9
|
+
|
10
|
+
request = CreditCardListRequest.new()
|
11
|
+
|
12
|
+
resp = TestHarness::client.execute(request)
|
13
|
+
|
14
|
+
expect(resp.status_code).to eq(200)
|
15
|
+
expect(resp.result).not_to be_nil
|
16
|
+
expect(resp.result.items.count > 0).to be(true)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './vault_helper'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
include PayPal::V1::Vault
|
6
|
+
|
7
|
+
describe CreditCardUpdateRequest do
|
8
|
+
it 'successfully makes a request' do
|
9
|
+
create_resp = VaultHelper::create_card
|
10
|
+
|
11
|
+
request = CreditCardUpdateRequest.new(create_resp.result.id)
|
12
|
+
request.request_body([{
|
13
|
+
:op => 'add',
|
14
|
+
:path => '/billing_address/line1',
|
15
|
+
:value => '53 N Main st'
|
16
|
+
}])
|
17
|
+
|
18
|
+
resp = TestHarness::client.execute(request)
|
19
|
+
expect(resp.status_code).to eq(200)
|
20
|
+
expect(resp.result).not_to be_nil
|
21
|
+
|
22
|
+
get_resp = TestHarness::exec(CreditCardGetRequest.new(create_resp.result.id))
|
23
|
+
|
24
|
+
expect(get_resp.result.billing_address.line1).to eq('53 N Main st')
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
|
3
|
+
include PayPal::V1::Vault
|
4
|
+
|
5
|
+
module VaultHelper
|
6
|
+
class << self
|
7
|
+
def create_card
|
8
|
+
body = {
|
9
|
+
:number => '4417119669820331',
|
10
|
+
:type => 'visa',
|
11
|
+
:expire_month => '11',
|
12
|
+
:expire_year => '2055',
|
13
|
+
:first_name => 'Joe',
|
14
|
+
:last_name => 'Shopper',
|
15
|
+
:billing_address => {
|
16
|
+
:line1 => '123 main st',
|
17
|
+
:city => 'San Francisco',
|
18
|
+
:country_code => 'US',
|
19
|
+
:postal_code => '94117',
|
20
|
+
:state => 'CA',
|
21
|
+
:phone => '123-456-7890'
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
TestHarness::exec(CreditCardCreateRequest.new(), body)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe AvailableEventTypeListRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
request = AvailableEventTypeListRequest.new()
|
9
|
+
|
10
|
+
resp = TestHarness::client.execute(request)
|
11
|
+
expect(resp.status_code).to eq(200)
|
12
|
+
expect(resp.result).not_to be_nil
|
13
|
+
expect(resp.result.event_types).not_to be_nil
|
14
|
+
expect(resp.result.event_types.count > 0).to be(true)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookCreateRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
resp = WebhookHelper::create_webhook
|
9
|
+
expect(resp.status_code).to eq(201)
|
10
|
+
expect(resp.result).not_to be_nil
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookDeleteRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_resp = WebhookHelper::create_webhook
|
9
|
+
|
10
|
+
resp = WebhookHelper::delete_webhook(create_resp.result.id)
|
11
|
+
expect(resp.status_code).to eq(204)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookGetRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_resp = WebhookHelper::create_webhook
|
9
|
+
request = WebhookGetRequest.new(create_resp.result.id)
|
10
|
+
|
11
|
+
resp = TestHarness::client.execute(request)
|
12
|
+
expect(resp.status_code).to eq(200)
|
13
|
+
expect(resp.result).not_to be_nil
|
14
|
+
expect(resp.result.id).to eq(create_resp.result.id)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
|
3
|
+
include PayPal::V1::Webhooks
|
4
|
+
|
5
|
+
module WebhookHelper
|
6
|
+
class << self
|
7
|
+
def create_webhook
|
8
|
+
delete_all_webhooks
|
9
|
+
|
10
|
+
url = "https://example.com/webook_#{Random.new.rand(1000)}"
|
11
|
+
body = {
|
12
|
+
:url => url,
|
13
|
+
:event_types => [
|
14
|
+
{
|
15
|
+
:name => 'PAYMENT.AUTHORIZATION.CREATED',
|
16
|
+
},
|
17
|
+
{
|
18
|
+
:name => 'PAYMENT.AUTHORIZATION.VOIDED',
|
19
|
+
},
|
20
|
+
]
|
21
|
+
}
|
22
|
+
|
23
|
+
TestHarness::exec(WebhookCreateRequest.new, body)
|
24
|
+
end
|
25
|
+
|
26
|
+
def delete_all_webhooks
|
27
|
+
list_resp = TestHarness::exec(WebhookListRequest.new)
|
28
|
+
|
29
|
+
list_resp.result.webhooks.each do |webhook|
|
30
|
+
begin
|
31
|
+
delete_webhook(webhook.id)
|
32
|
+
puts "Deleted webhook #{webhook.id}"
|
33
|
+
rescue Exception => e
|
34
|
+
puts "Failed to delete webhook #{webhook.id}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete_webhook(id)
|
40
|
+
TestHarness::exec(WebhookDeleteRequest.new(id))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookListEventSubscriptionsRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_resp = WebhookHelper::create_webhook
|
9
|
+
request = WebhookListEventSubscriptionsRequest.new(create_resp.result.id)
|
10
|
+
resp = TestHarness::client.execute(request)
|
11
|
+
|
12
|
+
expect(resp.status_code).to eq(200)
|
13
|
+
expect(resp.result).not_to be_nil
|
14
|
+
expect(resp.result.event_types.count).to eq(2)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookListRequest do
|
7
|
+
it 'successfully makes a request' do
|
8
|
+
create_resp = WebhookHelper::create_webhook
|
9
|
+
list_resp = TestHarness::exec(WebhookListRequest.new)
|
10
|
+
|
11
|
+
expect(list_resp.status_code).to eq(200)
|
12
|
+
expect(list_resp.result).not_to be_nil
|
13
|
+
expect(list_resp.result.webhooks.count).to eq(1)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative '../../test_harness'
|
2
|
+
require_relative './webhook_helper'
|
3
|
+
|
4
|
+
include PayPal::V1::Webhooks
|
5
|
+
|
6
|
+
describe WebhookUpdateRequest do
|
7
|
+
def build_request_body
|
8
|
+
return JSON.parse('{"from":"JTZh8uy7C 4idz4I","op":"hFua8SzJ27wJPh1KUgw","path":"xPyhuQ0fuQzyeKz","value":{}}')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'successfully makes a request' do
|
12
|
+
create_resp = WebhookHelper::create_webhook
|
13
|
+
|
14
|
+
url = 'https://example.com/new'
|
15
|
+
request = WebhookUpdateRequest.new(create_resp.result.id)
|
16
|
+
request.request_body([{
|
17
|
+
:op => 'replace',
|
18
|
+
:path => '/url',
|
19
|
+
:value => url
|
20
|
+
}])
|
21
|
+
|
22
|
+
resp = TestHarness::client.execute(request)
|
23
|
+
expect(resp.status_code).to eq(200)
|
24
|
+
expect(resp.result).not_to be_nil
|
25
|
+
|
26
|
+
get_resp = TestHarness::exec(WebhookGetRequest.new(create_resp.result.id))
|
27
|
+
expect(get_resp.result.url).to eq('https://example.com/new')
|
28
|
+
end
|
29
|
+
end
|