@unchainedshop/plugins 4.0.0-rc.4 → 4.0.0-rc.6

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 (154) hide show
  1. package/lib/files/gridfs/adapter.d.ts.map +1 -1
  2. package/lib/files/gridfs/adapter.js +9 -4
  3. package/lib/files/gridfs/adapter.js.map +1 -1
  4. package/lib/files/gridfs/handler-express.d.ts.map +1 -1
  5. package/lib/files/gridfs/handler-express.js +4 -2
  6. package/lib/files/gridfs/handler-express.js.map +1 -1
  7. package/lib/files/gridfs/handler-fastify.d.ts.map +1 -1
  8. package/lib/files/gridfs/handler-fastify.js +4 -2
  9. package/lib/files/gridfs/handler-fastify.js.map +1 -1
  10. package/lib/files/gridfs/module.d.ts +2 -2
  11. package/lib/files/gridfs/module.d.ts.map +1 -1
  12. package/lib/files/gridfs/module.js +2 -2
  13. package/lib/files/gridfs/module.js.map +1 -1
  14. package/lib/payment/apple-iap/adapter.js +1 -1
  15. package/lib/payment/apple-iap/adapter.js.map +1 -1
  16. package/lib/payment/apple-iap/handler-express.js +1 -1
  17. package/lib/payment/apple-iap/handler-express.js.map +1 -1
  18. package/lib/payment/apple-iap/handler-fastify.js +1 -1
  19. package/lib/payment/apple-iap/handler-fastify.js.map +1 -1
  20. package/lib/payment/cryptopay/handle-webhook.js +1 -1
  21. package/lib/payment/cryptopay/handle-webhook.js.map +1 -1
  22. package/lib/payment/cryptopay/handler-express.js +1 -1
  23. package/lib/payment/cryptopay/handler-express.js.map +1 -1
  24. package/lib/payment/cryptopay/handler-fastify.d.ts.map +1 -1
  25. package/lib/payment/cryptopay/handler-fastify.js +1 -1
  26. package/lib/payment/cryptopay/handler-fastify.js.map +1 -1
  27. package/lib/payment/paypal-checkout.js +5 -7
  28. package/lib/payment/paypal-checkout.js.map +1 -1
  29. package/lib/payment/postfinance-checkout/api-client.d.ts +16 -0
  30. package/lib/payment/postfinance-checkout/api-client.d.ts.map +1 -0
  31. package/lib/payment/postfinance-checkout/api-client.js +75 -0
  32. package/lib/payment/postfinance-checkout/api-client.js.map +1 -0
  33. package/lib/payment/postfinance-checkout/api-types.d.ts +98 -0
  34. package/lib/payment/postfinance-checkout/api-types.d.ts.map +1 -0
  35. package/lib/payment/postfinance-checkout/api-types.js +51 -0
  36. package/lib/payment/postfinance-checkout/api-types.js.map +1 -0
  37. package/lib/payment/postfinance-checkout/api.d.ts +5 -5
  38. package/lib/payment/postfinance-checkout/api.d.ts.map +1 -1
  39. package/lib/payment/postfinance-checkout/api.js +38 -62
  40. package/lib/payment/postfinance-checkout/api.js.map +1 -1
  41. package/lib/payment/postfinance-checkout/handler-express.d.ts.map +1 -1
  42. package/lib/payment/postfinance-checkout/handler-express.js +5 -5
  43. package/lib/payment/postfinance-checkout/handler-express.js.map +1 -1
  44. package/lib/payment/postfinance-checkout/handler-fastify.d.ts.map +1 -1
  45. package/lib/payment/postfinance-checkout/handler-fastify.js +6 -6
  46. package/lib/payment/postfinance-checkout/handler-fastify.js.map +1 -1
  47. package/lib/payment/postfinance-checkout/index.d.ts +2 -1
  48. package/lib/payment/postfinance-checkout/index.d.ts.map +1 -1
  49. package/lib/payment/postfinance-checkout/index.js +25 -26
  50. package/lib/payment/postfinance-checkout/index.js.map +1 -1
  51. package/lib/payment/postfinance-checkout/utils.d.ts +3 -3
  52. package/lib/payment/postfinance-checkout/utils.d.ts.map +1 -1
  53. package/lib/payment/postfinance-checkout/utils.js +3 -4
  54. package/lib/payment/postfinance-checkout/utils.js.map +1 -1
  55. package/lib/presets/all.d.ts +1 -1
  56. package/package.json +5 -10
  57. package/src/files/gridfs/adapter.ts +13 -4
  58. package/src/files/gridfs/handler-express.ts +8 -2
  59. package/src/files/gridfs/handler-fastify.ts +8 -2
  60. package/src/files/gridfs/module.ts +7 -2
  61. package/src/payment/apple-iap/adapter.ts +1 -1
  62. package/src/payment/apple-iap/handler-express.ts +1 -1
  63. package/src/payment/apple-iap/handler-fastify.ts +1 -1
  64. package/src/payment/cryptopay/handle-webhook.ts +1 -1
  65. package/src/payment/cryptopay/handler-express.ts +1 -1
  66. package/src/payment/cryptopay/handler-fastify.ts +2 -2
  67. package/src/payment/paypal-checkout.ts +5 -10
  68. package/src/payment/postfinance-checkout/api-client.ts +106 -0
  69. package/src/payment/postfinance-checkout/api-types.ts +111 -0
  70. package/src/payment/postfinance-checkout/api.ts +58 -85
  71. package/src/payment/postfinance-checkout/handler-express.ts +5 -7
  72. package/src/payment/postfinance-checkout/handler-fastify.ts +6 -8
  73. package/src/payment/postfinance-checkout/index.ts +41 -31
  74. package/src/payment/postfinance-checkout/utils.ts +5 -10
  75. package/lib/accounts/google-oauth.d.ts +0 -4
  76. package/lib/accounts/google-oauth.d.ts.map +0 -1
  77. package/lib/accounts/google-oauth.js +0 -145
  78. package/lib/accounts/google-oauth.js.map +0 -1
  79. package/lib/accounts/linkedin-oauth.d.ts +0 -4
  80. package/lib/accounts/linkedin-oauth.d.ts.map +0 -1
  81. package/lib/accounts/linkedin-oauth.js +0 -82
  82. package/lib/accounts/linkedin-oauth.js.map +0 -1
  83. package/lib/files/gridfs/gridfs-adapter.d.ts +0 -3
  84. package/lib/files/gridfs/gridfs-adapter.d.ts.map +0 -1
  85. package/lib/files/gridfs/gridfs-adapter.js +0 -97
  86. package/lib/files/gridfs/gridfs-adapter.js.map +0 -1
  87. package/lib/files/gridfs/gridfs-webhook.d.ts +0 -11
  88. package/lib/files/gridfs/gridfs-webhook.d.ts.map +0 -1
  89. package/lib/files/gridfs/gridfs-webhook.js +0 -84
  90. package/lib/files/gridfs/gridfs-webhook.js.map +0 -1
  91. package/lib/files/minio/minio-adapter.d.ts +0 -6
  92. package/lib/files/minio/minio-adapter.d.ts.map +0 -1
  93. package/lib/files/minio/minio-adapter.js +0 -181
  94. package/lib/files/minio/minio-adapter.js.map +0 -1
  95. package/lib/files/minio/minio-webhook.d.ts +0 -2
  96. package/lib/files/minio/minio-webhook.d.ts.map +0 -1
  97. package/lib/files/minio/minio-webhook.js +0 -33
  98. package/lib/files/minio/minio-webhook.js.map +0 -1
  99. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +0 -9
  100. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts.map +0 -1
  101. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +0 -17
  102. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +0 -1
  103. package/lib/payment/cryptopay/middleware.d.ts +0 -2
  104. package/lib/payment/cryptopay/middleware.d.ts.map +0 -1
  105. package/lib/payment/cryptopay/middleware.js +0 -75
  106. package/lib/payment/cryptopay/middleware.js.map +0 -1
  107. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts +0 -25
  108. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts.map +0 -1
  109. package/lib/payment/cryptopay/module/configureCryptopayModule.js +0 -75
  110. package/lib/payment/cryptopay/module/configureCryptopayModule.js.map +0 -1
  111. package/lib/payment/datatrans-v2/middleware.d.ts +0 -2
  112. package/lib/payment/datatrans-v2/middleware.d.ts.map +0 -1
  113. package/lib/payment/datatrans-v2/middleware.js +0 -68
  114. package/lib/payment/datatrans-v2/middleware.js.map +0 -1
  115. package/lib/payment/payrexx/middleware.d.ts +0 -2
  116. package/lib/payment/payrexx/middleware.d.ts.map +0 -1
  117. package/lib/payment/payrexx/middleware.js +0 -86
  118. package/lib/payment/payrexx/middleware.js.map +0 -1
  119. package/lib/payment/postfinance-checkout/middleware.d.ts +0 -2
  120. package/lib/payment/postfinance-checkout/middleware.d.ts.map +0 -1
  121. package/lib/payment/postfinance-checkout/middleware.js +0 -38
  122. package/lib/payment/postfinance-checkout/middleware.js.map +0 -1
  123. package/lib/payment/saferpay/middleware.d.ts +0 -2
  124. package/lib/payment/saferpay/middleware.d.ts.map +0 -1
  125. package/lib/payment/saferpay/middleware.js +0 -57
  126. package/lib/payment/saferpay/middleware.js.map +0 -1
  127. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +0 -10
  128. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts.map +0 -1
  129. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +0 -24
  130. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +0 -1
  131. package/lib/payment/stripe/middleware.d.ts +0 -6
  132. package/lib/payment/stripe/middleware.d.ts.map +0 -1
  133. package/lib/payment/stripe/middleware.js +0 -114
  134. package/lib/payment/stripe/middleware.js.map +0 -1
  135. package/lib/plugins-index.d.ts +0 -48
  136. package/lib/plugins-index.d.ts.map +0 -1
  137. package/lib/plugins-index.js +0 -107
  138. package/lib/plugins-index.js.map +0 -1
  139. package/lib/worker/BaseWorker.d.ts +0 -30
  140. package/lib/worker/BaseWorker.d.ts.map +0 -1
  141. package/lib/worker/BaseWorker.js +0 -79
  142. package/lib/worker/BaseWorker.js.map +0 -1
  143. package/lib/worker/EventListenerWorker.d.ts +0 -6
  144. package/lib/worker/EventListenerWorker.d.ts.map +0 -1
  145. package/lib/worker/EventListenerWorker.js +0 -46
  146. package/lib/worker/EventListenerWorker.js.map +0 -1
  147. package/lib/worker/FailedRescheduler.d.ts +0 -15
  148. package/lib/worker/FailedRescheduler.d.ts.map +0 -1
  149. package/lib/worker/FailedRescheduler.js +0 -45
  150. package/lib/worker/FailedRescheduler.js.map +0 -1
  151. package/lib/worker/IntervalWorker.d.ts +0 -10
  152. package/lib/worker/IntervalWorker.d.ts.map +0 -1
  153. package/lib/worker/IntervalWorker.js +0 -37
  154. package/lib/worker/IntervalWorker.js.map +0 -1
