mangopay 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +24 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +1 -2
  5. data/LICENSE +20 -0
  6. data/README.md +19 -90
  7. data/bin/mangopay +9 -0
  8. data/lib/generators/mangopay/install_generator.rb +60 -0
  9. data/lib/generators/templates/mangopay.rb +5 -0
  10. data/lib/mangopay.rb +94 -24
  11. data/lib/mangopay/bank_account.rb +21 -0
  12. data/lib/mangopay/client.rb +17 -0
  13. data/lib/mangopay/errors.rb +4 -0
  14. data/lib/mangopay/http_calls.rb +53 -0
  15. data/lib/mangopay/json.rb +21 -0
  16. data/lib/mangopay/legal_user.rb +14 -0
  17. data/lib/mangopay/natural_user.rb +14 -0
  18. data/lib/mangopay/payin.rb +17 -0
  19. data/lib/mangopay/payout.rb +15 -0
  20. data/lib/mangopay/resource.rb +22 -0
  21. data/lib/mangopay/transaction.rb +11 -0
  22. data/lib/mangopay/transfer.rb +4 -55
  23. data/lib/mangopay/user.rb +4 -145
  24. data/lib/mangopay/version.rb +3 -0
  25. data/lib/mangopay/wallet.rb +4 -90
  26. data/mangopay.gemspec +33 -0
  27. data/spec/lib/mangopay/bank_account_spec.rb +26 -0
  28. data/spec/lib/mangopay/client_spec.rb +27 -0
  29. data/spec/lib/mangopay/payin_spec.rb +31 -0
  30. data/spec/lib/mangopay/payout_spec.rb +24 -0
  31. data/spec/lib/mangopay/shared_resources.rb +183 -0
  32. data/spec/lib/mangopay/transaction_spec.rb +14 -0
  33. data/spec/lib/mangopay/transfer_spec.rb +25 -81
  34. data/spec/lib/mangopay/user_spec.rb +37 -103
  35. data/spec/lib/mangopay/wallet_spec.rb +24 -73
  36. data/spec/spec_helper.rb +9 -38
  37. metadata +60 -97
  38. data/CONTRIBUTING.md +0 -51
  39. data/Rakefile +0 -5
  40. data/lib/mangopay/beneficiary.rb +0 -72
  41. data/lib/mangopay/card.rb +0 -42
  42. data/lib/mangopay/contribution.rb +0 -61
  43. data/lib/mangopay/expense.rb +0 -17
  44. data/lib/mangopay/immediate_contribution.rb +0 -58
  45. data/lib/mangopay/operation.rb +0 -16
  46. data/lib/mangopay/recurrent_contribution.rb +0 -62
  47. data/lib/mangopay/ressource.rb +0 -96
  48. data/lib/mangopay/strong_authentication.rb +0 -28
  49. data/lib/mangopay/withdrawal.rb +0 -40
  50. data/lib/mangopay/withdrawal_contribution.rb +0 -32
  51. data/spec/lib/mangopay/beneficiary_spec.rb +0 -124
  52. data/spec/lib/mangopay/card_spec.rb +0 -52
  53. data/spec/lib/mangopay/contribution_spec.rb +0 -65
  54. data/spec/lib/mangopay/expense_spec.rb +0 -10
  55. data/spec/lib/mangopay/immediate_contribution_spec.rb +0 -73
  56. data/spec/lib/mangopay/operation_spec.rb +0 -8
  57. data/spec/lib/mangopay/recurrent_contribution_spec.rb +0 -55
  58. data/spec/lib/mangopay/ressource_spec.rb +0 -5
  59. data/spec/lib/mangopay/strong_authentication_spec.rb +0 -82
  60. data/spec/lib/mangopay/withdrawal_contribution_spec.rb +0 -44
  61. data/spec/lib/mangopay/withdrawal_spec.rb +0 -98
  62. data/spec/support-files/example.pem +0 -49
  63. data/spec/support-files/test_upload.gif +0 -0
  64. data/spec/support-files/test_upload.jpg +0 -0
  65. data/spec/support-files/test_upload.pdf +0 -0
  66. data/spec/support-files/test_upload.png +0 -0
