@unchainedshop/core-payment 2.0.0-beta7 → 2.0.0-beta9

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 (49) hide show
  1. package/jest.config.js +9 -0
  2. package/lib/db/PaymentProvidersSchema.js +0 -1
  3. package/lib/db/PaymentProvidersSchema.js.map +1 -1
  4. package/lib/director/PaymentDirector.js +3 -3
  5. package/lib/director/PaymentDirector.js.map +1 -1
  6. package/lib/director/PaymentPricingDirector.js +9 -9
  7. package/lib/director/PaymentPricingDirector.js.map +1 -1
  8. package/lib/module/configurePaymentCredentialsModule.js +0 -2
  9. package/lib/module/configurePaymentCredentialsModule.js.map +1 -1
  10. package/lib/module/configurePaymentModule.js +20 -2
  11. package/lib/module/configurePaymentModule.js.map +1 -1
  12. package/lib/module/configurePaymentProvidersModule.d.ts +5 -1
  13. package/lib/module/configurePaymentProvidersModule.js +39 -39
  14. package/lib/module/configurePaymentProvidersModule.js.map +1 -1
  15. package/lib/payment-index.d.ts +0 -1
  16. package/lib/payment-index.js +0 -1
  17. package/lib/payment-index.js.map +1 -1
  18. package/lib/payment-settings.js +2 -13
  19. package/lib/payment-settings.js.map +1 -1
  20. package/package.json +10 -9
  21. package/src/db/PaymentProvidersSchema.js +0 -1
  22. package/src/director/PaymentDirector.ts +3 -3
  23. package/src/director/PaymentPricingDirector.ts +9 -9
  24. package/src/module/configurePaymentCredentialsModule.ts +0 -2
  25. package/src/module/configurePaymentModule.ts +32 -2
  26. package/src/module/configurePaymentProvidersModule.ts +43 -47
  27. package/src/payment-index.ts +0 -1
  28. package/src/payment-settings.ts +1 -16
  29. package/tests/payment-index.test.ts +12 -43
  30. package/lib/service/cancelService.d.ts +0 -2
  31. package/lib/service/cancelService.js +0 -13
  32. package/lib/service/cancelService.js.map +0 -1
  33. package/lib/service/chargeService.d.ts +0 -2
  34. package/lib/service/chargeService.js +0 -33
  35. package/lib/service/chargeService.js.map +0 -1
  36. package/lib/service/confirmService.d.ts +0 -2
  37. package/lib/service/confirmService.js +0 -13
  38. package/lib/service/confirmService.js.map +0 -1
  39. package/lib/service/paymentServices.d.ts +0 -2
  40. package/lib/service/paymentServices.js +0 -11
  41. package/lib/service/paymentServices.js.map +0 -1
  42. package/lib/service/registerPaymentCredentialsService.d.ts +0 -2
  43. package/lib/service/registerPaymentCredentialsService.js +0 -17
  44. package/lib/service/registerPaymentCredentialsService.js.map +0 -1
  45. package/src/service/cancelService.ts +0 -24
  46. package/src/service/chargeService.ts +0 -47
  47. package/src/service/confirmService.ts +0 -24
  48. package/src/service/paymentServices.ts +0 -12
  49. package/src/service/registerPaymentCredentialsService.ts +0 -28
