@forklaunch/implementation-billing-base 0.2.0 → 0.2.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.
Files changed (41) hide show
  1. package/lib/__test__/schemaEquality.test.js +35 -14
  2. package/lib/eject/domain/schemas/checkoutSession.schema.ts +24 -4
  3. package/lib/eject/domain/schemas/paymentLink.schema.ts +24 -4
  4. package/lib/eject/services/billingPortal.service.ts +97 -25
  5. package/lib/eject/services/checkoutSession.service.ts +106 -23
  6. package/lib/eject/services/paymentLink.service.ts +104 -25
  7. package/lib/eject/services/plan.service.ts +41 -5
  8. package/lib/eject/services/subscription.service.ts +56 -3
  9. package/lib/schemas/checkoutSession.schema.d.ts +97 -11
  10. package/lib/schemas/checkoutSession.schema.d.ts.map +1 -1
  11. package/lib/schemas/paymentLink.schema.d.ts +101 -12
  12. package/lib/schemas/paymentLink.schema.d.ts.map +1 -1
  13. package/lib/schemas/typebox/checkoutSession.schema.d.ts +130 -10
  14. package/lib/schemas/typebox/checkoutSession.schema.d.ts.map +1 -1
  15. package/lib/schemas/typebox/checkoutSession.schema.js +9 -3
  16. package/lib/schemas/typebox/paymentLink.schema.d.ts +144 -12
  17. package/lib/schemas/typebox/paymentLink.schema.d.ts.map +1 -1
  18. package/lib/schemas/typebox/paymentLink.schema.js +9 -3
  19. package/lib/schemas/zod/checkoutSession.schema.d.ts +66 -12
  20. package/lib/schemas/zod/checkoutSession.schema.d.ts.map +1 -1
  21. package/lib/schemas/zod/checkoutSession.schema.js +9 -3
  22. package/lib/schemas/zod/paymentLink.schema.d.ts +66 -12
  23. package/lib/schemas/zod/paymentLink.schema.d.ts.map +1 -1
  24. package/lib/schemas/zod/paymentLink.schema.js +9 -3
  25. package/lib/services/billingPortal.service.d.ts +20 -2
  26. package/lib/services/billingPortal.service.d.ts.map +1 -1
  27. package/lib/services/billingPortal.service.js +83 -25
  28. package/lib/services/checkoutSession.service.d.ts +58 -15
  29. package/lib/services/checkoutSession.service.d.ts.map +1 -1
  30. package/lib/services/checkoutSession.service.js +61 -10
  31. package/lib/services/paymentLink.service.d.ts +34 -15
  32. package/lib/services/paymentLink.service.d.ts.map +1 -1
  33. package/lib/services/paymentLink.service.js +79 -11
  34. package/lib/services/plan.service.d.ts +14 -2
  35. package/lib/services/plan.service.d.ts.map +1 -1
  36. package/lib/services/plan.service.js +35 -5
  37. package/lib/services/subscription.service.d.ts +16 -2
  38. package/lib/services/subscription.service.d.ts.map +1 -1
  39. package/lib/services/subscription.service.js +49 -3
  40. package/lib/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"plan.service.d.ts","sourceRoot":"","sources":["../../services/plan.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.service.d.ts","sourceRoot":"","sources":["../../services/plan.service.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,32 @@
1
+ import { evaluateTelemetryOptions } from '@forklaunch/core/http';
1
2
  import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
2
3
  export class BasePlanService {
3
4
  em;
4
5
  openTelemetryCollector;
5
6
  schemaValidator;
6
7
  mappers;
8
+ options;
7
9
  #mappers;
8
- constructor(em, openTelemetryCollector, schemaValidator, mappers) {
10
+ evaluatedTelemetryOptions;
11
+ constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
9
12
  this.em = em;
10
13
  this.openTelemetryCollector = openTelemetryCollector;
11
14
  this.schemaValidator = schemaValidator;
12
15
  this.mappers = mappers;
16
+ this.options = options;
13
17
  this.#mappers = transformIntoInternalDtoMapper(mappers, schemaValidator);
18
+ this.evaluatedTelemetryOptions = options?.telemetry
19
+ ? evaluateTelemetryOptions(options.telemetry).enabled
20
+ : {
21
+ logging: false,
22
+ metrics: false,
23
+ tracing: false
24
+ };
14
25
  }
15
26
  async listPlans(idsDto, em) {
27
+ if (this.evaluatedTelemetryOptions.logging) {
28
+ this.openTelemetryCollector.info('Listing plans', idsDto);
29
+ }
16
30
  return Promise.all(
17
31
  (
18
32
  await (em ?? this.em).findAll('Plan', {
@@ -22,20 +36,33 @@ export class BasePlanService {
22
36
  );
23
37
  }
24
38
  async createPlan(planDto, em) {
25
- const plan =
26
- await this.#mappers.CreatePlanDtoMapper.deserializeDtoToEntity(planDto);
39
+ if (this.evaluatedTelemetryOptions.logging) {
40
+ this.openTelemetryCollector.info('Creating plan', planDto);
41
+ }
42
+ const plan = await this.#mappers.CreatePlanDtoMapper.deserializeDtoToEntity(
43
+ planDto,
44
+ em ?? this.em
45
+ );
27
46
  await (em ?? this.em).transactional(async (innerEm) => {
28
47
  await innerEm.persist(plan);
29
48
  });
30
49
  return this.#mappers.PlanDtoMapper.serializeEntityToDto(plan);
31
50
  }
32
51
  async getPlan(idDto, em) {
52
+ if (this.evaluatedTelemetryOptions.logging) {
53
+ this.openTelemetryCollector.info('Getting plan', idDto);
54
+ }
33
55
  const plan = await (em ?? this.em).findOneOrFail('Plan', idDto);
34
56
  return this.#mappers.PlanDtoMapper.serializeEntityToDto(plan);
35
57
  }
36
58
  async updatePlan(planDto, em) {
37
- const plan =
38
- await this.#mappers.UpdatePlanDtoMapper.deserializeDtoToEntity(planDto);
59
+ if (this.evaluatedTelemetryOptions.logging) {
60
+ this.openTelemetryCollector.info('Updating plan', planDto);
61
+ }
62
+ const plan = await this.#mappers.UpdatePlanDtoMapper.deserializeDtoToEntity(
63
+ planDto,
64
+ em ?? this.em
65
+ );
39
66
  const updatedPlan = await (em ?? this.em).upsert(plan);
40
67
  await (em ?? this.em).transactional(async (innerEm) => {
41
68
  await innerEm.persist(plan);
@@ -45,6 +72,9 @@ export class BasePlanService {
45
72
  return updatedPlanDto;
46
73
  }
47
74
  async deletePlan(idDto, em) {
75
+ if (this.evaluatedTelemetryOptions.logging) {
76
+ this.openTelemetryCollector.info('Deleting plan', idDto);
77
+ }
48
78
  await (em ?? this.em).nativeDelete('Plan', idDto);
49
79
  }
50
80
  }
@@ -1,7 +1,8 @@
1
1
  import { IdDto } from '@forklaunch/common';
2
2
  import {
3
3
  MetricsDefinition,
4
- OpenTelemetryCollector
4
+ OpenTelemetryCollector,
5
+ TelemetryOptions
5
6
  } from '@forklaunch/core/http';
6
7
  import {
7
8
  RequestDtoMapperConstructor,
@@ -85,6 +86,13 @@ export declare class BaseSubscriptionService<
85
86
  Entities['UpdateSubscriptionDtoMapper']
86
87
  >;
87
88
  };
89
+ readonly options?:
90
+ | {
91
+ enableDatabaseBackup?: boolean;
92
+ telemetry?: TelemetryOptions;
93
+ }
94
+ | undefined;
95
+ private evaluatedTelemetryOptions;
88
96
  constructor(
89
97
  em: EntityManager,
90
98
  openTelemetryCollector: OpenTelemetryCollector<Metrics>,
@@ -105,7 +113,13 @@ export declare class BaseSubscriptionService<
105
113
  Dto['UpdateSubscriptionDtoMapper'],
106
114
  Entities['UpdateSubscriptionDtoMapper']
107
115
  >;
108
- }
116
+ },
117
+ options?:
118
+ | {
119
+ enableDatabaseBackup?: boolean;
120
+ telemetry?: TelemetryOptions;
121
+ }
122
+ | undefined
109
123
  );
110
124
  createSubscription(
111
125
  subscriptionDto: Dto['CreateSubscriptionDtoMapper'],
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.service.d.ts","sourceRoot":"","sources":["../../services/subscription.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.service.d.ts","sourceRoot":"","sources":["../../services/subscription.service.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,42 @@
1
+ import { evaluateTelemetryOptions } from '@forklaunch/core/http';
1
2
  import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
2
3
  export class BaseSubscriptionService {
3
4
  em;
4
5
  openTelemetryCollector;
5
6
  schemaValidator;
6
7
  mappers;
8
+ options;
7
9
  #mappers;
8
- constructor(em, openTelemetryCollector, schemaValidator, mappers) {
10
+ evaluatedTelemetryOptions;
11
+ constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
9
12
  this.em = em;
10
13
  this.openTelemetryCollector = openTelemetryCollector;
11
14
  this.schemaValidator = schemaValidator;
12
15
  this.mappers = mappers;
16
+ this.options = options;
13
17
  this.#mappers = transformIntoInternalDtoMapper(
14
18
  mappers,
15
19
  this.schemaValidator
16
20
  );
21
+ this.evaluatedTelemetryOptions = options?.telemetry
22
+ ? evaluateTelemetryOptions(options.telemetry).enabled
23
+ : {
24
+ logging: false,
25
+ metrics: false,
26
+ tracing: false
27
+ };
17
28
  }
18
29
  async createSubscription(subscriptionDto, em) {
30
+ if (this.evaluatedTelemetryOptions.logging) {
31
+ this.openTelemetryCollector.info(
32
+ 'Creating subscription',
33
+ subscriptionDto
34
+ );
35
+ }
19
36
  const subscription =
20
37
  await this.#mappers.CreateSubscriptionDtoMapper.deserializeDtoToEntity(
21
- subscriptionDto
38
+ subscriptionDto,
39
+ em ?? this.em
22
40
  );
23
41
  await (em ?? this.em).transactional(async (innerEm) => {
24
42
  await innerEm.persist(subscription);
@@ -30,6 +48,9 @@ export class BaseSubscriptionService {
30
48
  return createdSubscriptionDto;
31
49
  }
32
50
  async getSubscription(idDto, em) {
51
+ if (this.evaluatedTelemetryOptions.logging) {
52
+ this.openTelemetryCollector.info('Getting subscription', idDto);
53
+ }
33
54
  const subscription = await (em ?? this.em).findOneOrFail(
34
55
  'Subscription',
35
56
  idDto
@@ -39,6 +60,9 @@ export class BaseSubscriptionService {
39
60
  );
40
61
  }
41
62
  async getUserSubscription({ id }, em) {
63
+ if (this.evaluatedTelemetryOptions.logging) {
64
+ this.openTelemetryCollector.info('Getting user subscription', id);
65
+ }
42
66
  const subscription = await (em ?? this.em).findOneOrFail('Subscription', {
43
67
  partyId: id,
44
68
  partyType: 'USER',
@@ -49,6 +73,9 @@ export class BaseSubscriptionService {
49
73
  );
50
74
  }
51
75
  async getOrganizationSubscription({ id }, em) {
76
+ if (this.evaluatedTelemetryOptions.logging) {
77
+ this.openTelemetryCollector.info('Getting organization subscription', id);
78
+ }
52
79
  const subscription = await (em ?? this.em).findOneOrFail('Subscription', {
53
80
  partyId: id,
54
81
  partyType: 'ORGANIZATION',
@@ -59,9 +86,16 @@ export class BaseSubscriptionService {
59
86
  );
60
87
  }
61
88
  async updateSubscription(subscriptionDto, em) {
89
+ if (this.evaluatedTelemetryOptions.logging) {
90
+ this.openTelemetryCollector.info(
91
+ 'Updating subscription',
92
+ subscriptionDto
93
+ );
94
+ }
62
95
  const subscription =
63
96
  this.#mappers.UpdateSubscriptionDtoMapper.deserializeDtoToEntity(
64
- subscriptionDto
97
+ subscriptionDto,
98
+ em ?? this.em
65
99
  );
66
100
  const updatedSubscription = await (em ?? this.em).upsert(subscription);
67
101
  await (em ?? this.em).transactional(async (innerEm) => {
@@ -74,6 +108,9 @@ export class BaseSubscriptionService {
74
108
  return updatedSubscriptionDto;
75
109
  }
76
110
  async deleteSubscription(idDto, em) {
111
+ if (this.evaluatedTelemetryOptions.logging) {
112
+ this.openTelemetryCollector.info('Deleting subscription', idDto);
113
+ }
77
114
  const subscription = await (em ?? this.em).findOne('Subscription', idDto);
78
115
  if (!subscription) {
79
116
  throw new Error('Subscription not found');
@@ -81,6 +118,9 @@ export class BaseSubscriptionService {
81
118
  await (em ?? this.em).removeAndFlush(subscription);
82
119
  }
83
120
  async listSubscriptions(idsDto, em) {
121
+ if (this.evaluatedTelemetryOptions.logging) {
122
+ this.openTelemetryCollector.info('Listing subscriptions', idsDto);
123
+ }
84
124
  const subscriptions = await (em ?? this.em).findAll('Subscription', {
85
125
  where: idsDto.ids
86
126
  ? {
@@ -101,6 +141,9 @@ export class BaseSubscriptionService {
101
141
  );
102
142
  }
103
143
  async cancelSubscription(idDto, em) {
144
+ if (this.evaluatedTelemetryOptions.logging) {
145
+ this.openTelemetryCollector.info('Canceling subscription', idDto);
146
+ }
104
147
  const subscription = await (em ?? this.em).findOne('Subscription', idDto);
105
148
  if (!subscription) {
106
149
  throw new Error('Subscription not found');
@@ -111,6 +154,9 @@ export class BaseSubscriptionService {
111
154
  });
112
155
  }
113
156
  async resumeSubscription(idDto, em) {
157
+ if (this.evaluatedTelemetryOptions.logging) {
158
+ this.openTelemetryCollector.info('Resuming subscription', idDto);
159
+ }
114
160
  const subscription = await (em ?? this.em).findOne('Subscription', idDto);
115
161
  if (!subscription) {
116
162
  throw new Error('Subscription not found');