@@ -1,5 +0,0 @@
1
- require_relative '../../spec_helper'
2
-
3
- describe MangoPay::Ressource do
4
- pending "It should test the ressource"
5
- end
@@ -1,82 +0,0 @@
1
- require_relative '../../spec_helper'
2
-
3
- describe MangoPay::StrongAuthentication do
4
-
5
- let(:new_user) {
6
- MangoPay::User.create({
7
- 'Tag' => 'test',
8
- 'Email' => 'my@email.com',
9
- 'FirstName' => 'John',
10
- 'LastName' => 'Doe',
11
- 'CanRegisterMeanOfPayment' => true
12
- })
13
- }
14
-
15
- let(:new_beneficiary) {
16
- MangoPay::Beneficiary.create({
17
- 'Tag' => 'test',
18
- 'UserID' => new_user['ID'],
19
- 'BankAccountOwnerName' => new_user['FirstName'],
20
- 'BankAccountOwnerAddress' => '1 bis cite paradis',
21
- 'BankAccountIBAN' => 'FR76 1790 6000 3200 0833 5232 973',
22
- 'BankAccountBIC' => 'AGRIFRPP879'
23
- })
24
- }
25
-
26
- let(:new_strong_beneficiary_authentication) {
27
- MangoPay::Beneficiary.create_strong_authentication(new_beneficiary['ID'], {
28
- 'Tag' => 'test_beneficiary_strong_authentication'
29
- })
30
- }
31
-
32
- let(:new_strong_user_authentication) {
33
- MangoPay::User.create_strong_authentication(new_user['ID'], {
34
- 'Tag' => 'test_user_strong_authentication'
35
- })
36
- }
37
-
38
- describe "GET" do
39
- it "get the pending strong authentication requests" do
40
- strong_authentication = MangoPay::StrongAuthentication.get
41
- expect(strong_authentication).to be_kind_of(Array)
42
- end
43
- end
44
-
45
- describe "UPLOAD BENEFICIARY" do
46
- it "uploads a PDF file to complete a beneficiary strong authentication request" do
47
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_beneficiary_authentication['UrlRequest'], 'spec/support-files/test_upload.pdf')
48
- expect(document_upload).to be_true
49
- end
50
- it "uploads a JPG file to complete a beneficiary strong authentication request" do
51
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_beneficiary_authentication['UrlRequest'], 'spec/support-files/test_upload.jpg')
52
- expect(document_upload).to be_true
53
- end
54
- it "uploads a PNG file to complete a beneficiary strong authentication request" do
55
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_beneficiary_authentication['UrlRequest'], 'spec/support-files/test_upload.png')
56
- expect(document_upload).to be_true
57
- end
58
- it "uploads a GIF file to complete a beneficiary strong authentication request" do
59
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_beneficiary_authentication['UrlRequest'], 'spec/support-files/test_upload.gif')
60
- expect(document_upload).to be_true
61
- end
62
- end
63
-
64
- describe "UPLOAD USER" do
65
- it "uploads a PDF file to complete a user strong authentication request" do
66
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_user_authentication['UrlRequest'], 'spec/support-files/test_upload.pdf')
67
- expect(document_upload).to be_true
68
- end
69
- it "uploads a JPG file to complete a user strong authentication request" do
70
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_user_authentication['UrlRequest'], 'spec/support-files/test_upload.jpg')
71
- expect(document_upload).to be_true
72
- end
73
- it "uploads a PNG file to complete a user strong authentication request" do
74
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_user_authentication['UrlRequest'], 'spec/support-files/test_upload.png')
75
- expect(document_upload).to be_true
76
- end
77
- it "uploads a GIF file to complete a user strong authentication request" do
78
- document_upload = MangoPay::StrongAuthentication.upload(new_strong_user_authentication['UrlRequest'], 'spec/support-files/test_upload.gif')
79
- expect(document_upload).to be_true
80
- end
81
- end
82
- end
@@ -1,44 +0,0 @@
1
- require_relative '../../spec_helper'
2
-
3
- describe MangoPay::WithdrawalContribution do
4
-
5
- let(:new_user) {
6
- MangoPay::User.create({
7
- 'Tag' => 'test',
8
- 'Email' => 'my@email.com',
9
- 'FirstName' => 'John',
10
- 'LastName' => 'Doe',
11
- 'CanRegisterMeanOfPayment' => true
12
- })
13
- }
14
-
15
- let(:new_wallet) {
16
- MangoPay::Wallet.create({
17
- 'Name' => 'test',
18
- 'Owners' => [ new_user['ID'] ],
19
- 'RaisingGoalAmount' => 10000
20
- })
21
- }
22
-
23
- let(:new_withdrawal_contribution) do
24
- withdrawal_contribution = MangoPay::WithdrawalContribution.create({
25
- 'Tag' => 'test_withdrawal_contribution',
26
- 'UserID' => new_user['ID'],
27
- 'WalletID' => new_wallet['ID'],
28
- 'AmountDeclared' => 1000
29
- })
30
- end
31
-
32
- describe "CREATE" do
33
- it "creates a withdrawal contribution to a shared wallet" do
34
- expect(new_withdrawal_contribution['ID']).not_to be_nil
35
- end
36
- end
37
-
38
- describe "GET" do
39
- it "fetches a withdrawal contribution" do
40
- withdrawal_contribution = MangoPay::WithdrawalContribution.get(new_withdrawal_contribution['ID'])
41
- expect(withdrawal_contribution['ID']).to eq(new_withdrawal_contribution['ID'])
42
- end
43
- end
44
- end
@@ -1,98 +0,0 @@
1
- require_relative '../../spec_helper'
2
-
3
- describe MangoPay::Withdrawal, :type => :feature do
4
-
5
- let(:new_user) {
6
- user = MangoPay::User.create({
7
- 'Tag' => 'test',
8
- 'Email' => 'my@email.com',
9
- 'FirstName' => 'John',
10
- 'LastName' => 'Doe',
11
- 'CanRegisterMeanOfPayment' => true
12
- })
13
- contribution = MangoPay::Contribution.create({
14
- 'Tag' => 'test_contribution',
15
- 'UserID' => user['ID'],
16
- 'WalletID' => 0,
17
- 'Amount' => 10000,
18
- 'ReturnURL' => 'https://leetchi.com'
19
- })
20
- visit(contribution['PaymentURL'])
21
- fill_in('number', :with => '4970100000000154')
22
- fill_in('cvv', :with => '123')
23
- click_button('paybutton')
24
- contribution = MangoPay::Contribution.details(contribution['ID'])
25
- while contribution["IsSucceeded"] == false do
26
- contribution = MangoPay::Contribution.details(contribution['ID'])
27
- end
28
- user
29
- }
30
-
31
- let(:new_beneficiary) {
32
- MangoPay::Beneficiary.create({
33
- 'Tag' => 'test',
34
- 'UserID' => new_user['ID'],
35
- 'BankAccountOwnerName' => new_user['FirstName'],
36
- 'BankAccountOwnerAddress' => '1 bis cite paradis',
37
- 'BankAccountIBAN' => 'FR76 1790 6000 3200 0833 5232 973',
38
- 'BankAccountBIC' => 'AGRIFRPP879'
39
- })
40
- }
41
-
42
- let(:new_withdrawal) {
43
- MangoPay::Withdrawal.create({
44
- 'Tag' => 'test_withdrawal',
45
- 'UserID' => new_user['ID'],
46
- 'WalletID' => 0,
47
- 'Amount' => 2500,
48
- 'BeneficiaryID' => new_beneficiary['ID']
49
- })
50
- }
51
-
52
- describe "CREATE" do
53
- it "create a withdrawal" do
54
- expect(new_withdrawal['ID']).not_to be_nil
55
- expect(new_withdrawal['UserID']).to eq(new_user['ID'])
56
- expect(new_withdrawal['BeneficiaryID']).to eq(new_beneficiary['ID'])
57
- end
58
- it "fails and return a 2001 error code: Invalid withdrawal amount" do
59
- fail_withdrawal = MangoPay::Withdrawal.create({
60
- 'Tag' => 'test_withdrawal',
61
- 'UserID' => new_user['ID'],
62
- 'WalletID' => 0,
63
- 'Amount' => -123,
64
- 'BeneficiaryID' => new_beneficiary['ID']
65
- })
66
- expect(fail_withdrawal['ErrorCode']).to eq(2001)
67
- end
68
- it "fails and return a 2002 error code: Both parameters are specified: Amount and AmountWithoutFees" do
69
- fail_withdrawal = MangoPay::Withdrawal.create({
70
- 'Tag' => 'test_withdrawal',
71
- 'UserID' => new_user['ID'],
72
- 'WalletID' => 0,
73
- 'Amount' => 2500,
74
- 'AmountWithoutFees' => 2500,
75
- 'BeneficiaryID' => new_beneficiary['ID']
76
- })
77
- expect(fail_withdrawal['ErrorCode']).to eq(2002)
78
- end
79
- it "fails and return a 2003 error code: Invalid withdrawal ClientFeeAmount" do
80
- fail_withdrawal = MangoPay::Withdrawal.create({
81
- 'Tag' => 'test_withdrawal',
82
- 'UserID' => new_user['ID'],
83
- 'WalletID' => 0,
84
- 'Amount' => 2500,
85
- 'BeneficiaryID' => new_beneficiary['ID'],
86
- 'ClientFeeAmount' => -3000
87
- })
88
- expect(fail_withdrawal['ErrorCode']).to eq(2003)
89
- end
90
- end
91
-
92
- describe "GET" do
93
- it "get the withdrawal" do
94
- withdrawal = MangoPay::Withdrawal.details(new_withdrawal['ID'])
95
- expect(withdrawal['ID']).to eq(new_withdrawal['ID'])
96
- end
97
- end
98
- end
@@ -1,49 +0,0 @@
1
- Bag Attributes
2
- localKeyID: 01 00 00 00
3
- friendlyName: CLR{A0664CB1-ACAF-4742-B1F2-AC2B846E1FF2}
4
- Microsoft CSP Name: Microsoft Enhanced Cryptographic Provider v1.0
5
- Key Attributes
6
- X509v3 Key Usage: 10
7
- -----BEGIN RSA PRIVATE KEY-----
8
- MIIEowIBAAKCAQEAsytrYepzLO3rxkQFHgca2SduZPe7l8X3ZEEDOzX1wsAtblRA
9
- IHSXhOJuKHXEh2qbEcSKBOsC9rCi0LIXXp9X1nBrxRtUnEsRZBNC8F+ruyIdVled
10
- ZDuFmwA02PRVagR/kJAFNdbmviYVPUrs9JIM6CLKKSSqDQLmyNnTZadX55maBF8G
11
- c6kY228cpglQigVQAchU84/EYe2A0D3BnuNQLSZDRAr1Ly3E9V7GXKqSBjWyEzDx
12
- +tuHTrbd52s5XIdct8LKotubeOanBWbgSH7H+uvm9rkjeW0UqIek+N7t1cqS8qji
13
- 25DHj85sx7t1OsFMX0d+oQEgFQatqtxVF2MNiQIDAQABAoIBABlCzekIPSTghpV1
14
- kaMiLU7gmFfz9ab4amDgKax3dyb2IXGkv0XUKmi54/4gXI0bIrHmm+8Fk21kihAS
15
- i+jzXlcFkqw/pjZC/zi03oM1eejwbmJ2B+LR4YxxAwJzsHc6GyIurA1jNzUn+Wai
16
- 4bW5wcgY35fda3xaJF+9FmkGpwYoDWfK14T+6O8TzK2GSxmo7eeuJeb3DEOJ3b1K
17
- kXH/fniA8amOBQaql+jyaVQCEHU3elGDcjoZRI6ASEPE9Ac9uHmvEmQpIRGn6wMa
18
- HSz45QYdm4vZEsyUdOpZcLQ7SC++dgkOAGuRlohZ7mHGtgs5yqp2hCFyoeSFFFMH
19
- fpgo+AECgYEA4zbghIfUcllw/Ry6dam2OCbFGz0IKF3It71VgQqoQd0L4xSPj6ZJ
20
- Ebahgf0MSYs3SCUx2mG0irrRlk67eV9bcDbdRwTkkBL8rmEfu3Iwe/hPLnqdq8pM
21
- yCAtt5T8s/Bop/M1LLiRADrUqwWAK8JAxk/60cKsCObBpo8ePdPGj2kCgYEAyd5V
22
- FDYgESy/9WMaTsw/z83SwI2cIgouDyMULEhm7bssfZhUNGveT9ma2VzdVAahx2+4
23
- gWQVEhVshG/CX63GMlaTK8GNZYfMXPaWfDDKXOH1HGgIAA+P93Q6JcCkfIb/ym3w
24
- 5mltNotECwU/uZHGLbonsxNW/iiJDKV//Duk6SECgYAM3o7Y8tiVoXtE2tu0zmgD
25
- xi5j3JEZuDYmMhMlu/TLxjlmI0P+XuzElBORyUNo5vm6nGC2fdI8CVjVqp/zv/Lt
26
- 6C2gWCaaAnlNZzLk6xLT8ryJZWiI0myG6UutmkK17mf/G0dnwQx1dt+U0DryP45r
27
- rRwHxX75Ahj11iVgWx5kAQKBgFTUTURVClytRW1E3AVI53fXsjygRYA4buqFfzCs
28
- rDQyd5u/q4Lr4VwEwYGd+JQaxVkdpZcaC5Cx2Aw/OpsiVytIHkhA6b5EtqhKJyrB
29
- BgjKG0p4nQQJhiIigVzj+zspL8xNLvJkUzSciVdoOUMt8u28UHp8Ig5j0lOyKHpC
30
- RiaBAoGBAKLaIPzksFRds3JJoOB+z6DnW+UDZ4JTZ+flNnbF8SAhyfhcWu7P4Bcy
31
- MxB0im7LNx+Pc0MHBC3XxrMkZ/oJUjnAKrG26Dzgh4VP2RM6pvz2g/lGbLO+O0vH
32
- eMWckkIf5QidHg3HTmfAIR8buEL08bxgD0i2dL5qBuAO/dogW95b
33
- -----END RSA PRIVATE KEY-----
34
- Bag Attributes
35
- localKeyID: 01 00 00 00
36
- subject=/CN=Opensslkey Unsigned Certificate
37
- issuer=/CN=Opensslkey Unsigned Certificate
38
- -----BEGIN CERTIFICATE-----
39
- MIIB2zCCAcSgAwIBAgIQZNMnNOqe7pdLgtpEs4GvuTANBgkqhkiG9w0BAQUFADAq
40
- MSgwJgYDVQQDEx9PcGVuc3Nsa2V5IFVuc2lnbmVkIENlcnRpZmljYXRlMB4XDTEx
41
- MDcyMDEyNTkxMloXDTEyMDcxOTE4NTkxMlowKjEoMCYGA1UEAxMfT3BlbnNzbGtl
42
- eSBVbnNpZ25lZCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
43
- AQoCggEBALMra2Hqcyzt68ZEBR4HGtknbmT3u5fF92RBAzs19cLALW5UQCB0l4Ti
44
- bih1xIdqmxHEigTrAvawotCyF16fV9Zwa8UbVJxLEWQTQvBfq7siHVZXnWQ7hZsA
45
- NNj0VWoEf5CQBTXW5r4mFT1K7PSSDOgiyikkqg0C5sjZ02WnV+eZmgRfBnOpGNtv
46
- HKYJUIoFUAHIVPOPxGHtgNA9wZ7jUC0mQ0QK9S8txPVexlyqkgY1shMw8frbh062
47
- 3edrOVyHXLfCyqLbm3jmpwVm4Eh+x/rr5va5I3ltFKiHpPje7dXKkvKo4tuQx4/O
48
- bMe7dTrBTF9HfqEBIBUGrarcVRdjDYkCAwEAATANBgkqhkiG9w0BAQUFAAMCAMg=
49
- -----END CERTIFICATE-----
Binary file
Binary file
Binary file
Binary file