@@ -15,8 +15,38 @@ export const configurePaymentModule = async ({
15
15
 
16
16
  paymentSettings.configureSettings(paymentOptions);
17
17
 
18
+ const paymentProviders = configurePaymentProvidersModule(PaymentProviders);
19
+ const paymentCredentials = configurePaymentCredentialsModule(PaymentCredentials);
20
+
21
+ const registerCredentials: PaymentModule['registerCredentials'] = async (
22
+ paymentProviderId,
23
+ paymentContext,
24
+ unchainedAPI,
25
+ ) => {
26
+ const registration = await paymentProviders.register(
27
+ paymentProviderId,
28
+ paymentContext,
29
+ unchainedAPI,
30
+ );
31
+
32
+ if (!registration) return null;
33
+
34
+ const paymentCredentialsId = await paymentCredentials.upsertCredentials({
35
+ userId: paymentContext.userId,
36
+ paymentProviderId,
37
+ ...registration,
38
+ });
39
+
40
+ return paymentCredentials.findPaymentCredential({
41
+ paymentCredentialsId,
42
+ userId: paymentContext.userId,
43
+ paymentProviderId,
44
+ });
45
+ };
46
+
18
47
  return {
19
- paymentProviders: configurePaymentProvidersModule(PaymentProviders),
20
- paymentCredentials: configurePaymentCredentialsModule(PaymentCredentials),
48
+ paymentProviders,
49
+ paymentCredentials,
50
+ registerCredentials,
21
51
  };
22
52
  };
@@ -1,6 +1,5 @@
1
- import { Context } from '@unchainedshop/types/api';
2
1
  import { Collection } from '@unchainedshop/types/common';
3
- import { ModuleMutations } from '@unchainedshop/types/core';
2
+ import { ModuleMutations, UnchainedCore } from '@unchainedshop/types/core';
4
3
  import {
5
4
  PaymentContext,
6
5
  PaymentModule,
@@ -21,7 +20,7 @@ const PAYMENT_PROVIDER_EVENTS: string[] = [
21
20
  'PAYMENT_PROVIDER_REMOVE',
22
21
  ];
23
22
 
24
- const buildFindSelector = ({ type }: PaymentProviderQuery = {}) => {
23
+ export const buildFindSelector = ({ type }: PaymentProviderQuery = {}) => {
25
24
  return { ...(type ? { type } : {}), deleted: null };
26
25
  };
27
26
 
@@ -44,11 +43,11 @@ export const configurePaymentProvidersModule = (
44
43
  const getPaymentAdapter = async (
45
44
  paymentProviderId: string,
46
45
  paymentContext: PaymentContext,
47
- requestContext: Context,
46
+ unchainedAPI: UnchainedCore,
48
47
  ) => {
49
48
  const provider = await PaymentProviders.findOne(generateDbFilterById(paymentProviderId), {});
50
49
 
51
- return PaymentDirector.actions(provider, paymentContext, requestContext);
50
+ return PaymentDirector.actions(provider, paymentContext, unchainedAPI);
52
51
  };
53
52
 
54
53
  return {
@@ -102,13 +101,13 @@ export const configurePaymentProvidersModule = (
102
101
  }));
103
102
  },
104
103
 
105
- findSupported: async (paymentContext, requestContext) => {
104
+ findSupported: async (paymentContext, unchainedAPI) => {
106
105
  const allProviders = await PaymentProviders.find({ deleted: null }).toArray();
107
106
  const providers: PaymentProvider[] = await asyncFilter(
108
107
  allProviders,
109
108
  async (provider: PaymentProvider) => {
110
109
  try {
111
- const director = await PaymentDirector.actions(provider, paymentContext, requestContext);
110
+ const director = await PaymentDirector.actions(provider, paymentContext, unchainedAPI);
112
111
  return director.isActive();
113
112
  } catch {
114
113
  return false;
@@ -121,110 +120,107 @@ export const configurePaymentProvidersModule = (
121
120
  providers,
122
121
  order: paymentContext.order,
123
122
  },
124
- requestContext,
123
+ unchainedAPI,
125
124
  );
126
125
  },
127
126
 
128
- determineDefault: async (paymentProviders, deliveryContext, requestContext) => {
127
+ determineDefault: async (paymentProviders, deliveryContext, unchainedAPI) => {
129
128
  return paymentSettings.determineDefaultProvider(
130
129
  {
131
130
  providers: paymentProviders,
132
131
  ...deliveryContext,
133
132
  },
134
- requestContext,
133
+ unchainedAPI,
135
134
  );
136
135
  },
137
136
 
138
137
  // Payment Adapter
139
138
 
140
- configurationError: async (paymentProvider, requestContext) => {
141
- const actions = await PaymentDirector.actions(paymentProvider, {}, requestContext);
139
+ configurationError: async (paymentProvider, unchainedAPI) => {
140
+ const actions = await PaymentDirector.actions(paymentProvider, {}, unchainedAPI);
142
141
  return actions.configurationError();
143
142
  },
144
143
 
145
- calculate: async (pricingContext, requestContext) => {
146
- const pricing = await PaymentPricingDirector.actions(pricingContext, requestContext);
144
+ calculate: async (pricingContext, unchainedAPI) => {
145
+ const pricing = await PaymentPricingDirector.actions(pricingContext, unchainedAPI);
147
146
  return pricing.calculate();
148
147
  },
149
148
 
150
- isActive: async (paymentProvider, requestContext) => {
151
- const actions = await PaymentDirector.actions(paymentProvider, {}, requestContext);
149
+ isActive: async (paymentProvider, unchainedAPI) => {
150
+ const actions = await PaymentDirector.actions(paymentProvider, {}, unchainedAPI);
152
151
  return actions.isActive();
153
152
  },
154
153
 
155
- isPayLaterAllowed: async (paymentProvider, requestContext) => {
156
- const actions = await PaymentDirector.actions(paymentProvider, {}, requestContext);
154
+ isPayLaterAllowed: async (paymentProvider, unchainedAPI) => {
155
+ const actions = await PaymentDirector.actions(paymentProvider, {}, unchainedAPI);
157
156
  return actions.isPayLaterAllowed();
158
157
  },
159
158
 
160
- charge: async (paymentProviderId, paymentContext, requestContext) => {
161
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
159
+ charge: async (paymentProviderId, paymentContext, unchainedAPI) => {
160
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
162
161
  return adapter.charge();
163
162
  },
164
163
 
165
- register: async (paymentProviderId, paymentContext, requestContext) => {
166
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
164
+ register: async (paymentProviderId, paymentContext, unchainedAPI) => {
165
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
167
166
  return adapter.register();
168
167
  },
169
168
 
170
- sign: async (paymentProviderId, paymentContext, requestContext) => {
171
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
169
+ sign: async (paymentProviderId, paymentContext, unchainedAPI) => {
170
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
172
171
  return adapter.sign();
173
172
  },
174
173
 
175
- validate: async (paymentProviderId, paymentContext, requestContext) => {
176
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
174
+ validate: async (paymentProviderId, paymentContext, unchainedAPI) => {
175
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
177
176
  return adapter.validate();
178
177
  },
179
178
 
180
- cancel: async (paymentProviderId, paymentContext, requestContext) => {
181
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
179
+ cancel: async (paymentProviderId, paymentContext, unchainedAPI) => {
180
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
182
181
  return adapter.cancel();
183
182
  },
184
183
 
185
- confirm: async (paymentProviderId, paymentContext, requestContext) => {
186
- const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, requestContext);
184
+ confirm: async (paymentProviderId, paymentContext, unchainedAPI) => {
185
+ const adapter = await getPaymentAdapter(paymentProviderId, paymentContext, unchainedAPI);
187
186
  return adapter.confirm();
188
187
  },
189
188
 
190
189
  // Mutations
191
- create: async (doc, userId) => {
190
+ create: async (doc) => {
192
191
  const Adapter = PaymentDirector.getAdapter(doc.adapterKey);
193
192
  if (!Adapter) return null;
194
193
 
195
- const paymentProviderId = await mutations.create(
196
- {
197
- configuration: Adapter.initialConfiguration,
198
- ...doc,
199
- },
200
- userId,
201
- );
194
+ const paymentProviderId = await mutations.create({
195
+ configuration: Adapter.initialConfiguration,
196
+ ...doc,
197
+ });
202
198
 
203
199
  const paymentProvider = await PaymentProviders.findOne(
204
200
  generateDbFilterById(paymentProviderId),
205
201
  {},
206
202
  );
207
- emit('PAYMENT_PROVIDER_CREATE', { paymentProvider });
203
+ await emit('PAYMENT_PROVIDER_CREATE', { paymentProvider });
208
204
  return paymentProvider;
209
205
  },
210
206
 
211
- update: async (_id: string, doc: PaymentProvider, userId: string) => {
212
- await mutations.update(_id, doc, userId);
207
+ update: async (_id: string, doc: PaymentProvider) => {
208
+ await mutations.update(_id, doc);
213
209
  const paymentProvider = await PaymentProviders.findOne(generateDbFilterById(_id), {});
214
- emit('PAYMENT_PROVIDER_UPDATE', { paymentProvider });
210
+ await emit('PAYMENT_PROVIDER_UPDATE', { paymentProvider });
215
211
  return paymentProvider;
216
212
  },
217
213
 
218
- delete: async (_id, userId) => {
219
- await mutations.delete(_id, userId);
214
+ delete: async (_id) => {
215
+ await mutations.delete(_id);
220
216
  const paymentProvider = await PaymentProviders.findOne(generateDbFilterById(_id), {});
221
- emit('PAYMENT_PROVIDER_REMOVE', { paymentProvider });
217
+ await emit('PAYMENT_PROVIDER_REMOVE', { paymentProvider });
222
218
  return paymentProvider;
223
219
  },
224
220
 
225
- deletePermanently: async (_id, userId) => {
221
+ deletePermanently: async (_id) => {
226
222
  const deliveryProvider = await PaymentProviders.findOne(generateDbFilterById(_id), {});
227
- await mutations.deletePermanently(_id, userId);
223
+ await mutations.deletePermanently(_id);
228
224
  return deliveryProvider;
229
225
  },
230
226
  };
@@ -1,6 +1,5 @@
1
1
  export { configurePaymentModule } from './module/configurePaymentModule';
2
2
 
3
- export { paymentServices } from './service/paymentServices';
4
3
  export { paymentSettings } from './payment-settings';
5
4
 
6
5
  export { PaymentDirector } from './director/PaymentDirector';
@@ -4,9 +4,6 @@ import {
4
4
  FilterProviders,
5
5
  DetermineDefaultProvider,
6
6
  } from '@unchainedshop/types/payments';
7
- import { createLogger } from '@unchainedshop/logger';
8
-
9
- const logger = createLogger('unchained:core-payment');
10
7
 
11
8
  const sortByCreationDate = (left: PaymentProvider, right: PaymentProvider) => {
12
9
  return new Date(left.created).getTime() - new Date(right.created).getTime();
@@ -26,27 +23,15 @@ const firstProviderIsDefault: DetermineDefaultProvider = async ({ providers, pay
26
23
  return providers?.length > 0 && providers[0];
27
24
  };
28
25
 
29
- const defaultFilterSupportedProviders =
30
- (sortProviders) =>
31
- async ({ providers }) => {
32
- return providers.sort(sortProviders);
33
- };
34
-
35
26
  export const paymentSettings: PaymentSettings = {
36
27
  filterSupportedProviders: null,
37
28
  determineDefaultProvider: null,
38
29
 
39
30
  configureSettings({
40
- sortProviders = undefined,
41
31
  filterSupportedProviders = allProviders,
42
32
  determineDefaultProvider = firstProviderIsDefault,
43
33
  } = {}) {
44
- if (sortProviders) {
45
- logger.warn('sortProviders is deprecated, please specifc filterSupportedProviders instead');
46
- paymentSettings.filterSupportedProviders = defaultFilterSupportedProviders(sortProviders);
47
- } else {
48
- paymentSettings.filterSupportedProviders = filterSupportedProviders;
49
- }
34
+ paymentSettings.filterSupportedProviders = filterSupportedProviders;
50
35
  paymentSettings.determineDefaultProvider = determineDefaultProvider;
51
36
  },
52
37
  };
@@ -1,47 +1,16 @@
1
- import { assert } from 'chai';
2
- import { initDb } from '@unchainedshop/mongodb';
3
- import { configurePaymentModule } from '@unchainedshop/core-payment';
1
+ import { PaymentProviderType } from "../src/director/PaymentProviderType";
2
+ import { buildFindSelector } from "../src/module/configurePaymentProvidersModule";
4
3
 
5
- describe('Test exports', () => {
6
- let module;
7
4
 
8
- before(async () => {
9
- const db = await initDb();
10
- module = await configurePaymentModule({ db });
11
- });
5
+ describe('Payment', () => {
6
+ describe('buildFindSelector', () => {
7
+ it('Return correct filter object when passed no argument', async () => {
8
+ expect(buildFindSelector({})).toEqual({ deleted: null })
9
+ });
12
10
 
13
- it('Check Bookmarks module', async () => {
14
- assert.ok(module);
15
- assert.isFunction(module.findCurrency);
16
- assert.isFunction(module.findPayment);
17
- assert.isFunction(module.currencyExists);
18
- assert.isFunction(module.create);
19
- assert.isFunction(module.update);
20
- assert.isFunction(module.delete);
21
- });
22
-
23
- it('Mutate currency', async () => {
24
- const currencyId = await module.create(
25
- {
26
- authorId: 'Test-User-1',
27
- isoCode: 'CHF',
28
- },
29
- 'Test-User-1'
30
- );
31
-
32
- assert.ok(currencyId);
33
- const currency = await module.findCurrency(currencyId);
34
-
35
- assert.ok(currency);
36
- assert.equal(currency._id, currencyId);
37
- assert.equal(currency.isoCode, 'CHF');
38
- assert.equal(currency.userId, 'Test-User-1');
39
- assert.isDefined(currency.created);
40
- assert.isUndefined(currency.updated);
41
- assert.isUndefined(currency.updatedBy);
42
- assert.equal(currency.createdBy, 'Test-User-1');
43
-
44
- const deletedCount = await module.delete(currencyId);
45
- assert.equal(deletedCount, 1);
46
- });
11
+ it('Return correct filter object when passed no argument', async () => {
12
+ expect(buildFindSelector({type: PaymentProviderType.GENERIC})).toEqual({ type: "GENERIC", deleted: null })
13
+ });
14
+ })
15
+
47
16
  });
@@ -1,2 +0,0 @@
1
- import { CancelService } from '@unchainedshop/types/payments';
2
- export declare const cancelService: CancelService;
@@ -1,13 +0,0 @@
1
- export const cancelService = async ({ paymentContext, paymentProviderId }, requestContext) => {
2
- const { modules, userId } = requestContext;
3
- const normalizedContext = {
4
- ...paymentContext,
5
- userId,
6
- paymentProviderId,
7
- };
8
- const result = await modules.payment.paymentProviders.cancel(paymentProviderId, normalizedContext, requestContext);
9
- if (!result)
10
- return false;
11
- return result;
12
- };
13
- //# sourceMappingURL=cancelService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cancelService.js","sourceRoot":"","sources":["../../src/service/cancelService.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAkB,KAAK,EAC/C,EAAE,cAAc,EAAE,iBAAiB,EAAE,EACrC,cAAc,EACd,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAE3C,MAAM,iBAAiB,GAAG;QACxB,GAAG,cAAc;QACjB,MAAM;QACN,iBAAiB;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAC1D,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,CACf,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { ChargeService } from '@unchainedshop/types/payments';
2
- export declare const chargeService: ChargeService;
@@ -1,33 +0,0 @@
1
- export const chargeService = async ({ paymentContext, paymentProviderId }, requestContext) => {
2
- const { modules, userId } = requestContext;
3
- const paymentCredentials = paymentContext.transactionContext?.paymentCredentials ||
4
- (await modules.payment.paymentCredentials.findPaymentCredential({
5
- userId,
6
- paymentProviderId,
7
- isPreferred: true,
8
- }));
9
- const normalizedContext = {
10
- ...paymentContext,
11
- userId,
12
- paymentProviderId,
13
- transactionContext: {
14
- ...paymentContext.transactionContext,
15
- paymentCredentials,
16
- },
17
- };
18
- const result = await modules.payment.paymentProviders.charge(paymentProviderId, normalizedContext, requestContext);
19
- if (!result)
20
- return false;
21
- const { credentials, ...strippedResult } = result;
22
- if (credentials) {
23
- const { token, ...meta } = credentials;
24
- await modules.payment.paymentCredentials.upsertCredentials({
25
- userId,
26
- paymentProviderId,
27
- token,
28
- ...meta,
29
- });
30
- }
31
- return strippedResult;
32
- };
33
- //# sourceMappingURL=chargeService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chargeService.js","sourceRoot":"","sources":["../../src/service/chargeService.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAkB,KAAK,EAC/C,EAAE,cAAc,EAAE,iBAAiB,EAAE,EACrC,cAAc,EACd,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAE3C,MAAM,kBAAkB,GACtB,cAAc,CAAC,kBAAkB,EAAE,kBAAkB;QACrD,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;YAC9D,MAAM;YACN,iBAAiB;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC,CAAC;IAEN,MAAM,iBAAiB,GAAG;QACxB,GAAG,cAAc;QACjB,MAAM;QACN,iBAAiB;QACjB,kBAAkB,EAAE;YAClB,GAAG,cAAc,CAAC,kBAAkB;YACpC,kBAAkB;SACnB;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAC1D,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,CACf,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC;IAElD,IAAI,WAAW,EAAE;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;QACvC,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YACzD,MAAM;YACN,iBAAiB;YACjB,KAAK;YACL,GAAG,IAAI;SACR,CAAC,CAAC;KACJ;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { ConfirmService } from '@unchainedshop/types/payments';
2
- export declare const confirmService: ConfirmService;
@@ -1,13 +0,0 @@
1
- export const confirmService = async ({ paymentContext, paymentProviderId }, requestContext) => {
2
- const { modules, userId } = requestContext;
3
- const normalizedContext = {
4
- ...paymentContext,
5
- userId,
6
- paymentProviderId,
7
- };
8
- const result = await modules.payment.paymentProviders.confirm(paymentProviderId, normalizedContext, requestContext);
9
- if (!result)
10
- return false;
11
- return result;
12
- };
13
- //# sourceMappingURL=confirmService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirmService.js","sourceRoot":"","sources":["../../src/service/confirmService.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAmB,KAAK,EACjD,EAAE,cAAc,EAAE,iBAAiB,EAAE,EACrC,cAAc,EACd,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAE3C,MAAM,iBAAiB,GAAG;QACxB,GAAG,cAAc;QACjB,MAAM;QACN,iBAAiB;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAC3D,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,CACf,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { PaymentServices } from '@unchainedshop/types/payments';
2
- export declare const paymentServices: PaymentServices;
@@ -1,11 +0,0 @@
1
- import { chargeService } from './chargeService';
2
- import { cancelService } from './cancelService';
3
- import { confirmService } from './confirmService';
4
- import { registerPaymentCredentialsService } from './registerPaymentCredentialsService';
5
- export const paymentServices = {
6
- charge: chargeService,
7
- registerPaymentCredentials: registerPaymentCredentialsService,
8
- cancel: cancelService,
9
- confirm: confirmService,
10
- };
11
- //# sourceMappingURL=paymentServices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paymentServices.js","sourceRoot":"","sources":["../../src/service/paymentServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,MAAM,EAAE,aAAa;IACrB,0BAA0B,EAAE,iCAAiC;IAC7D,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,cAAc;CACxB,CAAC"}
@@ -1,2 +0,0 @@
1
- import { RegisterPaymentCredentialsService } from '@unchainedshop/types/payments';
2
- export declare const registerPaymentCredentialsService: RegisterPaymentCredentialsService;
@@ -1,17 +0,0 @@
1
- export const registerPaymentCredentialsService = async (paymentProviderId, paymentContext, requestContext) => {
2
- const { modules, userId } = requestContext;
3
- const registration = await modules.payment.paymentProviders.register(paymentProviderId, paymentContext, requestContext);
4
- if (!registration)
5
- return null;
6
- const paymentCredentialsId = await modules.payment.paymentCredentials.upsertCredentials({
7
- userId,
8
- paymentProviderId,
9
- ...registration,
10
- });
11
- return modules.payment.paymentCredentials.findPaymentCredential({
12
- paymentCredentialsId,
13
- userId,
14
- paymentProviderId,
15
- });
16
- };
17
- //# sourceMappingURL=registerPaymentCredentialsService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerPaymentCredentialsService.js","sourceRoot":"","sources":["../../src/service/registerPaymentCredentialsService.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iCAAiC,GAAsC,KAAK,EACvF,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAClE,iBAAiB,EACjB,cAAc,EACd,cAAc,CACf,CAAC;IAEF,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;QACtF,MAAM;QACN,iBAAiB;QACjB,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;QAC9D,oBAAoB;QACpB,MAAM;QACN,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- import { CancelService } from '@unchainedshop/types/payments';
2
-
3
- export const cancelService: CancelService = async (
4
- { paymentContext, paymentProviderId },
5
- requestContext,
6
- ) => {
7
- const { modules, userId } = requestContext;
8
-
9
- const normalizedContext = {
10
- ...paymentContext,
11
- userId,
12
- paymentProviderId,
13
- };
14
-
15
- const result = await modules.payment.paymentProviders.cancel(
16
- paymentProviderId,
17
- normalizedContext,
18
- requestContext,
19
- );
20
-
21
- if (!result) return false;
22
-
23
- return result;
24
- };
@@ -1,47 +0,0 @@
1
- import { ChargeService } from '@unchainedshop/types/payments';
2
-
3
- export const chargeService: ChargeService = async (
4
- { paymentContext, paymentProviderId },
5
- requestContext,
6
- ) => {
7
- const { modules, userId } = requestContext;
8
-
9
- const paymentCredentials =
10
- paymentContext.transactionContext?.paymentCredentials ||
11
- (await modules.payment.paymentCredentials.findPaymentCredential({
12
- userId,
13
- paymentProviderId,
14
- isPreferred: true,
15
- }));
16
-
17
- const normalizedContext = {
18
- ...paymentContext,
19
- userId,
20
- paymentProviderId,
21
- transactionContext: {
22
- ...paymentContext.transactionContext,
23
- paymentCredentials,
24
- },
25
- };
26
-
27
- const result = await modules.payment.paymentProviders.charge(
28
- paymentProviderId,
29
- normalizedContext,
30
- requestContext,
31
- );
32
-
33
- if (!result) return false;
34
-
35
- const { credentials, ...strippedResult } = result;
36
-
37
- if (credentials) {
38
- const { token, ...meta } = credentials;
39
- await modules.payment.paymentCredentials.upsertCredentials({
40
- userId,
41
- paymentProviderId,
42
- token,
43
- ...meta,
44
- });
45
- }
46
- return strippedResult;
47
- };
@@ -1,24 +0,0 @@
1
- import { ConfirmService } from '@unchainedshop/types/payments';
2
-
3
- export const confirmService: ConfirmService = async (
4
- { paymentContext, paymentProviderId },
5
- requestContext,
6
- ) => {
7
- const { modules, userId } = requestContext;
8
-
9
- const normalizedContext = {
10
- ...paymentContext,
11
- userId,
12
- paymentProviderId,
13
- };
14
-
15
- const result = await modules.payment.paymentProviders.confirm(
16
- paymentProviderId,
17
- normalizedContext,
18
- requestContext,
19
- );
20
-
21
- if (!result) return false;
22
-
23
- return result;
24
- };
@@ -1,12 +0,0 @@
1
- import { PaymentServices } from '@unchainedshop/types/payments';
2
- import { chargeService } from './chargeService';
3
- import { cancelService } from './cancelService';
4
- import { confirmService } from './confirmService';
5
- import { registerPaymentCredentialsService } from './registerPaymentCredentialsService';
6
-
7
- export const paymentServices: PaymentServices = {
8
- charge: chargeService,
9
- registerPaymentCredentials: registerPaymentCredentialsService,
10
- cancel: cancelService,
11
- confirm: confirmService,
12
- };
@@ -1,28 +0,0 @@
1
- import { RegisterPaymentCredentialsService } from '@unchainedshop/types/payments';
2
-
3
- export const registerPaymentCredentialsService: RegisterPaymentCredentialsService = async (
4
- paymentProviderId,
5
- paymentContext,
6
- requestContext,
7
- ) => {
8
- const { modules, userId } = requestContext;
9
- const registration = await modules.payment.paymentProviders.register(
10
- paymentProviderId,
11
- paymentContext,
12
- requestContext,
13
- );
14
-
15
- if (!registration) return null;
16
-
17
- const paymentCredentialsId = await modules.payment.paymentCredentials.upsertCredentials({
18
- userId,
19
- paymentProviderId,
20
- ...registration,
21
- });
22
-
23
- return modules.payment.paymentCredentials.findPaymentCredential({
24
- paymentCredentialsId,
25
- userId,
26
- paymentProviderId,
27
- });
28
- };