pr-pin 0.4.0 → 0.7.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf49a91cbc72d1af5343df37fbd964f8bb43306f26f7352918658919afec0bbc
4
- data.tar.gz: c75dd94684dc08a730a3635644b4a2a497f0073d0e00334898cc521ddf62ef2b
3
+ metadata.gz: c5c46e7b7fb9f7caf1043adf2acb0d7d65d361dd1a92eb94ab6a883ca038c2c2
4
+ data.tar.gz: 247e327a750a9502459c5cf9d79f893eccded38bb092c8338de84ee4e238163f
5
5
  SHA512:
6
- metadata.gz: 85489fea42558f6c607f6bd5fe558b24dd0b035303171692aba94e2b992ae63102c50291f10b0e97cce142ff0cb148a2bf299ce8e4c8ff00bff534c6073eeb19
7
- data.tar.gz: 4a2cd43d7a7687153833d5e69f467fa6694257dc6c3c79e701c68df98a86bfae3c2714db99248f98215851cf1e6f16849209ffc0d5b9e976024ffabd30718eed
6
+ metadata.gz: 9fe319516a83e0034ab58cb27e050e442767ddef0edba2afbac269fbaac2c66e9444604f3bccfeac8dfa4522b9faf96c75d849dc30e3d8baea530b3397218107
7
+ data.tar.gz: c05ca50f8ab613b86f97b294da0dc73b0b2a02fa077385cb422d0f826edb1e89ea7975fc3ed3fe72998cfa7886a20ee44850c85b2bfc32b8352bf7c13c541605
data/README.md CHANGED
@@ -66,6 +66,10 @@ charge = PR::Pin.charges.create(
66
66
  charge.success? # => true
67
67
  charge.error? # => false
68
68
  charge # => #<PR::Pin::Struct::Charge>
69
+
70
+ # Find a charge by token
71
+ PR::Pin.charges.find('ch_1ee2d1')
72
+ # => #<PR::Pin::Struct::Charge>
69
73
  ```
70
74
 
71
75
  ### Recurring payments
@@ -88,6 +92,35 @@ subscription = PR::Pin.subscriptions.create(
88
92
  subscription.success? # => true
89
93
  subscription.error? # => false
90
94
  subscription # => #<PR::Pin::Struct::Subscription>
95
+
96
+ ledger = PR::Pin.ledger.for_subscription('sub_293857')
97
+ subscription.success? # => true
98
+ subscription.error? # => false
99
+ ledger
100
+ # => [
101
+ # #<PR::Pin::Struct::Ledger type="credit" annotation="charge_credit" amount=1026 currency="AUD" created_at=#<DateTime: 2020-07-02T02:19:50+00:00 ((2459033j,8390s,0n),+0s,2299161j)>>,
102
+ # #<PR::Pin::Struct::Ledger type="debit" annotation="interval_fee" amount=1026 currency="AUD" created_at=#<DateTime: 2020-07-02T02:19:47+00:00 ((2459033j,8387s,0n),+0s,2299161j)>>,
103
+ # #<PR::Pin::Struct::Ledger type="debit" annotation="setup_fee" amount=0 currency="AUD" created_at=#<DateTime: 2020-07-02T02:19:47+00:00 ((2459033j,8387s,0n),+0s,2299161j)>>
104
+ # ]
105
+ ```
106
+
107
+ ### Refunds
108
+ ```ruby
109
+ # List refunds (paginated)
110
+ refunds = PR::Pin.refunds.list
111
+ # => [#<PR::Pin::Struct::Refund>, ...]
112
+
113
+ # Find a specific refund
114
+ refund = PR::Pin.refunds.find('rf_1e5429')
115
+ # => #<PR::Pin::Struct::Refund>
116
+
117
+ # Create a refund for a charge
118
+ PR::Pin.refunds.create_for_charge('ch_1ee2d1')
119
+ # => #<PR::Pin::Struct::Refund>
120
+
121
+ # List all refunds by charge
122
+ PR::Pin.refunds.for_charge('ch_1ee2d1')
123
+ # => [#<PR::Pin::Struct::Refund>, ...]
91
124
  ```
92
125
 
93
126
  ### Errors - See [PR::Pin::API::Error](https://github.com/PetRescue/pr-pin/blob/master/lib/pr/pin/api/error.rb)
@@ -108,61 +141,61 @@ Coverage of https://pinpayments.com/developers/api-reference
108
141
 
109
142
  | Relation | Endpoint | Description | Docs | Implemented |
110
143
  |--|--|--|--|--|
111
- | Balance | GET /balance | Returns the current balance of your Pin Payments account | [:link:](https://pinpayments.com/developers/api-reference/balance) | :x: |
112
- | Bank Accounts | POST /bank_accounts | Creates a bank account token | [:link:](https://pinpayments.com/developers/api-reference/bank-accounts) | :x: |
113
- | Cards | POST /cards | Securely stores a card's details | [:link:](https://pinpayments.com/developers/api-reference/cards) | :x: |
114
- | Charges | POST /charges | Creates a new charge | [:link:](https://pinpayments.com/developers/api-reference/charges#post-charges) | :heavy_check_mark: |
115
- | Charges | PUT /charges/charge-token/capture | Captures a previously authorised charge | [:link:](https://pinpayments.com/developers/api-reference/charges#put-charges) | :x: |
116
- | Charges | GET /charges | Returns a paginated list of all charges | [:link:](https://pinpayments.com/developers/api-reference/charges#get-charges) | :heavy_check_mark: |
117
- | Charges | GET /charges/search | Returns a paginated list of charges matching the search criteria | [:link:](https://pinpayments.com/developers/api-reference/charges#search-charges) | :heavy_check_mark: |
118
- | Charges | GET /charges/charge-token | Returns the details of a charge | [:link:](https://pinpayments.com/developers/api-reference/charges#get-charge) | :x: |
119
- | Customers | POST /customers | Creates a new customer | [:link:](https://pinpayments.com/developers/api-reference/customers#post-customers) | :heavy_check_mark: |
120
- | Customers | GET /customers | Returns a paginated list of all customers | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers) | :heavy_check_mark: |
121
- | Customers | GET /customers/customer-token | Returns the details of a customer | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customer) | :x: |
122
- | Customers | PUT /customers/customer-token | Updates the details of a customer | [:link:](https://pinpayments.com/developers/api-reference/customers#put-customer) | :x: |
123
- | Customers | DELETE /customers/customer-token | Deletes a customer and all of its cards | [:link:](https://pinpayments.com/developers/api-reference/customers#delete-customer) | :x: |
124
- | Customers | GET /customers/customer-token/charges | Returns a paginated list of a customer's charges | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers-charges) | :x: |
125
- | Customers | GET /customers/customer-token/cards | Returns a paginated list of a customer's cards | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers-cards) | :x: |
126
- | Customers | POST /customers/customer-token/cards | Creates an additional card for the specified customer | [:link:](https://pinpayments.com/developers/api-reference/customers#post-customers-cards) | :x: |
127
- | Customers | DELETE /customers/customer-token/cards/card-token | Deletes a customer's non-primary card | [:link:](https://pinpayments.com/developers/api-reference/customers#delete-customers-card) | :x: |
128
- | Customers | GET /customers/customer-token/subscriptions | Retrieves the specified customer's subscriptions | [:link:](https://pinpayments.com/developers/api-reference/customers#customers-subscriptions) | :x: |
129
- | Events | GET /events | Returns a paginated list of all events | [:link:](https://pinpayments.com/developers/api-reference/events#get-events) | :x: |
130
- | Events | GET /events/event-token | Returns the details of the specified event | [:link:](https://pinpayments.com/developers/api-reference/events#get-event) | :x: |
131
- | Plans | POST /plans | Creates a new plan | [:link:](https://pinpayments.com/developers/api-reference/plans#post-plans) | :heavy_check_mark: |
132
- | Plans | GET /plans | Returns a paginated list of all plans | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plans) | :heavy_check_mark: |
133
- | Plans | GET /plans/plan-token | Returns the details of a specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plan) | :x: |
134
- | Plans | PUT /plans/plan-token | Update the specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#put-plan) | :x: |
135
- | Plans | DELETE /plans/plan-token | Deletes a plan and all of its subscriptions | [:link:](https://pinpayments.com/developers/api-reference/plans#delete-plan) | :x: |
136
- | Plans | POST /plans/plan-token/subscriptions | Creates a new subscription to the specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#create-plan-subscription) | :x: |
137
- | Plans | GET /plans/plan-token/subscriptions | Returns a paginated list of subscriptions for a plan | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plan-subscriptions) | :x: |
138
- | Subscriptions | POST /subscriptions | Activate a new subscription and returns its details | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#post-subscriptions) | :heavy_check_mark: |
139
- | Subscriptions | GET /subscriptions | Returns a paginated list of all subscriptions | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#get-subscriptions) | :heavy_check_mark: |
140
- | Subscriptions | GET /subscriptions/sub-token | Returns the details of the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#get-subscription) | :heavy_check_mark: |
141
- | Subscriptions | PUT /subscriptions/sub-token | Updates the card associated with a subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#update-subscription) | :x: |
142
- | Subscriptions | DELETE /subscriptions/sub-token | Cancels the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#delete-subscription) | :x: |
143
- | Subscriptions | PUT /subscriptions/sub-token/reactivate | Reactivates the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#reactivate-subscription) | :x: |
144
- | Subscriptions | GET /subscriptions/sub-token/ledger | Fetch the ledger entries relating to a subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#ledger-subscription) | :x: |
145
- | Recipients | POST /recipients | Creates a new recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#post-recipients) | :x: |
146
- | Recipients | GET /recipients | Returns a paginated list of all recipients | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipients) | :x: |
147
- | Recipients | GET /recipients/recipient-token | Returns the details of a recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipient) | :x: |
148
- | Recipients | PUT /recipients/recipient-token | Updates the details of a recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#put-recipient) | :x: |
149
- | Recipients | GET /recipients/recipient-token/transfers | Returns a paginated list of a recipient's transfers | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipients-transfers) | :x: |
150
- | Refunds | GET /refunds | Returns a paginated list of all refunds | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-refunds) | :x: |
151
- | Refunds | GET /refunds/refund-token | Returns the details of the specified refund | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-refund) | :x: |
152
- | Refunds | POST /charges/charge-token/refunds | Creates a new refund and returns its details | [:link:](https://pinpayments.com/developers/api-reference/refunds#post-refunds) | :x: |
153
- | Refunds | GET /charges/charge-token/refunds | Returns a list of all refunds for the specified charge | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-token-refunds) | :x: |
154
- | Transfers | POST /transfers | Creates a new transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#post-transfers) | :x: |
155
- | Transfers | GET /transfers | Returns a paginated list of all transfers | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfers) | :x: |
156
- | Transfers | GET /transfers/search | Returns a paginated list of transfers matching the search criteria | [:link:](https://pinpayments.com/developers/api-reference/transfers#search-transfers) | :x: |
157
- | Transfers | GET /transfers/transfer-token | Returns the details of the specified transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfer) | :x: |
158
- | Transfers | GET /transfers/transfer-token/line_items | Returns a paginated list of line items associated with the specified transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfer-line-items) | :x: |
159
- | Webhook Endpoints | POST /webhook_endpoints | Creates a new webhook endpoint | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#post-webhook_endpoints) | :x: |
160
- | Webhook Endpoints | GET /webhook_endpoints | Returns a paginated list of all webhook endpoints | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#get-webhook_endpoints) | :x: |
161
- | Webhook Endpoints | GET /webhook_endpoints/webhook-endpoint-token | Returns the details of the specified webhook endpoint | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#get-webhook_endpoints-token) | :x: |
162
- | Webhook Endpoints | DELETE /webhook_endpoints/webhook-endpoint-token | Deletes a webhook endpoint and all of its webhook requests | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#delete-webhook_endpoints) | :x: |
163
- | Webhooks | GET /webhooks | Returns a paginated list of all webhooks | [:link:](https://pinpayments.com/developers/api-reference/webhooks#get-webhooks) | :x: |
164
- | Webhooks | GET /webhooks/webhook-token | Returns the details of a webhook | [:link:](https://pinpayments.com/developers/api-reference/webhooks#get-webhook) | :x: |
165
- | Webhooks | PUT /webhooks/webhook-token/replay | Replays a webhook | [:link:](https://pinpayments.com/developers/api-reference/webhooks#put-webhook-replay) | :x: |
144
+ | Balance | `GET /balance` | Returns the current balance of your Pin Payments account | [:link:](https://pinpayments.com/developers/api-reference/balance) | :x: |
145
+ | Bank Accounts | `POST /bank_accounts` | Creates a bank account token | [:link:](https://pinpayments.com/developers/api-reference/bank-accounts) | :x: |
146
+ | Cards | `POST /cards` | Securely stores a card's details | [:link:](https://pinpayments.com/developers/api-reference/cards) | :x: |
147
+ | Charges | `POST /charges` | Creates a new charge | [:link:](https://pinpayments.com/developers/api-reference/charges#post-charges) | :heavy_check_mark: |
148
+ | Charges | `PUT /charges/#{charge-token}/capture` | Captures a previously authorised charge | [:link:](https://pinpayments.com/developers/api-reference/charges#put-charges) | :x: |
149
+ | Charges | `GET /charges` | Returns a paginated list of all charges | [:link:](https://pinpayments.com/developers/api-reference/charges#get-charges) | :heavy_check_mark: |
150
+ | Charges | `GET /charges/search` | Returns a paginated list of charges matching the search criteria | [:link:](https://pinpayments.com/developers/api-reference/charges#search-charges) | :heavy_check_mark: |
151
+ | Charges | `GET /charges/#{charge-token}` | Returns the details of a charge | [:link:](https://pinpayments.com/developers/api-reference/charges#get-charge) | :heavy_check_mark: |
152
+ | Customers | `POST /customers` | Creates a new customer | [:link:](https://pinpayments.com/developers/api-reference/customers#post-customers) | :heavy_check_mark: |
153
+ | Customers | `GET /customers` | Returns a paginated list of all customers | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers) | :heavy_check_mark: |
154
+ | Customers | `GET /customers/#{customer-token}` | Returns the details of a customer | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customer) | :heavy_check_mark: |
155
+ | Customers | `PUT /customers/#{customer-token}` | Updates the details of a customer | [:link:](https://pinpayments.com/developers/api-reference/customers#put-customer) | :heavy_check_mark: |
156
+ | Customers | `DELETE /customers/#{customer-token}` | Deletes a customer and all of its cards | [:link:](https://pinpayments.com/developers/api-reference/customers#delete-customer) | :x: |
157
+ | Customers | `GET /customers/#{customer-token}/charges` | Returns a paginated list of a customer's charges | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers-charges) | :heavy_check_mark: |
158
+ | Customers | `GET /customers/#{customer-token}/cards` | Returns a paginated list of a customer's cards | [:link:](https://pinpayments.com/developers/api-reference/customers#get-customers-cards) | :x: |
159
+ | Customers | `POST /customers/#{customer-token}/cards` | Creates an additional card for the specified customer | [:link:](https://pinpayments.com/developers/api-reference/customers#post-customers-cards) | :x: |
160
+ | Customers | `DELETE /customers/#{customer-token}/cards/#{card-token}` | Deletes a customer's non-primary card | [:link:](https://pinpayments.com/developers/api-reference/customers#delete-customers-card) | :x: |
161
+ | Customers | `GET /customers/#{customer-token}/subscriptions` | Retrieves the specified customer's subscriptions | [:link:](https://pinpayments.com/developers/api-reference/customers#customers-subscriptions) | :x: |
162
+ | Events | `GET /events` | Returns a paginated list of all events | [:link:](https://pinpayments.com/developers/api-reference/events#get-events) | :x: |
163
+ | Events | `GET /events/#{event-token}` | Returns the details of the specified event | [:link:](https://pinpayments.com/developers/api-reference/events#get-event) | :x: |
164
+ | Plans | `POST /plans` | Creates a new plan | [:link:](https://pinpayments.com/developers/api-reference/plans#post-plans) | :heavy_check_mark: |
165
+ | Plans | `GET /plans` | Returns a paginated list of all plans | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plans) | :heavy_check_mark: |
166
+ | Plans | `GET /plans/#{plan-token}` | Returns the details of a specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plan) | :heavy_check_mark: |
167
+ | Plans | `PUT /plans/#{plan-token}` | Update the specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#put-plan) | :heavy_check_mark: |
168
+ | Plans | `DELETE /plans/#{plan-token}` | Deletes a plan and all of its subscriptions | [:link:](https://pinpayments.com/developers/api-reference/plans#delete-plan) | :x: |
169
+ | Plans | `POST /plans/#{plan-token}/subscriptions` | Creates a new subscription to the specified plan | [:link:](https://pinpayments.com/developers/api-reference/plans#create-plan-subscription) | :x: |
170
+ | Plans | `GET /plans/#{plan-token}/subscriptions` | Returns a paginated list of subscriptions for a plan | [:link:](https://pinpayments.com/developers/api-reference/plans#get-plan-subscriptions) | :x: |
171
+ | Subscriptions | `POST /subscriptions` | Activate a new subscription and returns its details | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#post-subscriptions) | :heavy_check_mark: |
172
+ | Subscriptions | `GET /subscriptions` | Returns a paginated list of all subscriptions | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#get-subscriptions) | :heavy_check_mark: |
173
+ | Subscriptions | `GET /subscriptions/#{sub-token}` | Returns the details of the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#get-subscription) | :heavy_check_mark: |
174
+ | Subscriptions | `PUT /subscriptions/#{sub-token}` | Updates the card associated with a subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#update-subscription) | :heavy_check_mark: |
175
+ | Subscriptions | `DELETE /subscriptions/#{sub-token}` | Cancels the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#delete-subscription) | :x: |
176
+ | Subscriptions | `PUT /subscriptions/#{sub-token}/reactivate` | Reactivates the subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#reactivate-subscription) | :x: |
177
+ | Subscriptions | `GET /subscriptions/#{sub-token}/ledger` | Fetch the ledger entries relating to a subscription identified by subscription token | [:link:](https://pinpayments.com/developers/api-reference/subscriptions#ledger-subscription) | :heavy_check_mark: |
178
+ | Recipients | `POST /recipients` | Creates a new recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#post-recipients) | :x: |
179
+ | Recipients | `GET /recipients` | Returns a paginated list of all recipients | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipients) | :x: |
180
+ | Recipients | `GET /recipients/#{recipient-token}` | Returns the details of a recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipient) | :x: |
181
+ | Recipients | `PUT /recipients/#{recipient-token}` | Updates the details of a recipient | [:link:](https://pinpayments.com/developers/api-reference/recipients#put-recipient) | :x: |
182
+ | Recipients | `GET /recipients/#{recipient-token}/transfers` | Returns a paginated list of a recipient's transfers | [:link:](https://pinpayments.com/developers/api-reference/recipients#get-recipients-transfers) | :x: |
183
+ | Refunds | `GET /refunds` | Returns a paginated list of all refunds | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-refunds) | :heavy_check_mark: |
184
+ | Refunds | `GET /refunds/#{refund-token}` | Returns the details of the specified refund | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-refund) | :heavy_check_mark: |
185
+ | Refunds | `POST /charges/#{charge-token}/refunds` | Creates a new refund and returns its details | [:link:](https://pinpayments.com/developers/api-reference/refunds#post-refunds) | :heavy_check_mark: |
186
+ | Refunds | `GET /charges/#{charge-token}/refunds` | Returns a list of all refunds for the specified charge | [:link:](https://pinpayments.com/developers/api-reference/refunds#get-token-refunds) | :heavy_check_mark: |
187
+ | Transfers | `POST /transfers` | Creates a new transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#post-transfers) | :x: |
188
+ | Transfers | `GET /transfers` | Returns a paginated list of all transfers | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfers) | :x: |
189
+ | Transfers | `GET /transfers/search` | Returns a paginated list of transfers matching the search criteria | [:link:](https://pinpayments.com/developers/api-reference/transfers#search-transfers) | :x: |
190
+ | Transfers | `GET /transfers/#{transfer-token}` | Returns the details of the specified transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfer) | :x: |
191
+ | Transfers | `GET /transfers/#{transfer-token}/line_items` | Returns a paginated list of line items associated with the specified transfer | [:link:](https://pinpayments.com/developers/api-reference/transfers#get-transfer-line-items) | :x: |
192
+ | Webhook Endpoints | `POST /webhook_endpoints` | Creates a new webhook endpoint | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#post-webhook_endpoints) | :x: |
193
+ | Webhook Endpoints | `GET /webhook_endpoints` | Returns a paginated list of all webhook endpoints | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#get-webhook_endpoints) | :x: |
194
+ | Webhook Endpoints | `GET /webhook_endpoints/#{webhook-endpoint-token}` | Returns the details of the specified webhook endpoint | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#get-webhook_endpoints-token) | :x: |
195
+ | Webhook Endpoints | `DELETE /webhook_endpoints/#{webhook-endpoint-token}` | Deletes a webhook endpoint and all of its webhook requests | [:link:](https://pinpayments.com/developers/api-reference/webhook-endpoints#delete-webhook_endpoints) | :x: |
196
+ | Webhooks | `GET /webhooks` | Returns a paginated list of all webhooks | [:link:](https://pinpayments.com/developers/api-reference/webhooks#get-webhooks) | :x: |
197
+ | Webhooks | `GET /webhooks/#{webhook-token}` | Returns the details of a webhook | [:link:](https://pinpayments.com/developers/api-reference/webhooks#get-webhook) | :x: |
198
+ | Webhooks | `PUT /webhooks/#{webhook-token}/replay` | Replays a webhook | [:link:](https://pinpayments.com/developers/api-reference/webhooks#put-webhook-replay) | :x: |
166
199
 
167
200
  ## Development
168
201
 
@@ -57,10 +57,18 @@ module PR
57
57
  Repositories::Customers.new(environments[identifier])
58
58
  end
59
59
 
60
+ def ledger(identifier = :default)
61
+ Repositories::Ledger.new(environments[identifier])
62
+ end
63
+
60
64
  def plans(identifier = :default)
61
65
  Repositories::Plans.new(environments[identifier])
62
66
  end
63
67
 
68
+ def refunds(identifier = :default)
69
+ Repositories::Refunds.new(environments[identifier])
70
+ end
71
+
64
72
  def subscriptions(identifier = :default)
65
73
  Repositories::Subscriptions.new(environments[identifier])
66
74
  end
@@ -4,6 +4,7 @@ module PR
4
4
  module Commands
5
5
  class Create < ROM::HTTP::Commands::Create
6
6
  adapter :pr_pin
7
+ restrictable true
7
8
 
8
9
  def execute(*args, &block)
9
10
  relation.new(super.map(&:to_h)).to_a
@@ -12,6 +13,7 @@ module PR
12
13
 
13
14
  class Update < ROM::HTTP::Commands::Update
14
15
  adapter :pr_pin
16
+ restrictable true
15
17
 
16
18
  def execute(*args, &block)
17
19
  relation.new(super.map(&:to_h)).to_a
@@ -20,6 +22,7 @@ module PR
20
22
 
21
23
  class Delete < ROM::HTTP::Commands::Delete
22
24
  adapter :pr_pin
25
+ restrictable true
23
26
  end
24
27
  end
25
28
  end
@@ -25,6 +25,10 @@ module PR
25
25
  attribute :settlement_currency, Types::Strict::String
26
26
  attribute :metadata, Types::JSON::Hash
27
27
  end
28
+
29
+ def for_customer(customer_token)
30
+ with_base_path("/customers/#{customer_token}/charges")
31
+ end
28
32
  end
29
33
  end
30
34
  end
@@ -5,6 +5,11 @@ module PR
5
5
  schema(:customers) do
6
6
  attribute :token, Types::Strict::String
7
7
  attribute :email, Types::Strict::String
8
+ attribute :first_name, Types::Strict::String.optional
9
+ attribute :last_name, Types::Strict::String.optional
10
+ attribute :phone_number, Types::Strict::String.optional
11
+ attribute :company, Types::Strict::String.optional
12
+ attribute :notes, Types::Strict::String.optional
8
13
  attribute :created_at, Types::JSON::DateTime
9
14
  attribute :card, Types::JSON::Hash
10
15
  end
@@ -0,0 +1,19 @@
1
+ module PR
2
+ module Pin
3
+ module Relations
4
+ class Ledger < ROM::Relation[:pr_pin]
5
+ schema(:ledger) do
6
+ attribute :type, Types::Strict::String
7
+ attribute :annotation, Types::Strict::String
8
+ attribute :amount, Types::Strict::Integer
9
+ attribute :currency, Types::Strict::String
10
+ attribute :created_at, Types::JSON::DateTime
11
+ end
12
+
13
+ def for_subscription(subscription_token)
14
+ with_base_path("/subscriptions/#{subscription_token}/ledger")
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ module PR
2
+ module Pin
3
+ module Relations
4
+ class Refunds < ROM::Relation[:pr_pin]
5
+ schema(:refunds) do
6
+ attribute :token, Types::Strict::String
7
+ attribute :success, Types::Bool.optional
8
+ attribute :amount, Types::Strict::Integer
9
+ attribute :currency, Types::Strict::String
10
+ attribute :charge, Types::Strict::String
11
+ attribute :error_message, Types::Strict::String.optional
12
+ attribute :status_message, Types::Strict::String
13
+ attribute :created_at, Types::JSON::DateTime
14
+ end
15
+
16
+ def for_charge(charge_token)
17
+ with_base_path("/charges/#{charge_token}/refunds")
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,8 +4,8 @@ module PR
4
4
  class Subscriptions < ROM::Relation[:pr_pin]
5
5
  schema(:subscriptions) do
6
6
  attribute :state, Types::Strict::String
7
- attribute :next_billing_date, Types::JSON::DateTime
8
- attribute :active_interval_started_at, Types::JSON::DateTime
7
+ attribute :next_billing_date, Types::JSON::DateTime.optional
8
+ attribute :active_interval_started_at, Types::JSON::DateTime.optional
9
9
  attribute :active_interval_finishes_at, Types::JSON::DateTime.optional
10
10
  attribute :cancelled_at, Types::JSON::DateTime.optional
11
11
  attribute :created_at, Types::JSON::DateTime
@@ -3,8 +3,9 @@ require 'pr/pin/api/error'
3
3
  require 'pr/pin/api/result'
4
4
  require 'pr/pin/api/paginated_result'
5
5
  require 'pr/pin/struct'
6
- require 'pr/pin/repositories/concerns/common'
7
6
  require 'pr/pin/repositories/charges'
8
7
  require 'pr/pin/repositories/customers'
8
+ require 'pr/pin/repositories/ledger'
9
9
  require 'pr/pin/repositories/plans'
10
+ require 'pr/pin/repositories/refunds'
10
11
  require 'pr/pin/repositories/subscriptions'
@@ -2,7 +2,28 @@ module PR
2
2
  module Pin
3
3
  module Repositories
4
4
  class Charges < ROM::Repository[:charges]
5
- include Concerns::Common
5
+ struct_namespace PR::Pin::Struct
6
+
7
+ def create(*args)
8
+ API::Result.wrap(root) do
9
+ root.command(:create).call(*args)
10
+ end
11
+ end
12
+
13
+ def find(token)
14
+ relation = root.with_path(token)
15
+
16
+ API::Result.wrap(relation) { relation.one }
17
+ end
18
+
19
+ def list(page: 1, per_page: nil)
20
+ relation = root.with_params(
21
+ page: page,
22
+ per_page: per_page
23
+ )
24
+
25
+ API::PaginatedResult.wrap(relation) { relation.paginate }
26
+ end
6
27
 
7
28
  def search(**params)
8
29
  relation = root.append_path('search').with_params(params)
@@ -11,6 +32,15 @@ module PR
11
32
  relation.paginate
12
33
  end
13
34
  end
35
+
36
+ def for_customer(customer_token, page: 1, per_page: nil)
37
+ relation = root.for_customer(customer_token).with_params(
38
+ page: page,
39
+ per_page: per_page
40
+ )
41
+
42
+ API::PaginatedResult.wrap(relation) { relation.paginate }
43
+ end
14
44
  end
15
45
  end
16
46
  end
@@ -2,7 +2,34 @@ module PR
2
2
  module Pin
3
3
  module Repositories
4
4
  class Customers < ROM::Repository[:customers]
5
- include Concerns::Common
5
+ struct_namespace PR::Pin::Struct
6
+
7
+ def create(*args)
8
+ API::Result.wrap(root) do
9
+ root.command(:create).call(*args)
10
+ end
11
+ end
12
+
13
+ def update(token, *args)
14
+ API::Result.wrap(root) do
15
+ root.append_path(token).command(:update).call(*args)
16
+ end
17
+ end
18
+
19
+ def find(token)
20
+ relation = root.with_path(token)
21
+
22
+ API::Result.wrap(relation) { relation.one }
23
+ end
24
+
25
+ def list(page: 1, per_page: nil)
26
+ relation = root.with_params(
27
+ page: page,
28
+ per_page: per_page
29
+ )
30
+
31
+ API::PaginatedResult.wrap(relation) { relation.paginate }
32
+ end
6
33
  end
7
34
  end
8
35
  end
@@ -0,0 +1,18 @@
1
+ module PR
2
+ module Pin
3
+ module Repositories
4
+ class Ledger < ROM::Repository[:ledger]
5
+ struct_namespace PR::Pin::Struct
6
+
7
+ def for_subscription(subscription_token, page: 1, per_page: nil)
8
+ relation = root.for_subscription(subscription_token).with_params(
9
+ page: page,
10
+ per_page: per_page
11
+ )
12
+
13
+ API::PaginatedResult.wrap(relation) { relation.paginate }
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,7 +2,34 @@ module PR
2
2
  module Pin
3
3
  module Repositories
4
4
  class Plans < ROM::Repository[:plans]
5
- include Concerns::Common
5
+ struct_namespace PR::Pin::Struct
6
+
7
+ def create(*args)
8
+ API::Result.wrap(root) do
9
+ root.command(:create).call(*args)
10
+ end
11
+ end
12
+
13
+ def update(token, *args)
14
+ API::Result.wrap(root) do
15
+ root.append_path(token).command(:update).call(*args)
16
+ end
17
+ end
18
+
19
+ def find(token)
20
+ relation = root.with_path(token)
21
+
22
+ API::Result.wrap(relation) { relation.one }
23
+ end
24
+
25
+ def list(page: 1, per_page: nil)
26
+ relation = root.with_params(
27
+ page: page,
28
+ per_page: per_page
29
+ )
30
+
31
+ API::PaginatedResult.wrap(relation) { relation.paginate }
32
+ end
6
33
  end
7
34
  end
8
35
  end
@@ -0,0 +1,41 @@
1
+ module PR
2
+ module Pin
3
+ module Repositories
4
+ class Refunds < ROM::Repository[:refunds]
5
+ struct_namespace PR::Pin::Struct
6
+
7
+ def list(page: 1, per_page: nil)
8
+ relation = root.with_params(
9
+ page: page,
10
+ per_page: per_page
11
+ )
12
+
13
+ API::PaginatedResult.wrap(relation) { relation.paginate }
14
+ end
15
+
16
+ def find(token)
17
+ relation = root.with_path(token)
18
+
19
+ API::Result.wrap(relation) { relation.one }
20
+ end
21
+
22
+ def create_for_charge(charge_token, *args)
23
+ relation = root.for_charge(charge_token)
24
+
25
+ API::Result.wrap(relation) do
26
+ relation.command(:create).call(*args)
27
+ end
28
+ end
29
+
30
+ def for_charge(charge_token, page: 1, per_page: nil)
31
+ relation = root.for_charge(charge_token).with_params(
32
+ page: page,
33
+ per_page: per_page
34
+ )
35
+
36
+ API::PaginatedResult.wrap(relation) { relation.paginate }
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -2,13 +2,34 @@ module PR
2
2
  module Pin
3
3
  module Repositories
4
4
  class Subscriptions < ROM::Repository[:subscriptions]
5
- include Concerns::Common
5
+ struct_namespace PR::Pin::Struct
6
6
 
7
- def find(token)
7
+ def create(*args)
8
+ API::Result.wrap(root) do
9
+ root.command(:create).call(*args)
10
+ end
11
+ end
12
+
13
+ def update(token, *args)
8
14
  API::Result.wrap(root) do
9
- root.append_path(token).one
15
+ root.append_path(token).command(:update).call(*args)
10
16
  end
11
17
  end
18
+
19
+ def find(token)
20
+ relation = root.with_path(token)
21
+
22
+ API::Result.wrap(relation) { relation.one }
23
+ end
24
+
25
+ def list(page: 1, per_page: nil)
26
+ relation = root.with_params(
27
+ page: page,
28
+ per_page: per_page
29
+ )
30
+
31
+ API::PaginatedResult.wrap(relation) { relation.paginate }
32
+ end
12
33
  end
13
34
  end
14
35
  end
@@ -1,5 +1,5 @@
1
1
  module PR
2
2
  module Pin
3
- VERSION = '0.4.0'.freeze
3
+ VERSION = '0.7.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pr-pin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - AMHOL
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-19 00:00:00.000000000 Z
11
+ date: 2020-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,30 +28,30 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -140,28 +140,28 @@ dependencies:
140
140
  name: rom
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 5.1.2
145
+ version: 5.0.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 5.1.2
152
+ version: 5.0.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rom-http
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.8.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.8.0
167
167
  description: Pin Payments API wrapper inplemented using rom-rb HTTP adapter.
@@ -192,13 +192,16 @@ files:
192
192
  - lib/pr/pin/inflector.rb
193
193
  - lib/pr/pin/relations/charges.rb
194
194
  - lib/pr/pin/relations/customers.rb
195
+ - lib/pr/pin/relations/ledger.rb
195
196
  - lib/pr/pin/relations/plans.rb
197
+ - lib/pr/pin/relations/refunds.rb
196
198
  - lib/pr/pin/relations/subscriptions.rb
197
199
  - lib/pr/pin/repositories.rb
198
200
  - lib/pr/pin/repositories/charges.rb
199
- - lib/pr/pin/repositories/concerns/common.rb
200
201
  - lib/pr/pin/repositories/customers.rb
202
+ - lib/pr/pin/repositories/ledger.rb
201
203
  - lib/pr/pin/repositories/plans.rb
204
+ - lib/pr/pin/repositories/refunds.rb
202
205
  - lib/pr/pin/repositories/subscriptions.rb
203
206
  - lib/pr/pin/struct.rb
204
207
  - lib/pr/pin/types.rb
@@ -1,28 +0,0 @@
1
- module PR
2
- module Pin
3
- module Repositories
4
- module Concerns
5
- module Common
6
- def self.included(mod)
7
- mod.struct_namespace(PR::Pin::Struct)
8
- end
9
-
10
- def create(*args)
11
- API::Result.wrap(root) do
12
- root.command(:create).call(*args)
13
- end
14
- end
15
-
16
- def list(page: 1, per_page: nil)
17
- relation = root.with_params(
18
- page: page,
19
- per_page: per_page
20
- )
21
-
22
- API::PaginatedResult.wrap(relation) { relation.paginate }
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end