UpdateSubscriptionJob should not be enqueued if billing is not enabled (#5007)

## Context
Adding this check to avoid enqueuing this job and following return-early
good practice

## Test
Without IS_BILLING_ENABLED env set

<img width="565" alt="Screenshot 2024-04-17 at 15 31 12"
src="https://github.com/twentyhq/twenty/assets/1834158/fcc43ce0-4455-4c4a-9889-02d99f0cd519">

With IS_BILLING_ENABLED env set
<img width="581" alt="Screenshot 2024-04-17 at 15 32 28"
src="https://github.com/twentyhq/twenty/assets/1834158/dc9756bd-2f6b-49bd-8897-84b6d8e09d56">
This commit is contained in:
Weiko
2024-04-17 17:04:48 +02:00
committed by GitHub
parent d02509b1b6
commit 979b8d29cc

View File

@ -9,12 +9,14 @@ import {
UpdateSubscriptionJob, UpdateSubscriptionJob,
UpdateSubscriptionJobData, UpdateSubscriptionJobData,
} from 'src/engine/core-modules/billing/jobs/update-subscription.job'; } from 'src/engine/core-modules/billing/jobs/update-subscription.job';
import { EnvironmentService } from 'src/engine/integrations/environment/environment.service';
@Injectable() @Injectable()
export class BillingWorkspaceMemberListener { export class BillingWorkspaceMemberListener {
constructor( constructor(
@Inject(MessageQueue.billingQueue) @Inject(MessageQueue.billingQueue)
private readonly messageQueueService: MessageQueueService, private readonly messageQueueService: MessageQueueService,
private readonly environmentService: EnvironmentService,
) {} ) {}
@OnEvent('workspaceMember.created') @OnEvent('workspaceMember.created')
@ -22,6 +24,10 @@ export class BillingWorkspaceMemberListener {
async handleCreateOrDeleteEvent( async handleCreateOrDeleteEvent(
payload: ObjectRecordCreateEvent<WorkspaceMemberObjectMetadata>, payload: ObjectRecordCreateEvent<WorkspaceMemberObjectMetadata>,
) { ) {
if (!this.environmentService.get('IS_BILLING_ENABLED')) {
return;
}
await this.messageQueueService.add<UpdateSubscriptionJobData>( await this.messageQueueService.add<UpdateSubscriptionJobData>(
UpdateSubscriptionJob.name, UpdateSubscriptionJob.name,
{ workspaceId: payload.workspaceId }, { workspaceId: payload.workspaceId },