@@ -1,91 +1,55 @@
1
- import * as pf from 'postfinancecheckout';
1
+ import { PostFinanceApiClient } from './api-client.js';
2
+ import {
3
+ Transaction,
4
+ TransactionCreate,
5
+ TransactionCompletion,
6
+ Token,
7
+ RefundCreate,
8
+ RefundType,
9
+ } from './api-types.js';
2
10
 
3
- const { PostFinanceCheckout } = pf;
4
11
  const { PFCHECKOUT_SPACE_ID, PFCHECKOUT_USER_ID, PFCHECKOUT_SECRET } = process.env;
5
12
  const SPACE_ID = parseInt(PFCHECKOUT_SPACE_ID as string, 10);
6
13
  const USER_ID = parseInt(PFCHECKOUT_USER_ID as string, 10);
7
14
 
8
- const getConfig = () => {
9
- return {
10
- space_id: SPACE_ID,
11
- user_id: USER_ID,
12
- api_secret: PFCHECKOUT_SECRET,
13
- };
14
- };
15
-
16
- const getTransactionService = () => {
17
- return new PostFinanceCheckout.api.TransactionService(getConfig());
18
- };
19
-
20
- const getTransactionCompletionService = () => {
21
- return new PostFinanceCheckout.api.TransactionCompletionService(getConfig());
22
- };
23
-
24
- const getTransactionVoidService = () => {
25
- return new PostFinanceCheckout.api.TransactionVoidService(getConfig());
26
- };
27
-
28
- const getRefundService = () => {
29
- return new PostFinanceCheckout.api.RefundService(getConfig());
30
- };
31
-
32
- const getTransactionPaymentPageService = () => {
33
- return new PostFinanceCheckout.api.TransactionPaymentPageService(getConfig());
34
- };
35
-
36
- const getTransactionIframeService = () => {
37
- return new PostFinanceCheckout.api.TransactionIframeService(getConfig());
38
- };
15
+ let apiClient: PostFinanceApiClient;
39
16
 
