Skip to content

Commit

Permalink
fix(tenant-management): add saastenantrepo for webhook handler
Browse files Browse the repository at this point in the history
add saastenantrepo for webhook handler

gh-34
  • Loading branch information
Tyagi-Sunny committed Dec 13, 2024
1 parent 44f897a commit 2a6e78a
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export * from './resource.repository';
export * from './invoice.repository';
export * from './address.repository';
export * from './lead-token.repository';
export * from './saas-tenant.repository';
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import {Getter, inject} from '@loopback/core';
import {
BelongsToAccessor,
HasManyRepositoryFactory,
juggler,
repository,
} from '@loopback/repository';
import {
DefaultTransactionalUserModifyRepository,
IAuthUserWithPermissions,
} from '@sourceloop/core';
import {AuthenticationBindings} from 'loopback4-authentication';

import {
Address,
Contact,
Lead,
Resource,
Tenant,
TenantRelations,
} from '../models';
import {ContactRepository} from './contact.repository';
import {LeadRepository} from './lead.repository';
import {ResourceRepository} from './resource.repository';
import {AddressRepository} from './address.repository';
import {TenantManagementDbSourceName} from '../types';

export class SaasTenantRepository extends DefaultTransactionalUserModifyRepository<
Tenant,
typeof Tenant.prototype.id,
TenantRelations
> {
public readonly contacts: HasManyRepositoryFactory<
Contact,
typeof Tenant.prototype.id
>;

public readonly resources: HasManyRepositoryFactory<
Resource,
typeof Tenant.prototype.id
>;

public readonly lead: BelongsToAccessor<Lead, typeof Tenant.prototype.id>;

public readonly address: BelongsToAccessor<
Address,
typeof Tenant.prototype.id
>;

constructor(
@inject(`datasources.${TenantManagementDbSourceName}`)
dataSource: juggler.DataSource,
@inject.getter(AuthenticationBindings.CURRENT_USER)
public readonly getCurrentUser: Getter<IAuthUserWithPermissions>,
@repository.getter('ContactRepository')
protected contactRepositoryGetter: Getter<ContactRepository>,
@repository.getter('LeadRepository')
protected leadRepositoryGetter: Getter<LeadRepository>,
@repository.getter('ResourceRepository')
protected resourceRepositoryGetter: Getter<ResourceRepository>,
@repository.getter('AddressRepository')
protected addressRepositoryGetter: Getter<AddressRepository>,
) {
super(Tenant, dataSource, getCurrentUser);
this.lead = this.createBelongsToAccessorFor('lead', leadRepositoryGetter);
this.registerInclusionResolver('lead', this.lead.inclusionResolver);
this.contacts = this.createHasManyRepositoryFactoryFor(
'contacts',
contactRepositoryGetter,
);
this.registerInclusionResolver('contacts', this.contacts.inclusionResolver);

this.resources = this.createHasManyRepositoryFactoryFor(
'resources',
resourceRepositoryGetter,
);
this.registerInclusionResolver(
'resources',
this.resources.inclusionResolver,
);

this.address = this.createBelongsToAccessorFor(
'address',
addressRepositoryGetter,
);
this.registerInclusionResolver('address', this.address.inclusionResolver);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {CryptoHelperService} from '../crypto-helper.service';
import {NotificationService} from '../notifications';
import {IPostWebhookHandlerService} from '../../types/i-post-webhook-handler-service.interface';
import {PostWebhookHandlerServiceKey} from '../../keys';
import { SaasTenantRepository } from '../../repositories/saas-tenant.repository';

/**
* Handler for provisioning webhooks.
Expand All @@ -39,7 +40,7 @@ export class ProvisioningWebhookHandler implements IWebhookHandler {
constructor(
@repository(ResourceRepository)
public resourceRepository: ResourceRepository,
@repository(TenantRepository)
@repository(SaasTenantRepository)
public tenantRepository: TenantRepository,
@inject('services.NotificationService')
private notificationService: NotificationService,
Expand Down
2 changes: 2 additions & 0 deletions services/tenant-management-service/src/webhook.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ import {
ResourceRepository,
TenantRepository,
WebhookSecretRepository,
SaasTenantRepository,
} from './repositories';
import {WebhookVerifierProvider} from './interceptors';
import {SystemUserProvider} from './providers';
Expand Down Expand Up @@ -109,6 +110,7 @@ export class WebhookTenantManagementServiceComponent implements Component {
LeadRepository,
ResourceRepository,
TenantRepository,
SaasTenantRepository,
WebhookSecretRepository,
];

Expand Down

0 comments on commit 2a6e78a

Please sign in to comment.