@@ -147,27 +147,25 @@ export function buildAck({
147147}
148148
149149export function buildError ( { distributionID, senderID, sourceMessage } ) {
150- const msg = buildMessage (
150+ return buildMessage (
151151 {
152152 error : {
153153 errorCode : { statusCode : 501 , statusString : 'UNROUTABLE_MESSAGE' } ,
154154 errorCause : 'This message was rejected by the recipient.' ,
155- referencedDistributionID : distributionID ,
156155 sourceMessage,
156+ referencedDistributionID : distributionID ,
157157 } ,
158158 } ,
159- { distributionKind : 'Error' , recipientId : senderID }
159+ { distributionKind : 'Error' , recipientId : senderID , includeRCDE : false }
160160 ) ;
161- msg . content [ 0 ] . jsonContent . embeddedJsonContent . message = {
162- error : msg . content [ 0 ] . jsonContent . embeddedJsonContent . message . error ,
163- } ;
164- return msg ;
165161}
162+
166163export function buildMessage (
167164 innerMessage ,
168- { distributionKind, recipientId } = {
165+ { distributionKind, recipientId, includeRCDE = true } = {
169166 distributionKind : 'Report' ,
170167 recipientId : null ,
168+ includeRCDE : true ,
171169 }
172170) {
173171 // InnerMessage should only have one key, as we do not support multiple use cases in the same message.
@@ -184,34 +182,41 @@ export function buildMessage(
184182 } else {
185183 message . descriptor . keyword [ 0 ] . value = useCase ;
186184 }
185+
187186 const formattedInnerMessage = formatIdsInMessage ( innerMessage ) ;
188- message . content [ 0 ] . jsonContent . embeddedJsonContent . message = {
189- ...message . content [ 0 ] . jsonContent . embeddedJsonContent . message ,
190- ...formattedInnerMessage ,
191- } ;
192- const name = clientInfos ( ) . name ;
193187 const targetId = recipientId ?? authStore . user . targetId ;
194188 const sentAt = moment ( ) . format ( ) ;
195189 message . distributionID = `${ authStore . user . clientId } _${ uuidv4 ( ) } ` ;
196190 message . distributionKind = distributionKind ;
197191 message . senderID = authStore . user . clientId ;
198192 message . dateTimeSent = sentAt ;
199193 message . descriptor . explicitAddress . explicitAddressValue = targetId ;
200- message . content [ 0 ] . jsonContent . embeddedJsonContent . message . messageId =
201- message . distributionID ;
202- message . content [ 0 ] . jsonContent . embeddedJsonContent . message . kind =
203- message . distributionKind ;
204- message . content [ 0 ] . jsonContent . embeddedJsonContent . message . sender = {
205- name,
206- URI : `hubex:${ authStore . user . clientId } ` ,
207- } ;
208- message . content [ 0 ] . jsonContent . embeddedJsonContent . message . sentAt = sentAt ;
209- message . content [ 0 ] . jsonContent . embeddedJsonContent . message . recipient = [
210- {
211- name : clientInfos ( targetId ) . name ,
212- URI : `hubex:${ targetId } ` ,
213- } ,
214- ] ;
194+
195+ if ( includeRCDE ) {
196+ const name = clientInfos ( ) . name ;
197+ message . content [ 0 ] . jsonContent . embeddedJsonContent . message = {
198+ ...message . content [ 0 ] . jsonContent . embeddedJsonContent . message ,
199+ ...formattedInnerMessage ,
200+ messageId : message . distributionID ,
201+ kind : message . distributionKind ,
202+ sender : {
203+ name,
204+ URI : `hubex:${ authStore . user . clientId } ` ,
205+ } ,
206+ sentAt,
207+ recipient : [
208+ {
209+ name : clientInfos ( targetId ) . name ,
210+ URI : `hubex:${ targetId } ` ,
211+ } ,
212+ ] ,
213+ } ;
214+ } else {
215+ message . content [ 0 ] . jsonContent . embeddedJsonContent . message = {
216+ ...formattedInnerMessage ,
217+ } ;
218+ }
219+
215220 return trimEmptyValues ( message ) ;
216221}
217222
0 commit comments