import { IQueryHandler, QueryHandler } from '@nestjs/cqrs'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Certificate } from '../../certificate'; import { CertificationRequest } from '../certification-request.entity'; import { GetCertificationRequestByCertificateQuery } from '../queries'; import { CertificationRequestDTO } from '../certification-request.dto'; @QueryHandler(GetCertificationRequestByCertificateQuery) export class GetCertificationRequestByCertificateHandler implements IQueryHandler { constructor( @InjectRepository(CertificationRequest) readonly repository: Repository, @InjectRepository(Certificate) readonly certificateRepository: Repository ) {} async execute({ certificateId }: GetCertificationRequestByCertificateQuery): Promise { const certificate = await this.certificateRepository.findOne(certificateId); return await this.repository.findOne({ where: { issuedCertificateId: certificate.id } }); } }