Skip to main content

Base Entity Service


Overview​

BaseEntityService is a cornerstone of the @softkit/service-api library, offering robust functionalities for entity operations. It extends the AbstractBaseService and integrates transactional support for a variety of operations.

Key Features​

  • Transactional Support: Ensures all operations are part of a transactional context, enhancing data consistency and reliability.
  • Entity Management: Comprehensive methods for creating, updating, archiving, and deleting entities.
  • Query Capabilities: Advanced features for handling complex queries, including pagination, sorting, and data transformation.
  • Standardized Exception Handling: Utilizes @softkit/exceptions for consistent error handling across the application.

This service is ideal for applications requiring reliable and versatile entity management.

Implementation Example for BaseEntityService​

Here's an example of how to implement the BaseEntityService:

import { Injectable } from '@nestjs/common';
import { Transactional } from 'typeorm-transactional';
import { CustomUserRoleRepository } from '../../repositories';
import { BaseEntityService } from '@softkit/service-api';
import { IsNull } from 'typeorm';

@Injectable()
export class CustomUserRoleService extends BaseEntityService<
CustomUserRole,
CustomUserRoleRepository
> {
constructor(repository: CustomUserRoleRepository) {
super(repository);
}

@Transactional()
async findDefaultRole() {
return await this.repository.findOne({
where: {
roleType: RoleType.REGULAR_USER,
tenantId: IsNull(),
},
});
}
}