40
- const getTransactionLightboxService = () => {
41
- return new PostFinanceCheckout.api.TransactionLightboxService(getConfig());
17
+ const getApiClient = () => {
18
+ if (!apiClient) {
19
+ apiClient = new PostFinanceApiClient({
20
+ spaceId: SPACE_ID,
21
+ userId: USER_ID,
22
+ apiSecret: PFCHECKOUT_SECRET as string,
23
+ });
24
+ }
25
+ return apiClient;
42
26
  };
43
27
 
44
- const getTokenService = () => {
45
- return new PostFinanceCheckout.api.TokenService(getConfig());
28
+ export const getTransaction = async (transactionId: string): Promise<Transaction> => {
29
+ const client = getApiClient();
30
+ return client.get<Transaction>(`/transaction/read?spaceId=${SPACE_ID}&id=${transactionId}`);
46
31
  };
47
32
 
48
- export const getTransaction = async (
49
- transactionId: string,
50
- ): Promise<pf.PostFinanceCheckout.model.Transaction> => {
51
- const transactionService = getTransactionService();
52
- const transaction = await transactionService.read(SPACE_ID, parseInt(transactionId, 10));
53
- return transaction.body;
33
+ export const getTransactionCompletion = async (id: string): Promise<TransactionCompletion> => {
34
+ const client = getApiClient();
35
+ return client.get<TransactionCompletion>(`/transaction-completion/read?spaceId=${SPACE_ID}&id=${id}`);
54
36
  };
55
37
 
56
- export const getTransactionCompletion = async (
57
- entityId: string,
58
- ): Promise<pf.PostFinanceCheckout.model.TransactionCompletion> => {
59
- const transactionCompletionService = getTransactionCompletionService();
60
- const transactionCompletion = await transactionCompletionService.read(
61
- SPACE_ID,
62
- parseInt(entityId, 10),
63
- );
64
- return transactionCompletion.body;
38
+ export const getToken = async (spaceId: number, tokenId: number): Promise<Token> => {
39
+ const client = getApiClient();
40
+ return client.get<Token>(`/token/read?spaceId=${spaceId || SPACE_ID}&id=${tokenId}`);
65
41
  };
66
42
 
67
- export const getToken = async (
68
- spaceId: number,
69
- tokenId: number,
70
- ): Promise<pf.PostFinanceCheckout.model.Token> => {
71
- const tokenService = getTokenService();
72
- const token = await tokenService.read(spaceId || SPACE_ID, tokenId);
73
- return token.body;
74
- };
75
-
76
- export const createTransaction = async (
77
- transaction: pf.PostFinanceCheckout.model.TransactionCreate,
78
- ): Promise<number | null> => {
79
- const transactionService = getTransactionService();
80
- const transactionCreateRes = await transactionService.create(SPACE_ID, transaction);
81
- const transactionCreate = transactionCreateRes.body;
82
- return transactionCreate.id || null;
43
+ export const createTransaction = async (transaction: TransactionCreate): Promise<number | null> => {
44
+ const client = getApiClient();
45
+ const result = await client.post<Transaction>(`/transaction/create?spaceId=${SPACE_ID}`, transaction);
46
+ return result.id || null;
83
47
  };
84
48
 
85
49
  export const voidTransaction = async (transactionId: string): Promise<boolean> => {
86
- const transactionVoidService = getTransactionVoidService();
50
+ const client = getApiClient();
87
51
  try {
88
- await transactionVoidService.voidOnline(SPACE_ID, parseInt(transactionId, 10));
52
+ await client.post(`/transaction-void/voidOnline?spaceId=${SPACE_ID}&id=${transactionId}`, {});
89
53
  return true;
90
54
  } catch {
91
55
  return false;
@@ -97,15 +61,15 @@ export const refundTransaction = async (
97
61
  orderId: string,
98
62
  amount: number,
99
63
  ): Promise<boolean> => {
100
- const refundService = getRefundService();
101
- const refund: pf.PostFinanceCheckout.model.RefundCreate = {
64
+ const client = getApiClient();
65
+ const refund: RefundCreate = {
102
66
  transaction: parseInt(transactionId, 10),
103
67
  externalId: orderId,
104
68
  amount,
105
- type: PostFinanceCheckout.model.RefundType.MERCHANT_INITIATED_ONLINE,
69
+ type: RefundType.MERCHANT_INITIATED_ONLINE,
106
70
  };
107
71
  try {
108
- await refundService.refund(SPACE_ID, refund);
72
+ await client.post(`/refund/refund?spaceId=${SPACE_ID}`, refund);
109
73
  return true;
110
74
  } catch {
111
75
  return false;
@@ -113,9 +77,12 @@ export const refundTransaction = async (
113
77
  };
114
78
 
115
79
  export const confirmDeferredTransaction = async (transactionId: string): Promise<boolean> => {
116
- const transactionCompletionService = getTransactionCompletionService();
80
+ const client = getApiClient();
117
81
  try {
118
- await transactionCompletionService.completeOnline(SPACE_ID, parseInt(transactionId, 10));
82
+ await client.post(
83
+ `/transaction-completion/completeOnline?spaceId=${SPACE_ID}&transactionId=${transactionId}`,
84
+ {},
85
+ );
119
86
  return true;
120
87
  } catch {
121
88
  return false;
@@ -123,19 +90,25 @@ export const confirmDeferredTransaction = async (transactionId: string): Promise
123
90
  };
124
91
 
125
92
  export const getPaymentPageUrl = async (transactionId: number): Promise<string> => {
126
- const transactionPaymentPageService = getTransactionPaymentPageService();
127
- const paymentPageUrl = await transactionPaymentPageService.paymentPageUrl(SPACE_ID, transactionId);
128
- return paymentPageUrl.body;
93
+ const client = getApiClient();
94
+ const result = await client.get<string>(
95
+ `/transaction-payment-page/payment-page-url?spaceId=${SPACE_ID}&id=${transactionId}`,
96
+ );
97
+ return result;
129
98
  };
130
99
 
131
100
  export const getLightboxJavascriptUrl = async (transactionId: number): Promise<string> => {
132
- const transactionLightboxService = getTransactionLightboxService();
133
- const javascriptUrl = await transactionLightboxService.javascriptUrl(SPACE_ID, transactionId);
134
- return javascriptUrl.body;
101
+ const client = getApiClient();
102
+ const result = await client.get<string>(
103
+ `/transaction-lightbox/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`,
104
+ );
105
+ return result;
135
106
  };
136
107
 
137
108
  export const getIframeJavascriptUrl = async (transactionId: number): Promise<string> => {
138
- const transactionIframeService = getTransactionIframeService();
139
- const javascriptUrl = await transactionIframeService.javascriptUrl(SPACE_ID, transactionId);
140
- return javascriptUrl.body;
109
+ const client = getApiClient();
110
+ const result = await client.get<string>(
111
+ `/transaction-iframe/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`,
112
+ );
113
+ return result;
141
114
  };
@@ -3,7 +3,7 @@ import { createLogger } from '@unchainedshop/logger';
3
3
  import { WebhookData } from './types.js';
4
4
  import { getTransaction, getTransactionCompletion } from './api.js';
5
5
 
6
- const logger = createLogger('unchained:core-payment:postfinance-checkout');
6
+ const logger = createLogger('unchained:core-payment:postfinance-checkout:handler');
7
7
 
8
8
  export const postfinanceCheckoutHandler = async (req, res) => {
9
9
  const context = req.unchainedContext as Context;
@@ -13,7 +13,7 @@ export const postfinanceCheckoutHandler = async (req, res) => {
13
13
  try {
14
14
  const transactionCompletion = await getTransactionCompletion(data.entityId as unknown as string);
15
15
  const transaction = await getTransaction(
16
- transactionCompletion.linkedTransaction as unknown as string,
16
+ transactionCompletion ? (transactionCompletion as any).linkedTransaction : data.entityId,
17
17
  );
18
18
  const { orderPaymentId } = transaction.metaData as { orderPaymentId: string };
19
19
  const orderPayment = await modules.orders.payments.findOrderPayment({
@@ -27,19 +27,17 @@ export const postfinanceCheckoutHandler = async (req, res) => {
27
27
  },
28
28
  });
29
29
  logger.info(
30
- `PostFinance Checkout Webhook: Transaction ${transactionCompletion.linkedTransaction} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
30
+ `Transaction ${transactionCompletion.linkedTransaction} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
31
31
  );
32
32
  res.writeHead(200);
33
33
  res.end(`Order marked as paid: ${order.orderNumber}`);
34
34
  } catch (e) {
35
- logger.error(`PostFinance Checkout Webhook: Unchained rejected to checkout with message`, e);
35
+ logger.error(e);
36
36
  res.writeHead(500);
37
37
  res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
38
38
  }
39
39
  } else {
40
- logger.error(
41
- `PostFinance Checkout Webhook: Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`,
42
- );
40
+ logger.error(`Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`);
43
41
  res.writeHead(404);
44
42
  res.end();
45
43
  }
@@ -4,7 +4,7 @@ import { WebhookData } from './types.js';
4
4
  import { getTransaction, getTransactionCompletion } from './api.js';
5
5
  import { FastifyRequest, RouteHandlerMethod } from 'fastify';
6
6
 
7
- const logger = createLogger('unchained:core-payment:postfinance-checkout');
7
+ const logger = createLogger('unchained:core-payment:postfinance-checkout:handler');
8
8
 
9
9
  export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
10
10
  req: FastifyRequest & {
@@ -19,7 +19,7 @@ export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
19
19
  try {
20
20
  const transactionCompletion = await getTransactionCompletion(data.entityId as unknown as string);
21
21
  const transaction = await getTransaction(
22
- transactionCompletion.linkedTransaction as unknown as string,
22
+ transactionCompletion ? (transactionCompletion as any).linkedTransaction : data.entityId,
23
23
  );
24
24
  const { orderPaymentId } = transaction.metaData as { orderPaymentId: string };
25
25
  const orderPayment = await modules.orders.payments.findOrderPayment({
@@ -29,23 +29,21 @@ export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
29
29
 
30
30
  const order = await services.orders.checkoutOrder(orderPayment.orderId, {
31
31
  paymentContext: {
32
- transactionId: transactionCompletion.linkedTransaction,
32
+ transactionId: transaction.id,
33
33
  },
34
34
  });
35
35
  logger.info(
36
- `PostFinance Checkout Webhook: Transaction ${transactionCompletion.linkedTransaction} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
36
+ `Transaction ${transaction.id} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
37
37
  );
38
38
  reply.status(200);
39
39
  return reply.send(`Order marked as paid: ${order.orderNumber}`);
40
40
  } catch (e) {
41
- logger.error(`PostFinance Checkout Webhook: Unchained rejected to checkout with message`, e);
41
+ logger.error(e);
42
42
  reply.status(500);
43
43
  return reply.send({ name: e.name, code: e.code, message: e.message });
44
44
  }
45
45
  } else {
46
- logger.error(
47
- `PostFinance Checkout Webhook: Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`,
48
- );
46
+ logger.error(`Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`);
49
47
  reply.status(404);
50
48
  return reply.send();
51
49
  }
@@ -8,7 +8,6 @@ import {
8
8
  PaymentDirector,
9
9
  PaymentError,
10
10
  } from '@unchainedshop/core';
11
- import * as pf from 'postfinancecheckout';
12
11
 
13
12
  import {
14
13
  confirmDeferredTransaction,
@@ -23,8 +22,15 @@ import {
23
22
  } from './api.js';
24
23
  import { orderIsPaid } from './utils.js';
25
24
  import { CompletionModes, IntegrationModes, SignResponse } from './types.js';
26
-
27
- const { PostFinanceCheckout } = pf;
25
+ import {
26
+ TransactionCreate,
27
+ LineItem,
28
+ LineItemType,
29
+ TokenizationMode,
30
+ TransactionCompletionBehavior,
31
+ TransactionState,
32
+ CreationEntityState,
33
+ } from './api-types.js';
28
34
 
29
35
  const {
30
36
  PFCHECKOUT_SPACE_ID,
@@ -34,7 +40,7 @@ const {
34
40
  PFCHECKOUT_FAILED_URL,
35
41
  } = process.env;
36
42
 
37
- const logger = createLogger('unchained:core-payment:postfinance');
43
+ const logger = createLogger('unchained:core-payment:postfinance-checkout');
38
44
 
39
45
  const newError = ({ code, message }: { code: string; message: string }) => {
40
46
  const error = new Error(message);
@@ -92,7 +98,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
92
98
  if (!credentials.meta) return false;
93
99
  const { linkedSpaceId } = credentials.meta;
94
100
  const tokenData = await getToken(linkedSpaceId, credentials.token);
95
- return tokenData.state === PostFinanceCheckout.model.CreationEntityState.ACTIVE;
101
+ return tokenData.state === CreationEntityState.ACTIVE;
96
102
  },
97
103
 
98
104
  sign: async (transactionContext: any = {}) => {
@@ -107,37 +113,38 @@ const PostfinanceCheckout: IPaymentAdapter = {
107
113
  });
108
114
 
109
115
  const totalAmount = pricing?.total({ useNetPrice: false }).amount;
110
- const transaction = new PostFinanceCheckout.model.TransactionCreate();
111
- const userId = order?.userId || context?.userId;
112
- transaction.currency = order.currencyCode;
113
- transaction.metaData = {
114
- orderPaymentId: orderPayment._id,
116
+ const transaction: TransactionCreate = {
117
+ currency: order.currencyCode,
118
+ metaData: {
119
+ orderPaymentId: orderPayment._id,
120
+ },
121
+ successUrl: `${transactionContext?.successUrl || PFCHECKOUT_SUCCESS_URL}?order_id=${
122
+ orderPayment.orderId
123
+ }`,
124
+ failedUrl: `${transactionContext?.failedUrl || PFCHECKOUT_FAILED_URL}?order_id=${
125
+ orderPayment.orderId
126
+ }`,
127
+ customerId: order?.userId || context?.userId,
128
+ tokenizationMode: TokenizationMode.ALLOW_ONE_CLICK_PAYMENT,
115
129
  };
116
- transaction.successUrl = `${transactionContext?.successUrl || PFCHECKOUT_SUCCESS_URL}?order_id=${
117
- orderPayment.orderId
118
- }`;
119
- transaction.failedUrl = `${transactionContext?.failedUrl || PFCHECKOUT_FAILED_URL}?order_id=${
120
- orderPayment.orderId
121
- }`;
122
- transaction.customerId = userId;
123
- transaction.tokenizationMode =
124
- PostFinanceCheckout.model.TokenizationMode.ALLOW_ONE_CLICK_PAYMENT;
130
+
125
131
  if (completionMode === CompletionModes.Immediate) {
126
- transaction.completionBehavior =
127
- PostFinanceCheckout.model.TransactionCompletionBehavior.COMPLETE_IMMEDIATELY;
132
+ transaction.completionBehavior = TransactionCompletionBehavior.COMPLETE_IMMEDIATELY;
128
133
  } else if (completionMode === CompletionModes.Deferred) {
129
- transaction.completionBehavior =
130
- PostFinanceCheckout.model.TransactionCompletionBehavior.COMPLETE_DEFERRED;
134
+ transaction.completionBehavior = TransactionCompletionBehavior.COMPLETE_DEFERRED;
131
135
  }
136
+
132
137
  if (totalAmount) {
133
- const lineItemSum = new PostFinanceCheckout.model.LineItemCreate();
134
- lineItemSum.name = `Bestellung ${orderPayment.orderId}`;
135
- lineItemSum.type = PostFinanceCheckout.model.LineItemType.FEE;
136
- lineItemSum.quantity = 1;
137
- lineItemSum.uniqueId = orderPayment.orderId;
138
- lineItemSum.amountIncludingTax = totalAmount / 100;
138
+ const lineItemSum: LineItem = {
139
+ name: `Bestellung ${orderPayment.orderId}`,
140
+ type: LineItemType.FEE,
141
+ quantity: 1,
142
+ uniqueId: orderPayment.orderId,
143
+ amountIncludingTax: totalAmount / 100,
144
+ };
139
145
  transaction.lineItems = [lineItemSum];
140
146
  }
147
+
141
148
  const transactionId = await createTransaction(transaction);
142
149
  let location = null;
143
150
  if (integrationMode === IntegrationModes.PaymentPage) {
@@ -214,7 +221,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
214
221
  return false;
215
222
  }
216
223
  const transaction = await getTransaction(transactionId);
217
- const refund = transaction.state === PostFinanceCheckout.model.TransactionState.FULFILL;
224
+ const refund = transaction.state === TransactionState.FULFILL;
218
225
  const pricing = OrderPricingSheet({
219
226
  calculation: order.calculation,
220
227
  currencyCode: order.currencyCode,
@@ -235,7 +242,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
235
242
  return false;
236
243
  }
237
244
  const transaction = await getTransaction(transactionId);
238
- if (transaction.state === PostFinanceCheckout.model.TransactionState.AUTHORIZED) {
245
+ if (transaction.state === TransactionState.AUTHORIZED) {
239
246
  return confirmDeferredTransaction(transactionId);
240
247
  }
241
248
  return false;
@@ -247,3 +254,6 @@ const PostfinanceCheckout: IPaymentAdapter = {
247
254
  };
248
255
 
249
256
  PaymentDirector.registerAdapter(PostfinanceCheckout);
257
+
258
+ export * from './types.js';
259
+ export * from './api-types.js';
@@ -1,22 +1,20 @@
1
1
  import { OrderPricingSheet } from '@unchainedshop/core';
2
2
  import { Order } from '@unchainedshop/core-orders';
3
- import * as pf from 'postfinancecheckout';
4
-
5
- const { PostFinanceCheckout } = pf;
3
+ import { Transaction, TransactionState } from './api-types.js';
6
4
 
7
5
  export const transactionIsPaid = async (
8
- transaction: pf.PostFinanceCheckout.model.Transaction,
6
+ transaction: Transaction,
9
7
  expectedCurrency: string,
10
8
  expectedAmount: number,
11
9
  ): Promise<boolean> => {
12
- if (transaction.state === PostFinanceCheckout.model.TransactionState.FULFILL) {
10
+ if (transaction.state === TransactionState.FULFILL) {
13
11
  return (
14
12
  transaction.completedAmount !== undefined &&
15
13
  transaction.completedAmount.toFixed(2) === expectedAmount.toFixed(2) &&
16
14
  transaction.currency === expectedCurrency
17
15
  );
18
16
  }
19
- if (transaction.state === PostFinanceCheckout.model.TransactionState.AUTHORIZED) {
17
+ if (transaction.state === TransactionState.AUTHORIZED) {
20
18
  return (
21
19
  transaction.authorizationAmount !== undefined &&
22
20
  transaction.authorizationAmount.toFixed(2) === expectedAmount.toFixed(2) &&
@@ -26,10 +24,7 @@ export const transactionIsPaid = async (
26
24
  return false;
27
25
  };
28
26
 
29
- export const orderIsPaid = async (
30
- order: Order,
31
- transaction: pf.PostFinanceCheckout.model.Transaction,
32
- ): Promise<boolean> => {
27
+ export const orderIsPaid = async (order: Order, transaction: Transaction): Promise<boolean> => {
33
28
  const pricing = OrderPricingSheet({
34
29
  calculation: order.calculation,
35
30
  currencyCode: order.currencyCode,
@@ -1,4 +0,0 @@
1
- import { IOAuth2Adapter } from '@unchainedshop/types/accounts.js';
2
- declare const GoogleOAuth2Adapter: IOAuth2Adapter;
3
- export default GoogleOAuth2Adapter;
4
- //# sourceMappingURL=google-oauth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-oauth.d.ts","sourceRoot":"","sources":["../../src/accounts/google-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAmFlE,QAAA,MAAM,mBAAmB,EAAE,cA4F1B,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
@@ -1,145 +0,0 @@
1
- import { OAuth2Director, OAuth2Adapter } from '@unchainedshop/core-accountsjs';
2
- const { GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET } = process.env;
3
- const getGoggleAuthorizationCode = async ({ code, redirectUri, clientId, clientSecret, }) => {
4
- const response = await fetch('https://oauth2.googleapis.com/token', {
5
- method: 'POST',
6
- headers: {
7
- 'Content-Type': 'application/json',
8
- },
9
- // eslint-disable-next-line
10
- // @ts-ignore
11
- duplex: 'half',
12
- body: JSON.stringify({
13
- code,
14
- client_id: clientId,
15
- grant_type: 'authorization_code',
16
- client_secret: clientSecret,
17
- redirect_uri: redirectUri,
18
- access_type: 'offline',
19
- }),
20
- });
21
- return response.json();
22
- };
23
- const normalizeProfileData = (data) => {
24
- const { names = [], genders = [], addresses = [], emailAddresses = [], phoneNumbers = [], birthdays = [], photos = [], } = data;
25
- const [name] = names;
26
- const [gender] = genders;
27
- const [email] = emailAddresses;
28
- const [birthday] = birthdays;
29
- const [phone] = phoneNumbers;
30
- const [address] = addresses;
31
- const [photo] = photos;
32
- return {
33
- id: data.sub,
34
- firstName: name?.givenName,
35
- lastName: name?.familyName,
36
- displayName: name?.displayName,
37
- gender: gender?.value,
38
- email: email?.value,
39
- birthDate: birthday?.date
40
- ? new Date(birthday?.date?.year ?? 0, birthdays?.date?.month ?? 0, birthday?.date?.day ?? 0)
41
- : undefined,
42
- phoneNumber: phone?.canonicalForm,
43
- address: address?.formattedValue,
44
- avatarUrl: photo?.url,
45
- };
46
- };
47
- const parseGoogleIdToken = (idToken) => {
48
- const [, base64UserInfo] = idToken.split('.');
49
- const buff = Buffer.from(base64UserInfo, 'base64');
50
- const data = JSON.parse(buff.toString());
51
- return {
52
- id: data.sub,
53
- email: data?.email,
54
- firstName: data?.given_name,
55
- lastName: data?.family_name,
56
- avatarUrl: data?.picture,
57
- fullName: data?.name,
58
- exp: data?.exp,
59
- ...data,
60
- };
61
- };
62
- const GoogleOAuth2Adapter = {
63
- ...OAuth2Adapter,
64
- key: 'google-oauth2',
65
- label: 'Google Oauth',
66
- version: '1',
67
- provider: 'google',
68
- config: {
69
- clientId: GOOGLE_OAUTH_CLIENT_ID,
70
- scopes: [
71
- 'genders',
72
- 'emailAddresses',
73
- 'phoneNumbers',
74
- 'addresses',
75
- 'birthdays',
76
- 'metadata',
77
- 'names',
78
- 'photos',
79
- 'locations',
80
- ],
81
- },
82
- actions: () => {
83
- return {
84
- ...OAuth2Adapter.actions(null),
85
- configurationError: () => {
86
- return '';
87
- },
88
- isActive: () => {
89
- return Boolean(GOOGLE_OAUTH_CLIENT_ID && GOOGLE_OAUTH_CLIENT_SECRET);
90
- },
91
- getAuthorizationToken: async (authorizationCode, redirectUrl) => {
92
- return getGoggleAuthorizationCode({
93
- code: authorizationCode,
94
- clientId: GoogleOAuth2Adapter.config.clientId,
95
- redirectUri: redirectUrl,
96
- clientSecret: GOOGLE_OAUTH_CLIENT_SECRET,
97
- });
98
- },
99
- getAccountData: async ({ access_token, id_token }) => {
100
- const response = await fetch(`https://people.googleapis.com/v1/people/me?personFields=${GoogleOAuth2Adapter.config.scopes.join(',')}`, {
101
- headers: {
102
- Authorization: `Bearer ${access_token}`,
103
- },
104
- });
105
- if (response.status === 403)
106
- return parseGoogleIdToken(id_token);
107
- const profileInfoJSON = await response.json();
108
- if (profileInfoJSON?.error)
109
- throw new Error(profileInfoJSON?.error.message);
110
- return normalizeProfileData(profileInfoJSON);
111
- },
112
- isTokenValid: async (accessToken) => {
113
- const response = await fetch(`https://oauth2.googleapis.com/tokeninfo?id_token=${accessToken?.id_token}`);
114
- const tokenInfo = await response.json();
115
- if (tokenInfo.error) {
116
- return false;
117
- }
118
- return true;
119
- },
120
- refreshToken: async ({ refresh_token }) => {
121
- const response = await fetch('https://oauth2.googleapis.com/token', {
122
- method: 'POST',
123
- // eslint-disable-next-line
124
- // @ts-ignore
125
- duplex: 'half',
126
- headers: {
127
- 'Content-Type': 'application/json',
128
- },
129
- body: JSON.stringify({
130
- client_id: GoogleOAuth2Adapter.config.clientId,
131
- grant_type: 'refresh_token',
132
- client_secret: GOOGLE_OAUTH_CLIENT_SECRET,
133
- refresh_token,
134
- access_type: 'offline',
135
- }),
136
- });
137
- const refreshedAccessToken = await response.json();
138
- return refreshedAccessToken;
139
- },
140
- };
141
- },
142
- };
143
- OAuth2Director.registerAdapter(GoogleOAuth2Adapter);
144
- export default GoogleOAuth2Adapter;
145
- //# sourceMappingURL=google-oauth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-oauth.js","sourceRoot":"","sources":["../../src/accounts/google-oauth.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { IOAuth2Adapter } from '@unchainedshop/types/accounts.js';
2
- declare const LinkedInOAuthAdapter: IOAuth2Adapter;
3
- export default LinkedInOAuthAdapter;
4
- //# sourceMappingURL=linkedin-oauth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkedin-oauth.d.ts","sourceRoot":"","sources":["../../src/accounts/linkedin-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA2ClE,QAAA,MAAM,oBAAoB,EAAE,cAsD3B,CAAC;AAIF,eAAe,oBAAoB,CAAC"}