diff --git a/server/subscriber/MediaRequestSubscriber.ts b/server/subscriber/MediaRequestSubscriber.ts index 5cdd285d..1e872079 100644 --- a/server/subscriber/MediaRequestSubscriber.ts +++ b/server/subscriber/MediaRequestSubscriber.ts @@ -806,7 +806,11 @@ export class MediaRequestSubscriber implements EntitySubscriberInterface !request.is4k) && fullMedia.status !== MediaStatus.AVAILABLE; @@ -869,35 +871,49 @@ export class MediaRequestSubscriber implements EntitySubscriberInterface): void { + public async afterUpdate(event: UpdateEvent): Promise { if (!event.entity) { return; } - this.sendToRadarr(event.entity as MediaRequest); - this.sendToSonarr(event.entity as MediaRequest); + try { + await this.sendToRadarr(event.entity as MediaRequest); + await this.sendToSonarr(event.entity as MediaRequest); + await this.updateParentStatus(event.entity as MediaRequest); - this.updateParentStatus(event.entity as MediaRequest); - - if (event.entity.status === MediaRequestStatus.COMPLETED) { - if (event.entity.media.mediaType === MediaType.MOVIE) { - this.notifyAvailableMovie(event.entity as MediaRequest, event); - } - if (event.entity.media.mediaType === MediaType.TV) { - this.notifyAvailableSeries(event.entity as MediaRequest, event); + if (event.entity.status === MediaRequestStatus.COMPLETED) { + if (event.entity.media.mediaType === MediaType.MOVIE) { + await this.notifyAvailableMovie(event.entity as MediaRequest, event); + } + if (event.entity.media.mediaType === MediaType.TV) { + await this.notifyAvailableSeries(event.entity as MediaRequest, event); + } } + } catch (e) { + logger.error('Error in afterUpdate subscriber', { + label: 'Media Request', + requestId: (event.entity as MediaRequest).id, + errorMessage: e.message, + }); } } - public afterInsert(event: InsertEvent): void { + public async afterInsert(event: InsertEvent): Promise { if (!event.entity) { return; } - this.sendToRadarr(event.entity as MediaRequest); - this.sendToSonarr(event.entity as MediaRequest); - - this.updateParentStatus(event.entity as MediaRequest); + try { + await this.sendToRadarr(event.entity as MediaRequest); + await this.sendToSonarr(event.entity as MediaRequest); + await this.updateParentStatus(event.entity as MediaRequest); + } catch (e) { + logger.error('Error in afterInsert subscriber', { + label: 'Media Request', + requestId: (event.entity as MediaRequest).id, + errorMessage: e.message, + }); + } } public async afterRemove(event: RemoveEvent): Promise {