delete business
This commit is contained in:
@@ -4,26 +4,24 @@ import { AttributeDefinitionEntity } from '../../entities/attribute-definition.e
|
||||
import { BookingEntity } from '../../entities/booking.entity';
|
||||
import { BusinessAttributeValueEntity } from '../../entities/business-attribute-value.entity';
|
||||
import { BusinessCategoryEntity } from '../../entities/business-category.entity';
|
||||
import { BusinessServiceRequestEntity } from '../../entities/business-service-request.entity';
|
||||
import { BusinessServiceEntity } from '../../entities/business-service.entity';
|
||||
import { BusinessImageEntity } from '../../entities/business-image.entity';
|
||||
import { BusinessAvailabilitySlotEntity } from '../../entities/business-availability-slot.entity';
|
||||
import { BusinessEntity } from '../../entities/business.entity';
|
||||
import { ServiceTemplateEntity } from '../../entities/service-template.entity';
|
||||
|
||||
/** Remove a business and all rows that block FK deletes in production DB. */
|
||||
/** Remove a business and dependent rows that block FK deletes. */
|
||||
export async function deleteBusinessCascade(
|
||||
manager: EntityManager,
|
||||
businessId: string,
|
||||
onBeforeDeleteBusiness?: (businessId: string) => Promise<void>,
|
||||
): Promise<void> {
|
||||
await manager.delete(BookingEntity, { businessId });
|
||||
await manager.delete(BusinessServiceRequestEntity, { businessId });
|
||||
await manager.delete(BusinessAvailabilitySlotEntity, { businessId });
|
||||
await manager.delete(BusinessServiceEntity, { businessId });
|
||||
await manager.delete(BusinessAttributeValueEntity, { businessId });
|
||||
await manager.delete(BusinessImageEntity, { businessId });
|
||||
if (onBeforeDeleteBusiness) {
|
||||
await onBeforeDeleteBusiness(businessId);
|
||||
}
|
||||
|
||||
const result = await manager.delete(BusinessEntity, businessId);
|
||||
if (!result.affected) {
|
||||
@@ -36,10 +34,9 @@ export async function deleteCategoryCascade(
|
||||
manager: EntityManager,
|
||||
categoryId: string,
|
||||
businessIds: string[],
|
||||
onBeforeDeleteBusiness?: (businessId: string) => Promise<void>,
|
||||
): Promise<void> {
|
||||
for (const businessId of businessIds) {
|
||||
await deleteBusinessCascade(manager, businessId, onBeforeDeleteBusiness);
|
||||
await deleteBusinessCascade(manager, businessId);
|
||||
}
|
||||
|
||||
await manager.delete(ServiceTemplateEntity, { categoryId });
|
||||
|
||||
Reference in New Issue
Block a user