payrex-node 1.2.0 → 1.3.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.0] - 2025-04-23
4
+
5
+ - Add customer session endpoints.
6
+
7
+ ## [1.2.1] - 2025-04-23
8
+
9
+ - Add update support for refunds.
10
+
3
11
  ## [1.2.0] - 2025-02-11
4
12
 
5
13
  - billing_details_collection support for billing_statements.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payrex-node",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "PayRex Node JS Library",
5
5
  "keywords": [
6
6
  "payrex",
@@ -0,0 +1,15 @@
1
+ function CustomerSessionEntity(apiResource) {
2
+ const data = apiResource.data;
3
+
4
+ this.id = data.id;
5
+ this.customerId = data.customer_id;
6
+ this.clientSecret = data.client_secret;
7
+ this.livemode = data.livemode;
8
+ this.components = data.components;
9
+ this.expired = data.expired;
10
+ this.expiredAt = data.expired_at;
11
+ this.createdAt = data.created_at;
12
+ this.updatedAt = data.updated_at;
13
+ }
14
+
15
+ module.exports = CustomerSessionEntity;
@@ -0,0 +1,31 @@
1
+ const BaseService = require('./BaseService');
2
+ const CustomerSessionEntity = require('../entities/CustomerSessionEntity');
3
+ const ApiResource = require('../ApiResource');
4
+
5
+ function CustomerSessionService(client) {
6
+ BaseService.call(this, client);
7
+ this.path = 'customer_sessions';
8
+ }
9
+
10
+ CustomerSessionService.prototype.create = function (payload) {
11
+ return this.request({
12
+ path: this.path,
13
+ payload: payload,
14
+ method: 'post',
15
+ }).then(function (response) {
16
+ return new CustomerSessionEntity(response);
17
+ });
18
+ };
19
+
20
+ CustomerSessionService.prototype.retrieve = function (id) {
21
+ return this.request({
22
+ path: `${this.path}/${id}`,
23
+ method: 'get',
24
+ }).then(function (response) {
25
+ return new CustomerSessionEntity(response);
26
+ });
27
+ };
28
+
29
+ Object.setPrototypeOf(CustomerSessionService.prototype, BaseService.prototype);
30
+
31
+ module.exports = CustomerSessionService;
@@ -16,6 +16,16 @@ RefundService.prototype.create = function (payload) {
16
16
  });
17
17
  };
18
18
 
19
+ RefundService.prototype.update = function (id, payload) {
20
+ return this.request({
21
+ path: `${this.path}/${id}`,
22
+ payload: payload,
23
+ method: 'put',
24
+ }).then(function (response) {
25
+ return new RefundEntity(response);
26
+ });
27
+ };
28
+
19
29
  Object.setPrototypeOf(RefundService.prototype, BaseService.prototype);
20
30
 
21
31
  module.exports = RefundService;
@@ -1,6 +1,7 @@
1
1
  const BillingStatementLineItemService = require('./BillingStatementLineItemService');
2
2
  const BillingStatementService = require('./BillingStatementService');
3
3
  const CheckoutSessionService = require('./CheckoutSessionService');
4
+ const CustomerSessionService = require('./CustomerSessionService');
4
5
  const CustomerService = require('./CustomerService');
5
6
  const PaymentIntentService = require('./PaymentIntentService');
6
7
  const RefundService = require('./RefundService');
@@ -8,6 +9,7 @@ const WebhookService = require('./WebhookService');
8
9
 
9
10
  module.exports = {
10
11
  checkoutSessions: CheckoutSessionService,
12
+ customerSessions: CustomerSessionService,
11
13
  paymentIntents: PaymentIntentService,
12
14
  customers: CustomerService,
13
15
  billingStatements: BillingStatementService,
package/test2.js ADDED
@@ -0,0 +1,55 @@
1
+ const payrex = require('payrex-node')(
2
+ 'sk_live_znE26cM4ZbZP3mfTLeZsnw7EceWHKiPN'
3
+ );
4
+
5
+ const RequestInvalidError = require('./src/errors/RequestInvalidError');
6
+ const AuthenticationInvalidError = require('./src/errors/AuthenticationInvalidError');
7
+ const ResourceNotFoundError = require('./src/errors/ResourceNotFoundError');
8
+
9
+ // try {
10
+ // const paymentIntent = await payrex.paymentIntents.create({ amount: 10000 });
11
+ // } catch (error) {
12
+ // console.log('caught error!')
13
+ // if (error instanceof ResourceNotFoundError) {
14
+ // // handle error if a resource does not exist.
15
+ // } else if (error instanceof AuthenticationInvalidError) {
16
+ // // handle authentication error
17
+ // } else if (error instanceof RequestInvalidError) {
18
+ // console.log('handle error if there\'s validation error');
19
+
20
+ // error.errors.forEach((e) => {
21
+ // console.log(e.code);
22
+ // console.log(e.detail);
23
+ // });
24
+ // }
25
+ // }
26
+
27
+ (async () => {
28
+ try {
29
+ const paymentIntent = await payrex.paymentIntents.create({ amount: 10000 });
30
+ } catch (error) {
31
+ console.log('caught error!');
32
+ console.log(error.name);
33
+ if (error.name === 'ResourceNotFoundError') {
34
+ // handle error if a resource does not exist.
35
+ } else if (error.name === 'AuthenticationInvalidError') {
36
+ // handle authentication error
37
+ } else if (error.name === 'RequestInvalidError') {
38
+ console.log("handle error if there's validation error");
39
+
40
+ error.errors.forEach((e) => {
41
+ console.log(e.code);
42
+ console.log(e.detail);
43
+ });
44
+ }
45
+ }
46
+ })();
47
+
48
+ const refund = await payrex.refunds.update(
49
+ 're_xPy5nb7p6R7jG4ZPEJu5WvVCb8Lz31qx',
50
+ {
51
+ metadata: {
52
+ 'some_key3': 'some_val3'
53
+ }
54
+ }
55
+ )