@forklaunch/implementation-billing-base 0.1.10 → 0.1.12

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 (89) hide show
  1. package/package.json +5 -5
  2. package/lib/__test__/schemaEquality.test.d.ts +0 -2
  3. package/lib/__test__/schemaEquality.test.d.ts.map +0 -1
  4. package/lib/__test__/schemaEquality.test.js +0 -409
  5. package/lib/eject/domain/schemas/billingPortal.schema.ts +0 -31
  6. package/lib/eject/domain/schemas/checkoutSession.schema.ts +0 -55
  7. package/lib/eject/domain/schemas/index.ts +0 -5
  8. package/lib/eject/domain/schemas/paymentLink.schema.ts +0 -60
  9. package/lib/eject/domain/schemas/plan.schema.ts +0 -80
  10. package/lib/eject/domain/schemas/subscription.schema.ts +0 -86
  11. package/lib/eject/services/billingPortal.service.ts +0 -145
  12. package/lib/eject/services/checkoutSession.service.ts +0 -132
  13. package/lib/eject/services/index.ts +0 -5
  14. package/lib/eject/services/paymentLink.service.ts +0 -170
  15. package/lib/eject/services/plan.service.ts +0 -132
  16. package/lib/eject/services/subscription.service.ts +0 -239
  17. package/lib/jest.config.d.ts +0 -4
  18. package/lib/jest.config.d.ts.map +0 -1
  19. package/lib/jest.config.js +0 -19
  20. package/lib/schemas/billingPortal.schema.d.ts +0 -123
  21. package/lib/schemas/billingPortal.schema.d.ts.map +0 -1
  22. package/lib/schemas/billingPortal.schema.js +0 -7
  23. package/lib/schemas/checkoutSession.schema.d.ts +0 -179
  24. package/lib/schemas/checkoutSession.schema.d.ts.map +0 -1
  25. package/lib/schemas/checkoutSession.schema.js +0 -7
  26. package/lib/schemas/index.d.ts +0 -6
  27. package/lib/schemas/index.d.ts.map +0 -1
  28. package/lib/schemas/index.js +0 -5
  29. package/lib/schemas/paymentLink.schema.d.ts +0 -220
  30. package/lib/schemas/paymentLink.schema.d.ts.map +0 -1
  31. package/lib/schemas/paymentLink.schema.js +0 -7
  32. package/lib/schemas/plan.schema.d.ts +0 -336
  33. package/lib/schemas/plan.schema.d.ts.map +0 -1
  34. package/lib/schemas/plan.schema.js +0 -7
  35. package/lib/schemas/subscription.schema.d.ts +0 -374
  36. package/lib/schemas/subscription.schema.d.ts.map +0 -1
  37. package/lib/schemas/subscription.schema.js +0 -7
  38. package/lib/schemas/typebox/billingPortal.schema.d.ts +0 -181
  39. package/lib/schemas/typebox/billingPortal.schema.d.ts.map +0 -1
  40. package/lib/schemas/typebox/billingPortal.schema.js +0 -31
  41. package/lib/schemas/typebox/checkoutSession.schema.d.ts +0 -204
  42. package/lib/schemas/typebox/checkoutSession.schema.d.ts.map +0 -1
  43. package/lib/schemas/typebox/checkoutSession.schema.js +0 -44
  44. package/lib/schemas/typebox/paymentLink.schema.d.ts +0 -282
  45. package/lib/schemas/typebox/paymentLink.schema.d.ts.map +0 -1
  46. package/lib/schemas/typebox/paymentLink.schema.js +0 -49
  47. package/lib/schemas/typebox/plan.schema.d.ts +0 -416
  48. package/lib/schemas/typebox/plan.schema.d.ts.map +0 -1
  49. package/lib/schemas/typebox/plan.schema.js +0 -57
  50. package/lib/schemas/typebox/subscription.schema.d.ts +0 -488
  51. package/lib/schemas/typebox/subscription.schema.d.ts.map +0 -1
  52. package/lib/schemas/typebox/subscription.schema.js +0 -61
  53. package/lib/schemas/zod/billingPortal.schema.d.ts +0 -51
  54. package/lib/schemas/zod/billingPortal.schema.d.ts.map +0 -1
  55. package/lib/schemas/zod/billingPortal.schema.js +0 -31
  56. package/lib/schemas/zod/checkoutSession.schema.d.ts +0 -114
  57. package/lib/schemas/zod/checkoutSession.schema.d.ts.map +0 -1
  58. package/lib/schemas/zod/checkoutSession.schema.js +0 -44
  59. package/lib/schemas/zod/paymentLink.schema.d.ts +0 -106
  60. package/lib/schemas/zod/paymentLink.schema.d.ts.map +0 -1
  61. package/lib/schemas/zod/paymentLink.schema.js +0 -49
  62. package/lib/schemas/zod/plan.schema.d.ts +0 -184
  63. package/lib/schemas/zod/plan.schema.d.ts.map +0 -1
  64. package/lib/schemas/zod/plan.schema.js +0 -57
  65. package/lib/schemas/zod/subscription.schema.d.ts +0 -188
  66. package/lib/schemas/zod/subscription.schema.d.ts.map +0 -1
  67. package/lib/schemas/zod/subscription.schema.js +0 -61
  68. package/lib/services/billingPortal.service.d.ts +0 -94
  69. package/lib/services/billingPortal.service.d.ts.map +0 -1
  70. package/lib/services/billingPortal.service.js +0 -70
  71. package/lib/services/checkoutSession.service.d.ts +0 -94
  72. package/lib/services/checkoutSession.service.d.ts.map +0 -1
  73. package/lib/services/checkoutSession.service.js +0 -60
  74. package/lib/services/index.d.ts +0 -6
  75. package/lib/services/index.d.ts.map +0 -1
  76. package/lib/services/index.js +0 -5
  77. package/lib/services/paymentLink.service.d.ts +0 -99
  78. package/lib/services/paymentLink.service.d.ts.map +0 -1
  79. package/lib/services/paymentLink.service.js +0 -90
  80. package/lib/services/plan.service.d.ts +0 -90
  81. package/lib/services/plan.service.d.ts.map +0 -1
  82. package/lib/services/plan.service.js +0 -48
  83. package/lib/services/subscription.service.d.ts +0 -145
  84. package/lib/services/subscription.service.d.ts.map +0 -1
  85. package/lib/services/subscription.service.js +0 -117
  86. package/lib/tsconfig.tsbuildinfo +0 -1
  87. package/lib/vitest.config.d.ts +0 -3
  88. package/lib/vitest.config.d.ts.map +0 -1
  89. package/lib/vitest.config.js +0 -7
