commit
This commit is contained in:
35
src/backoffice/department/department.controller.ts
Normal file
35
src/backoffice/department/department.controller.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { DepartmentService } from './department.service';
|
||||
import { CacheInterceptor, Controller, Get, HttpException, HttpStatus, UseInterceptors } from '@nestjs/common';
|
||||
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
|
||||
import { ResultModel } from 'src/domain/models/result.model';
|
||||
|
||||
@ApiTags('BackOffice')
|
||||
@Controller('api/v1/department')
|
||||
export class DepartmentController {
|
||||
|
||||
constructor(private readonly departmentService: DepartmentService){}
|
||||
|
||||
@Get()
|
||||
@UseInterceptors(CacheInterceptor)
|
||||
@ApiExcludeEndpoint()
|
||||
async getAll() {
|
||||
try {
|
||||
const departments = await this.departmentService.findAll();
|
||||
return new ResultModel(true, null, departments, []);
|
||||
} catch (error) {
|
||||
throw new HttpException(new ResultModel(false, 'Não foi possível consultar lista de departamentos', {}, error), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@Get('all')
|
||||
@UseInterceptors(CacheInterceptor)
|
||||
async get() {
|
||||
try {
|
||||
const departments = await this.departmentService.findDepartments();
|
||||
return new ResultModel(true, null, departments, []);
|
||||
} catch (error) {
|
||||
throw new HttpException(new ResultModel(false, 'Não foi possível consultar lista de departamentos', {}, error), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
14
src/backoffice/department/department.module.ts
Normal file
14
src/backoffice/department/department.module.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Pcdepto } from '../../domain/entity/tables/pcdepto.entity';
|
||||
import { DepartmentService } from './department.service';
|
||||
import { DepartmentController } from './department.controller';
|
||||
import { CacheModule, Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
|
||||
@Module({
|
||||
imports: [ CacheModule.register(),
|
||||
TypeOrmModule.forFeature([Pcdepto])],
|
||||
controllers: [DepartmentController,],
|
||||
providers: [DepartmentService,],
|
||||
|
||||
})
|
||||
export class DepartmentModule { }
|
||||
47
src/backoffice/department/department.service.ts
Normal file
47
src/backoffice/department/department.service.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { Pcdepto } from 'src/domain/entity/tables/pcdepto.entity';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { getConnection, Repository } from 'typeorm';
|
||||
import { Esvdepartamento } from 'src/domain/entity/views/esvdepartamento.entity';
|
||||
|
||||
@Injectable()
|
||||
export class DepartmentService {
|
||||
constructor( @InjectRepository(Pcdepto)
|
||||
private departmentRepository: Repository<Pcdepto>){}
|
||||
|
||||
async findAll(): Promise<Pcdepto[]> {
|
||||
return await this.departmentRepository
|
||||
.createQueryBuilder('pcdepto')
|
||||
.leftJoinAndSelect("pcdepto.secoes", "secoes")
|
||||
.leftJoinAndSelect("pcsecao.categoria", "categoria")
|
||||
.select('"pcdepto".codepto', 'codigoDepartamento')
|
||||
.addSelect('concat(concat("pcdepto".codepto, \' - \'),"pcdepto".descricao)', 'descricaoDepartamento')
|
||||
// .addSelect('concat(concat(concat("pcdepto".descricao, \' (\'),"pcdepto".codepto),\')\')', 'descricaoDepartamento')
|
||||
.where('codepto <> 9999')
|
||||
.getRawMany();
|
||||
}
|
||||
|
||||
async findDepartments() {
|
||||
|
||||
const connection = getConnection();
|
||||
const queryRunner = connection.createQueryRunner();
|
||||
await queryRunner.connect();
|
||||
try {
|
||||
const departments = await queryRunner.manager
|
||||
.getRepository(Esvdepartamento)
|
||||
.createQueryBuilder('esvdepartamento')
|
||||
.innerJoinAndSelect('esvdepartamento.secoes', 'secoes')
|
||||
.innerJoinAndSelect('secoes.categorias', 'itens')
|
||||
.where('\"esvdepartamento\".codepto <> 9999')
|
||||
.orderBy("\"esvdepartamento\".DESCRICAO")
|
||||
.getMany();
|
||||
return departments;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
throw error;
|
||||
} finally {
|
||||
await queryRunner.release();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user