Перейти до основного вмісту

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(),
},
});
}
}