@@ -1,99 +0,0 @@
1
- import { IdDto, IdsDto } from '@forklaunch/common';
2
- import { TtlCache } from '@forklaunch/core/cache';
3
- import {
4
- RequestDtoMapperConstructor,
5
- ResponseDtoMapperConstructor
6
- } from '@forklaunch/core/mappers';
7
- import {
8
- MetricsDefinition,
9
- OpenTelemetryCollector
10
- } from '@forklaunch/core/http';
11
- import { PaymentLinkService } from '@forklaunch/interfaces-billing/interfaces';
12
- import {
13
- CreatePaymentLinkDto,
14
- PaymentLinkDto,
15
- UpdatePaymentLinkDto
16
- } from '@forklaunch/interfaces-billing/types';
17
- import { AnySchemaValidator } from '@forklaunch/validator';
18
- export declare class BasePaymentLinkService<
19
- SchemaValidator extends AnySchemaValidator,
20
- CurrencyEnum,
21
- Metrics extends MetricsDefinition = MetricsDefinition,
22
- Dto extends {
23
- PaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
24
- CreatePaymentLinkDtoMapper: CreatePaymentLinkDto<CurrencyEnum>;
25
- UpdatePaymentLinkDtoMapper: UpdatePaymentLinkDto<CurrencyEnum>;
26
- } = {
27
- PaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
28
- CreatePaymentLinkDtoMapper: CreatePaymentLinkDto<CurrencyEnum>;
29
- UpdatePaymentLinkDtoMapper: UpdatePaymentLinkDto<CurrencyEnum>;
30
- },
31
- Entities extends {
32
- PaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
33
- CreatePaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
34
- UpdatePaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
35
- } = {
36
- PaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
37
- CreatePaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
38
- UpdatePaymentLinkDtoMapper: PaymentLinkDto<CurrencyEnum>;
39
- }
40
- > implements PaymentLinkService<CurrencyEnum>
41
- {
42
- #private;
43
- protected readonly cache: TtlCache;
44
- protected readonly openTelemetryCollector: OpenTelemetryCollector<Metrics>;
45
- protected readonly schemaValidator: SchemaValidator;
46
- protected readonly mapperss: {
47
- PaymentLinkDtoMapper: ResponseDtoMapperConstructor<
48
- SchemaValidator,
49
- Dto['PaymentLinkDtoMapper'],
50
- Entities['PaymentLinkDtoMapper']
51
- >;
52
- CreatePaymentLinkDtoMapper: RequestDtoMapperConstructor<
53
- SchemaValidator,
54
- Dto['CreatePaymentLinkDtoMapper'],
55
- Entities['CreatePaymentLinkDtoMapper']
56
- >;
57
- UpdatePaymentLinkDtoMapper: RequestDtoMapperConstructor<
58
- SchemaValidator,
59
- Dto['UpdatePaymentLinkDtoMapper'],
60
- Entities['UpdatePaymentLinkDtoMapper']
61
- >;
62
- };
63
- constructor(
64
- cache: TtlCache,
65
- openTelemetryCollector: OpenTelemetryCollector<Metrics>,
66
- schemaValidator: SchemaValidator,
67
- mapperss: {
68
- PaymentLinkDtoMapper: ResponseDtoMapperConstructor<
69
- SchemaValidator,
70
- Dto['PaymentLinkDtoMapper'],
71
- Entities['PaymentLinkDtoMapper']
72
- >;
73
- CreatePaymentLinkDtoMapper: RequestDtoMapperConstructor<
74
- SchemaValidator,
75
- Dto['CreatePaymentLinkDtoMapper'],
76
- Entities['CreatePaymentLinkDtoMapper']
77
- >;
78
- UpdatePaymentLinkDtoMapper: RequestDtoMapperConstructor<
79
- SchemaValidator,
80
- Dto['UpdatePaymentLinkDtoMapper'],
81
- Entities['UpdatePaymentLinkDtoMapper']
82
- >;
83
- }
84
- );
85
- protected cacheKeyPrefix: string;
86
- protected createCacheKey: (id: string) => string;
87
- createPaymentLink(
88
- paymentLinkDto: Dto['CreatePaymentLinkDtoMapper']
89
- ): Promise<Dto['PaymentLinkDtoMapper']>;
90
- updatePaymentLink(
91
- paymentLinkDto: Dto['UpdatePaymentLinkDtoMapper']
92
- ): Promise<Dto['PaymentLinkDtoMapper']>;
93
- getPaymentLink({ id }: IdDto): Promise<Dto['PaymentLinkDtoMapper']>;
94
- expirePaymentLink({ id }: IdDto): Promise<void>;
95
- handlePaymentSuccess({ id }: IdDto): Promise<void>;
96
- handlePaymentFailure({ id }: IdDto): Promise<void>;
97
- listPaymentLinks(idsDto?: IdsDto): Promise<Dto['PaymentLinkDtoMapper'][]>;
98
- }
99
- //# sourceMappingURL=paymentLink.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paymentLink.service.d.ts","sourceRoot":"","sources":["../../services/paymentLink.service.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- import { createCacheKey } from '@forklaunch/core/cache';
2
- import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
3
- export class BasePaymentLinkService {
4
- cache;
5
- openTelemetryCollector;
6
- schemaValidator;
7
- mapperss;
8
- #mapperss;
9
- constructor(cache, openTelemetryCollector, schemaValidator, mapperss) {
10
- this.cache = cache;
11
- this.openTelemetryCollector = openTelemetryCollector;
12
- this.schemaValidator = schemaValidator;
13
- this.mapperss = mapperss;
14
- this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
15
- }
16
- cacheKeyPrefix = 'payment_link';
17
- createCacheKey = createCacheKey(this.cacheKeyPrefix);
18
- async createPaymentLink(paymentLinkDto) {
19
- // TODO: Perform permission checks here
20
- const paymentLink =
21
- this.#mapperss.CreatePaymentLinkDtoMapper.deserializeDtoToEntity(
22
- paymentLinkDto
23
- );
24
- await this.cache.putRecord({
25
- key: this.createCacheKey(paymentLink.id),
26
- value: paymentLink,
27
- ttlMilliseconds: this.cache.getTtlMilliseconds()
28
- });
29
- return this.#mapperss.PaymentLinkDtoMapper.serializeEntityToDto(
30
- paymentLink
31
- );
32
- }
33
- async updatePaymentLink(paymentLinkDto) {
34
- const cacheKey = this.createCacheKey(paymentLinkDto.id);
35
- const existingLink = await this.cache.readRecord(cacheKey);
36
- if (!existingLink) {
37
- throw new Error('Payment link not found');
38
- }
39
- const paymentLink =
40
- this.#mapperss.UpdatePaymentLinkDtoMapper.deserializeDtoToEntity(
41
- paymentLinkDto
42
- );
43
- const updatedLink = { ...existingLink, ...paymentLink };
44
- await this.cache.putRecord({
45
- key: cacheKey,
46
- value: updatedLink,
47
- ttlMilliseconds: this.cache.getTtlMilliseconds()
48
- });
49
- return this.#mapperss.PaymentLinkDtoMapper.serializeEntityToDto(
50
- updatedLink
51
- );
52
- }
53
- async getPaymentLink({ id }) {
54
- const cacheKey = this.createCacheKey(id);
55
- const paymentLink = await this.cache.readRecord(cacheKey);
56
- if (!paymentLink) {
57
- throw new Error('Payment link not found');
58
- }
59
- return this.#mapperss.PaymentLinkDtoMapper.serializeEntityToDto(
60
- paymentLink.value
61
- );
62
- }
63
- async expirePaymentLink({ id }) {
64
- this.openTelemetryCollector.info('Payment link expired', { id });
65
- await this.cache.deleteRecord(this.createCacheKey(id));
66
- }
67
- async handlePaymentSuccess({ id }) {
68
- this.openTelemetryCollector.info('Payment link success', { id });
69
- await this.cache.deleteRecord(this.createCacheKey(id));
70
- }
71
- async handlePaymentFailure({ id }) {
72
- this.openTelemetryCollector.info('Payment link failure', { id });
73
- await this.cache.deleteRecord(this.createCacheKey(id));
74
- }
75
- async listPaymentLinks(idsDto) {
76
- const keys =
77
- idsDto?.ids.map((id) => this.createCacheKey(id)) ??
78
- (await this.cache.listKeys(this.cacheKeyPrefix));
79
- return await Promise.all(
80
- keys.map(async (key) => {
81
- const paymentLink = await this.cache.readRecord(key);
82
- const paymentLinkDto =
83
- this.#mapperss.PaymentLinkDtoMapper.serializeEntityToDto(
84
- paymentLink.value
85
- );
86
- return paymentLinkDto;
87
- })
88
- );
89
- }
90
- }
@@ -1,90 +0,0 @@
1
- import { IdDto, IdsDto } from '@forklaunch/common';
2
- import {
3
- RequestDtoMapperConstructor,
4
- ResponseDtoMapperConstructor
5
- } from '@forklaunch/core/mappers';
6
- import {
7
- MetricsDefinition,
8
- OpenTelemetryCollector
9
- } from '@forklaunch/core/http';
10
- import { PlanService } from '@forklaunch/interfaces-billing/interfaces';
11
- import {
12
- CreatePlanDto,
13
- PlanDto,
14
- UpdatePlanDto
15
- } from '@forklaunch/interfaces-billing/types';
16
- import { AnySchemaValidator } from '@forklaunch/validator';
17
- import { EntityManager } from '@mikro-orm/core';
18
- export declare class BasePlanService<
19
- SchemaValidator extends AnySchemaValidator,
20
- PlanCadenceEnum,
21
- BillingProviderEnum,
22
- Metrics extends MetricsDefinition = MetricsDefinition,
23
- Dto extends {
24
- PlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
25
- CreatePlanDtoMapper: CreatePlanDto<PlanCadenceEnum, BillingProviderEnum>;
26
- UpdatePlanDtoMapper: UpdatePlanDto<PlanCadenceEnum, BillingProviderEnum>;
27
- } = {
28
- PlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
29
- CreatePlanDtoMapper: CreatePlanDto<PlanCadenceEnum, BillingProviderEnum>;
30
- UpdatePlanDtoMapper: UpdatePlanDto<PlanCadenceEnum, BillingProviderEnum>;
31
- },
32
- Entities extends {
33
- PlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
34
- CreatePlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
35
- UpdatePlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
36
- } = {
37
- PlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
38
- CreatePlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
39
- UpdatePlanDtoMapper: PlanDto<PlanCadenceEnum, BillingProviderEnum>;
40
- }
41
- > implements PlanService<PlanCadenceEnum, BillingProviderEnum>
42
- {
43
- #private;
44
- private em;
45
- private readonly openTelemetryCollector;
46
- private readonly schemaValidator;
47
- private readonly mapperss;
48
- constructor(
49
- em: EntityManager,
50
- openTelemetryCollector: OpenTelemetryCollector<Metrics>,
51
- schemaValidator: SchemaValidator,
52
- mapperss: {
53
- PlanDtoMapper: ResponseDtoMapperConstructor<
54
- SchemaValidator,
55
- Dto['PlanDtoMapper'],
56
- Entities['PlanDtoMapper']
57
- >;
58
- CreatePlanDtoMapper: RequestDtoMapperConstructor<
59
- SchemaValidator,
60
- Dto['CreatePlanDtoMapper'],
61
- Entities['CreatePlanDtoMapper']
62
- >;
63
- UpdatePlanDtoMapper: RequestDtoMapperConstructor<
64
- SchemaValidator,
65
- Dto['UpdatePlanDtoMapper'],
66
- Entities['UpdatePlanDtoMapper']
67
- >;
68
- }
69
- );
70
- listPlans(
71
- idsDto?: IdsDto,
72
- em?: EntityManager
73
- ): Promise<Dto['PlanDtoMapper'][]>;
74
- createPlan(
75
- planDto: Dto['CreatePlanDtoMapper'],
76
- em?: EntityManager
77
- ): Promise<Dto['PlanDtoMapper']>;
78
- getPlan(idDto: IdDto, em?: EntityManager): Promise<Dto['PlanDtoMapper']>;
79
- updatePlan(
80
- planDto: Dto['UpdatePlanDtoMapper'],
81
- em?: EntityManager
82
- ): Promise<Dto['PlanDtoMapper']>;
83
- deletePlan(
84
- idDto: {
85
- id: string;
86
- },
87
- em?: EntityManager
88
- ): Promise<void>;
89
- }
90
- //# sourceMappingURL=plan.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.service.d.ts","sourceRoot":"","sources":["../../services/plan.service.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
2
- export class BasePlanService {
3
- em;
4
- openTelemetryCollector;
5
- schemaValidator;
6
- mapperss;
7
- #mapperss;
8
- constructor(em, openTelemetryCollector, schemaValidator, mapperss) {
9
- this.em = em;
10
- this.openTelemetryCollector = openTelemetryCollector;
11
- this.schemaValidator = schemaValidator;
12
- this.mapperss = mapperss;
13
- this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
14
- }
15
- async listPlans(idsDto, em) {
16
- return (
17
- await (em ?? this.em).findAll('Plan', {
18
- filters: idsDto?.ids ? { id: { $in: idsDto.ids } } : undefined
19
- })
20
- ).map((plan) => this.#mapperss.PlanDtoMapper.serializeEntityToDto(plan));
21
- }
22
- async createPlan(planDto, em) {
23
- const plan =
24
- this.#mapperss.CreatePlanDtoMapper.deserializeDtoToEntity(planDto);
25
- await (em ?? this.em).transactional(async (innerEm) => {
26
- await innerEm.persist(plan);
27
- });
28
- return this.#mapperss.PlanDtoMapper.serializeEntityToDto(plan);
29
- }
30
- async getPlan(idDto, em) {
31
- const plan = await (em ?? this.em).findOneOrFail('Plan', idDto);
32
- return this.#mapperss.PlanDtoMapper.serializeEntityToDto(plan);
33
- }
34
- async updatePlan(planDto, em) {
35
- const plan =
36
- this.#mapperss.UpdatePlanDtoMapper.deserializeDtoToEntity(planDto);
37
- const updatedPlan = await (em ?? this.em).upsert(plan);
38
- await (em ?? this.em).transactional(async (innerEm) => {
39
- await innerEm.persist(plan);
40
- });
41
- const updatedPlanDto =
42
- this.#mapperss.PlanDtoMapper.serializeEntityToDto(updatedPlan);
43
- return updatedPlanDto;
44
- }
45
- async deletePlan(idDto, em) {
46
- await (em ?? this.em).nativeDelete('Plan', idDto);
47
- }
48
- }
@@ -1,145 +0,0 @@
1
- import { IdDto } from '@forklaunch/common';
2
- import {
3
- RequestDtoMapperConstructor,
4
- ResponseDtoMapperConstructor
5
- } from '@forklaunch/core/mappers';
6
- import {
7
- MetricsDefinition,
8
- OpenTelemetryCollector
9
- } from '@forklaunch/core/http';
10
- import { SubscriptionService } from '@forklaunch/interfaces-billing/interfaces';
11
- import {
12
- CreateSubscriptionDto,
13
- SubscriptionDto,
14
- UpdateSubscriptionDto
15
- } from '@forklaunch/interfaces-billing/types';
16
- import { AnySchemaValidator } from '@forklaunch/validator';
17
- import { EntityManager } from '@mikro-orm/core';
18
- export declare class BaseSubscriptionService<
19
- SchemaValidator extends AnySchemaValidator,
20
- PartyType,
21
- BillingProviderType,
22
- Metrics extends MetricsDefinition = MetricsDefinition,
23
- Dto extends {
24
- SubscriptionDtoMapper: SubscriptionDto<PartyType, BillingProviderType>;
25
- CreateSubscriptionDtoMapper: CreateSubscriptionDto<
26
- PartyType,
27
- BillingProviderType
28
- >;
29
- UpdateSubscriptionDtoMapper: UpdateSubscriptionDto<
30
- PartyType,
31
- BillingProviderType
32
- >;
33
- } = {
34
- SubscriptionDtoMapper: SubscriptionDto<PartyType, BillingProviderType>;
35
- CreateSubscriptionDtoMapper: CreateSubscriptionDto<
36
- PartyType,
37
- BillingProviderType
38
- >;
39
- UpdateSubscriptionDtoMapper: UpdateSubscriptionDto<
40
- PartyType,
41
- BillingProviderType
42
- >;
43
- },
44
- Entities extends {
45
- SubscriptionDtoMapper: SubscriptionDto<PartyType, BillingProviderType>;
46
- CreateSubscriptionDtoMapper: SubscriptionDto<
47
- PartyType,
48
- BillingProviderType
49
- >;
50
- UpdateSubscriptionDtoMapper: SubscriptionDto<
51
- PartyType,
52
- BillingProviderType
53
- >;
54
- } = {
55
- SubscriptionDtoMapper: SubscriptionDto<PartyType, BillingProviderType>;
56
- CreateSubscriptionDtoMapper: SubscriptionDto<
57
- PartyType,
58
- BillingProviderType
59
- >;
60
- UpdateSubscriptionDtoMapper: SubscriptionDto<
61
- PartyType,
62
- BillingProviderType
63
- >;
64
- }
65
- > implements SubscriptionService<PartyType, BillingProviderType>
66
- {
67
- #private;
68
- protected em: EntityManager;
69
- protected readonly openTelemetryCollector: OpenTelemetryCollector<Metrics>;
70
- protected readonly schemaValidator: SchemaValidator;
71
- protected readonly mapperss: {
72
- SubscriptionDtoMapper: ResponseDtoMapperConstructor<
73
- SchemaValidator,
74
- Dto['SubscriptionDtoMapper'],
75
- Entities['SubscriptionDtoMapper']
76
- >;
77
- CreateSubscriptionDtoMapper: RequestDtoMapperConstructor<
78
- SchemaValidator,
79
- Dto['CreateSubscriptionDtoMapper'],
80
- Entities['CreateSubscriptionDtoMapper']
81
- >;
82
- UpdateSubscriptionDtoMapper: RequestDtoMapperConstructor<
83
- SchemaValidator,
84
- Dto['UpdateSubscriptionDtoMapper'],
85
- Entities['UpdateSubscriptionDtoMapper']
86
- >;
87
- };
88
- constructor(
89
- em: EntityManager,
90
- openTelemetryCollector: OpenTelemetryCollector<Metrics>,
91
- schemaValidator: SchemaValidator,
92
- mapperss: {
93
- SubscriptionDtoMapper: ResponseDtoMapperConstructor<
94
- SchemaValidator,
95
- Dto['SubscriptionDtoMapper'],
96
- Entities['SubscriptionDtoMapper']
97
- >;
98
- CreateSubscriptionDtoMapper: RequestDtoMapperConstructor<
99
- SchemaValidator,
100
- Dto['CreateSubscriptionDtoMapper'],
101
- Entities['CreateSubscriptionDtoMapper']
102
- >;
103
- UpdateSubscriptionDtoMapper: RequestDtoMapperConstructor<
104
- SchemaValidator,
105
- Dto['UpdateSubscriptionDtoMapper'],
106
- Entities['UpdateSubscriptionDtoMapper']
107
- >;
108
- }
109
- );
110
- createSubscription(
111
- subscriptionDto: Dto['CreateSubscriptionDtoMapper'],
112
- em?: EntityManager
113
- ): Promise<Dto['SubscriptionDtoMapper']>;
114
- getSubscription(
115
- idDto: IdDto,
116
- em?: EntityManager
117
- ): Promise<Dto['SubscriptionDtoMapper']>;
118
- getUserSubscription(
119
- { id }: IdDto,
120
- em?: EntityManager
121
- ): Promise<Dto['SubscriptionDtoMapper']>;
122
- getOrganizationSubscription(
123
- { id }: IdDto,
124
- em?: EntityManager
125
- ): Promise<Dto['SubscriptionDtoMapper']>;
126
- updateSubscription(
127
- subscriptionDto: Dto['UpdateSubscriptionDtoMapper'],
128
- em?: EntityManager
129
- ): Promise<Dto['SubscriptionDtoMapper']>;
130
- deleteSubscription(
131
- idDto: {
132
- id: string;
133
- },
134
- em?: EntityManager
135
- ): Promise<void>;
136
- listSubscriptions(
137
- idsDto: {
138
- ids?: string[];
139
- },
140
- em?: EntityManager
141
- ): Promise<Dto['SubscriptionDtoMapper'][]>;
142
- cancelSubscription(idDto: IdDto, em?: EntityManager): Promise<void>;
143
- resumeSubscription(idDto: IdDto, em?: EntityManager): Promise<void>;
144
- }
145
- //# sourceMappingURL=subscription.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription.service.d.ts","sourceRoot":"","sources":["../../services/subscription.service.ts"],"names":[],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
2
- export class BaseSubscriptionService {
3
- em;
4
- openTelemetryCollector;
5
- schemaValidator;
6
- mapperss;
7
- #mapperss;
8
- constructor(em, openTelemetryCollector, schemaValidator, mapperss) {
9
- this.em = em;
10
- this.openTelemetryCollector = openTelemetryCollector;
11
- this.schemaValidator = schemaValidator;
12
- this.mapperss = mapperss;
13
- this.#mapperss = transformIntoInternalDtoMapper(
14
- mapperss,
15
- this.schemaValidator
16
- );
17
- }
18
- async createSubscription(subscriptionDto, em) {
19
- const subscription =
20
- this.#mapperss.CreateSubscriptionDtoMapper.deserializeDtoToEntity(
21
- subscriptionDto
22
- );
23
- await (em ?? this.em).transactional(async (innerEm) => {
24
- await innerEm.persist(subscription);
25
- });
26
- const createdSubscriptionDto =
27
- this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(subscription);
28
- return createdSubscriptionDto;
29
- }
30
- async getSubscription(idDto, em) {
31
- const subscription = await (em ?? this.em).findOneOrFail(
32
- 'Subscription',
33
- idDto
34
- );
35
- return this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(
36
- subscription
37
- );
38
- }
39
- async getUserSubscription({ id }, em) {
40
- const subscription = await (em ?? this.em).findOneOrFail('Subscription', {
41
- partyId: id,
42
- partyType: 'USER',
43
- active: true
44
- });
45
- return this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(
46
- subscription
47
- );
48
- }
49
- async getOrganizationSubscription({ id }, em) {
50
- const subscription = await (em ?? this.em).findOneOrFail('Subscription', {
51
- partyId: id,
52
- partyType: 'ORGANIZATION',
53
- active: true
54
- });
55
- return this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(
56
- subscription
57
- );
58
- }
59
- async updateSubscription(subscriptionDto, em) {
60
- const subscription =
61
- this.#mapperss.UpdateSubscriptionDtoMapper.deserializeDtoToEntity(
62
- subscriptionDto
63
- );
64
- const updatedSubscription = await (em ?? this.em).upsert(subscription);
65
- await (em ?? this.em).transactional(async (innerEm) => {
66
- await innerEm.persist(updatedSubscription);
67
- });
68
- const updatedSubscriptionDto =
69
- this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(
70
- updatedSubscription
71
- );
72
- return updatedSubscriptionDto;
73
- }
74
- async deleteSubscription(idDto, em) {
75
- const subscription = await (em ?? this.em).findOne('Subscription', idDto);
76
- if (!subscription) {
77
- throw new Error('Subscription not found');
78
- }
79
- await (em ?? this.em).removeAndFlush(subscription);
80
- }
81
- async listSubscriptions(idsDto, em) {
82
- const subscriptions = await (em ?? this.em).findAll('Subscription', {
83
- where: idsDto.ids
84
- ? {
85
- id: {
86
- $in: idsDto.ids
87
- }
88
- }
89
- : undefined
90
- });
91
- return subscriptions.map((subscription) => {
92
- const subscriptionDto =
93
- this.#mapperss.SubscriptionDtoMapper.serializeEntityToDto(subscription);
94
- return subscriptionDto;
95
- });
96
- }
97
- async cancelSubscription(idDto, em) {
98
- const subscription = await (em ?? this.em).findOne('Subscription', idDto);
99
- if (!subscription) {
100
- throw new Error('Subscription not found');
101
- }
102
- subscription.active = false;
103
- await (em ?? this.em).transactional(async (innerEm) => {
104
- await innerEm.persist(subscription);
105
- });
106
- }
107
- async resumeSubscription(idDto, em) {
108
- const subscription = await (em ?? this.em).findOne('Subscription', idDto);
109
- if (!subscription) {
110
- throw new Error('Subscription not found');
111
- }
112
- subscription.active = true;
113
- await (em ?? this.em).transactional(async (innerEm) => {
114
- await innerEm.persist(subscription);
115
- });
116
- }
117
- }