diff --git a/packages/devices/origin-device-registry-irec-local-api/src/device/cron/check-device-state.task.ts b/packages/devices/origin-device-registry-irec-local-api/src/device/cron/check-device-state.task.ts index 25baff53d0..453f8de721 100644 --- a/packages/devices/origin-device-registry-irec-local-api/src/device/cron/check-device-state.task.ts +++ b/packages/devices/origin-device-registry-irec-local-api/src/device/cron/check-device-state.task.ts @@ -1,4 +1,4 @@ -import { Inject, Injectable } from '@nestjs/common'; +import { Inject, Injectable, Logger } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; import { EventBus } from '@nestjs/cqrs'; import { IREC_SERVICE, IrecService } from '@energyweb/origin-organization-irec-api'; @@ -8,6 +8,8 @@ import { DeviceState } from '@energyweb/issuer-irec-api-wrapper'; @Injectable() export class CheckDeviceStateTask { + private readonly logger = new Logger(CheckDeviceStateTask.name); + constructor( private readonly deviceService: DeviceService, @Inject(IREC_SERVICE) @@ -19,11 +21,17 @@ export class CheckDeviceStateTask { async handleCron() { const devices = await this.deviceService.findAll(); for (const device of devices) { - const irecDevice = await this.irecService.getDevice(device.ownerId, device.code); - if (irecDevice && !this.areStatusesSame(irecDevice.status, device.status)) { - await this.deviceService.updateStatus(device.id, irecDevice.status); + try { + const irecDevice = await this.irecService.getDevice(device.ownerId, device.code); + if (irecDevice && !this.areStatusesSame(irecDevice.status, device.status)) { + await this.deviceService.updateStatus(device.id, irecDevice.status); - this.eventBus.publish(new DeviceStatusChangedEvent(device, irecDevice.status)); + this.eventBus.publish(new DeviceStatusChangedEvent(device, irecDevice.status)); + } + } catch (e) { + this.logger.error( + `Cannot check IREC device ${device.code} state because of error: ${e.message}` + ); } } } diff --git a/packages/traceability/issuer-irec-api/src/pods/certification-request/cron/check-certification-request-state.task.ts b/packages/traceability/issuer-irec-api/src/pods/certification-request/cron/check-certification-request-state.task.ts index a74e3f3fa9..05732a2e0d 100644 --- a/packages/traceability/issuer-irec-api/src/pods/certification-request/cron/check-certification-request-state.task.ts +++ b/packages/traceability/issuer-irec-api/src/pods/certification-request/cron/check-certification-request-state.task.ts @@ -1,4 +1,4 @@ -import { Inject, Injectable } from '@nestjs/common'; +import { Inject, Injectable, Logger } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; import { CommandBus, EventBus, QueryBus } from '@nestjs/cqrs'; @@ -18,6 +18,8 @@ import { Repository } from 'typeorm'; @Injectable() export class CheckCertificationRequestStateTask { + private readonly logger = new Logger(CheckCertificationRequestStateTask.name); + constructor( private readonly commandBus: CommandBus, @Inject(IREC_SERVICE) @@ -36,37 +38,43 @@ export class CheckCertificationRequestStateTask { ); for (const certificateRequest of certificationRequests) { - const user = await this.userService.findOne(certificateRequest.userId); - const irecIssue = await this.irecService.getIssueRequest( - user.organization.id, - certificateRequest.irecIssueRequestId - ); + try { + const user = await this.userService.findOne(certificateRequest.userId); + const irecIssue = await this.irecService.getIssueRequest( + user.organization.id, + certificateRequest.irecIssueRequestId + ); - if (!irecIssue) { - return; - } + if (!irecIssue) { + return; + } - if ( - irecIssue.status === IssuanceStatus.Approved || - irecIssue.status === IssuanceStatus.Issued - ) { - await this.irecRepository.update( - { irecIssueRequestId: certificateRequest.irecIssueRequestId }, - { irecAssetId: irecIssue.asset } - ); - await this.commandBus.execute( - new ApproveCertificationRequestCommand(certificateRequest.id) - ); - this.eventBus.publish( - new CertificationRequestStatusChangedEvent( - certificateRequest, - IssuanceStatus.Approved - ) - ); - } - if (irecIssue.status === IssuanceStatus.Rejected) { - await this.commandBus.execute( - new RevokeCertificationRequestCommand(certificateRequest.id) + if ( + irecIssue.status === IssuanceStatus.Approved || + irecIssue.status === IssuanceStatus.Issued + ) { + await this.irecRepository.update( + { irecIssueRequestId: certificateRequest.irecIssueRequestId }, + { irecAssetId: irecIssue.asset } + ); + await this.commandBus.execute( + new ApproveCertificationRequestCommand(certificateRequest.id) + ); + this.eventBus.publish( + new CertificationRequestStatusChangedEvent( + certificateRequest, + IssuanceStatus.Approved + ) + ); + } + if (irecIssue.status === IssuanceStatus.Rejected) { + await this.commandBus.execute( + new RevokeCertificationRequestCommand(certificateRequest.id) + ); + } + } catch (e) { + this.logger.error( + `Cannot IREC certification request state ${certificateRequest.irecIssueRequestId} state because of error: ${e.message}` ); } }