add:partner module
This commit is contained in:
		
							
								
								
									
										18
									
								
								src/users/partner/partner.service.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/users/partner/partner.service.spec.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| import { Test, TestingModule } from '@nestjs/testing'; | ||||
| import { PartnerService } from './partner.service'; | ||||
|  | ||||
| describe('PartnerService', () => { | ||||
|   let service: PartnerService; | ||||
|  | ||||
|   beforeEach(async () => { | ||||
|     const module: TestingModule = await Test.createTestingModule({ | ||||
|       providers: [PartnerService], | ||||
|     }).compile(); | ||||
|  | ||||
|     service = module.get<PartnerService>(PartnerService); | ||||
|   }); | ||||
|  | ||||
|   it('should be defined', () => { | ||||
|     expect(service).toBeDefined(); | ||||
|   }); | ||||
| }); | ||||
							
								
								
									
										79
									
								
								src/users/partner/partner.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/users/partner/partner.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| import { | ||||
|   forwardRef, | ||||
|   HttpException, | ||||
|   HttpStatus, | ||||
|   Inject, | ||||
|   Injectable, | ||||
| } from '@nestjs/common'; | ||||
| import { InjectRepository } from '@nestjs/typeorm'; | ||||
| import { Connection, EntityNotFoundError, Repository } from 'typeorm'; | ||||
| import { CoaService } from '../../transaction/coa.service'; | ||||
| import { CreatePartnerDto } from '../dto/create-partner.dto'; | ||||
| import { Partner } from '../entities/partner.entity'; | ||||
| import * as uuid from 'uuid'; | ||||
| import { UsersService } from '../users.service'; | ||||
| import { CreateUserDto } from '../dto/create-user.dto'; | ||||
|  | ||||
| @Injectable() | ||||
| export class PartnerService { | ||||
|   constructor( | ||||
|     @InjectRepository(Partner) | ||||
|     private partnerRepository: Repository<Partner>, | ||||
|     @Inject( | ||||
|       forwardRef(() => { | ||||
|         return CoaService; | ||||
|       }), | ||||
|     ) | ||||
|     private coaService: CoaService, | ||||
|     private userService: UsersService, | ||||
|     private connection: Connection, | ||||
|   ) {} | ||||
|  | ||||
|   async create(createPartnerDto: CreatePartnerDto, currentUser: any) { | ||||
|     const check = await this.partnerRepository.findOne({ | ||||
|       npwp: createPartnerDto.npwp, | ||||
|     }); | ||||
|  | ||||
|     if (check) { | ||||
|       throw new HttpException( | ||||
|         { | ||||
|           statusCode: HttpStatus.NOT_ACCEPTABLE, | ||||
|           error: 'N Already Exist', | ||||
|         }, | ||||
|         HttpStatus.NOT_FOUND, | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     const partnerData = new Partner(); | ||||
|     partnerData.id = uuid.v4(); | ||||
|     partnerData.name = createPartnerDto.name; | ||||
|     partnerData.npwp = createPartnerDto.npwp; | ||||
|     partnerData.address = createPartnerDto.address; | ||||
|     partnerData.status = true; | ||||
|  | ||||
|     await this.connection.transaction(async (manager) => { | ||||
|       const result = await manager.insert(Partner, partnerData); | ||||
|     }); | ||||
|  | ||||
|     const dataUser = new CreateUserDto(); | ||||
|     dataUser.username = `admin_${partnerData.name}`; | ||||
|     dataUser.roleId = '21dceea2-416e-4b55-b74c-12605e1f8d1b'; | ||||
|     dataUser.superior = false; | ||||
|     dataUser.partner = partnerData; | ||||
|     dataUser.password = createPartnerDto.password_account; | ||||
|  | ||||
|     await this.userService.create(dataUser, currentUser); | ||||
|  | ||||
|     return partnerData; | ||||
|   } | ||||
|  | ||||
|   findAllPartner(page) { | ||||
|     return this.partnerRepository.findAndCount({ | ||||
|       skip: page * 10, | ||||
|       take: 10, | ||||
|       order: { | ||||
|         version: 'DESC', | ||||
|       }, | ||||
|     }); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user