feat: auto subscribe to free plan once signup on community version.

This commit is contained in:
Ahmed Bouhuolia
2024-04-16 20:57:05 +02:00
parent 9b5f1a36ab
commit 9d3f1541eb
11 changed files with 84 additions and 81 deletions

View File

@@ -0,0 +1,36 @@
import { IAuthSignedUpEventPayload } from '@/interfaces';
import events from '@/subscribers/events';
import config from '@/config';
import { Subscription } from '../Subscription';
import { Inject, Service } from 'typedi';
@Service()
export class SubscribeFreeOnSignupCommunity {
@Inject()
private subscriptionService: Subscription;
/**
* Attaches events with handlers.
*/
public attach = (bus) => {
bus.subscribe(
events.auth.signUp,
this.subscribeFreeOnSigupCommunity.bind(this)
);
};
/**
* Creates a new free subscription once the user signup if the app is self-hosted.
* @param {IAuthSignedUpEventPayload}
* @returns {Promise<void>}
*/
private async subscribeFreeOnSigupCommunity({
signupDTO,
tenant,
user,
}: IAuthSignedUpEventPayload) {
if (config.hostedOnBigcapitalCloud) return null;
await this.subscriptionService.newSubscribtion(tenant.id, 'free');
}
}