@@ -9,11 +9,17 @@ import type {
99 UploadToPdmOutcome ,
1010 UploadToPdmResult ,
1111} from 'app/upload-to-pdm' ;
12- import { $TtlItemBusEvent , EventPublisher , Logger , TtlItemEvent } from 'utils' ;
12+ import {
13+ $TtlItemBusEvent ,
14+ EventPublisher ,
15+ Logger ,
16+ PdmResourceRejectedEvent ,
17+ PdmResourceSubmittedEvent ,
18+ } from 'utils' ;
1319
1420interface ProcessingResult {
1521 result : UploadToPdmResult ;
16- item ?: TtlItemEvent ;
22+ item ?: PdmResourceSubmittedEvent | PdmResourceRejectedEvent ;
1723}
1824
1925interface CreateHandlerDependencies {
@@ -64,8 +70,8 @@ async function processRecord(
6470
6571function categorizeResults (
6672 results : PromiseSettledResult < ProcessingResult > [ ] ,
67- successfulEvents : TtlItemEvent [ ] ,
68- failedEvents : TtlItemEvent [ ] ,
73+ successfulEvents : PdmResourceSubmittedEvent [ ] ,
74+ failedEvents : PdmResourceRejectedEvent [ ] ,
6975 logger : Logger ,
7076) : Record < UploadToPdmOutcome | 'retrieved' , number > {
7177 const processed : Record < UploadToPdmOutcome | 'retrieved' , number > = {
@@ -80,10 +86,26 @@ function categorizeResults(
8086 processed [ itemResult . outcome ] += 1 ;
8187
8288 if ( item ) {
83- if ( itemResult . outcome === 'sent' ) {
84- successfulEvents . push ( item ) ;
89+ if ( itemResult . outcome === 'sent' && itemResult . resourceId ) {
90+ successfulEvents . push ( {
91+ ...item ,
92+ data : {
93+ 'digital-letter-id' : item . data [ 'digital-letter-id' ] ,
94+ messageReference : item . data . messageReference ,
95+ senderId : item . data . senderId ,
96+ resourceId : itemResult . resourceId ,
97+ retryCount : 0 ,
98+ } ,
99+ } ) ;
85100 } else {
86- failedEvents . push ( item ) ;
101+ failedEvents . push ( {
102+ ...item ,
103+ data : {
104+ 'digital-letter-id' : item . data [ 'digital-letter-id' ] ,
105+ messageReference : item . data . messageReference ,
106+ senderId : item . data . senderId ,
107+ } ,
108+ } ) ;
87109 }
88110 }
89111 } else {
@@ -96,7 +118,7 @@ function categorizeResults(
96118}
97119
98120async function publishSuccessfulEvents (
99- successfulEvents : TtlItemEvent [ ] ,
121+ successfulEvents : PdmResourceSubmittedEvent [ ] ,
100122 eventPublisher : EventPublisher ,
101123 logger : Logger ,
102124) : Promise < void > {
@@ -129,7 +151,7 @@ async function publishSuccessfulEvents(
129151}
130152
131153async function publishFailedEvents (
132- failedEvents : TtlItemEvent [ ] ,
154+ failedEvents : PdmResourceRejectedEvent [ ] ,
133155 eventPublisher : EventPublisher ,
134156 logger : Logger ,
135157) : Promise < void > {
@@ -168,8 +190,8 @@ export const createHandler = ({
168190} : CreateHandlerDependencies ) =>
169191 async function handler ( sqsEvent : SQSEvent ) : Promise < SQSBatchResponse > {
170192 const batchItemFailures : SQSBatchItemFailure [ ] = [ ] ;
171- const successfulEvents : TtlItemEvent [ ] = [ ] ;
172- const failedEvents : TtlItemEvent [ ] = [ ] ;
193+ const successfulEvents : PdmResourceSubmittedEvent [ ] = [ ] ;
194+ const failedEvents : PdmResourceRejectedEvent [ ] = [ ] ;
173195
174196 const promises = sqsEvent . Records . map ( ( record ) =>
175197 processRecord ( record , uploadToPdm , logger , batchItemFailures ) ,
0 commit comments