@nest-kr/integration
Version:
```cli npm i @nest-kr/integration ```
87 lines (86 loc) • 3.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class MessageMapper {
toDTO(snsMessage) {
const messageAttributes = {
'AWS.SNS.MOBILE.MPNS.TYPE': null,
'AWS.SNS.MOBILE.MPNS.NotificationClass': null,
'AWS.SNS.MOBILE.WNS.Type': null,
};
if (snsMessage.MessageAttributes) {
if (snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.TYPE']) {
messageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'] = {
type: snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'].Type,
value: snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'].Value,
};
}
if (snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass']) {
messageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'] = {
type: snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'].Type,
value: snsMessage.MessageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'].Value,
};
}
if (snsMessage.MessageAttributes['AWS.SNS.MOBILE.WNS.Type']) {
messageAttributes['AWS.SNS.MOBILE.WNS.Type'] = {
type: snsMessage.MessageAttributes['AWS.SNS.MOBILE.WNS.Type'].Type,
value: snsMessage.MessageAttributes['AWS.SNS.MOBILE.WNS.Type'].Value,
};
}
}
return {
type: snsMessage.Type,
messageId: snsMessage.MessageId,
topicArn: snsMessage.TopicArn,
subject: snsMessage.Subject,
message: snsMessage.Message,
timestamp: snsMessage.Timestamp,
signatureVersion: snsMessage.SignatureVersion,
signature: snsMessage.Signature,
signingCertURL: snsMessage.SigningCertURL,
unsubscribeURL: snsMessage.UnsubscribeURL,
messageAttributes,
integrationEvent: null,
};
}
toSnsMessage(dto) {
const MessageAttributes = {
'AWS.SNS.MOBILE.MPNS.TYPE': null,
'AWS.SNS.MOBILE.MPNS.NotificationClass': null,
'AWS.SNS.MOBILE.WNS.Type': null,
};
if (dto.messageAttributes) {
if (dto.messageAttributes['AWS.SNS.MOBILE.MPNS.TYPE']) {
MessageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'] = {
Type: dto.messageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'].type,
Value: dto.messageAttributes['AWS.SNS.MOBILE.MPNS.TYPE'].value,
};
}
if (dto.messageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass']) {
MessageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'] = {
Type: dto.messageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'].type,
Value: dto.messageAttributes['AWS.SNS.MOBILE.MPNS.NotificationClass'].value,
};
}
if (dto.messageAttributes['AWS.SNS.MOBILE.WNS.Type']) {
MessageAttributes['AWS.SNS.MOBILE.WNS.Type'] = {
Type: dto.messageAttributes['AWS.SNS.MOBILE.WNS.Type'].type,
Value: dto.messageAttributes['AWS.SNS.MOBILE.WNS.Type'].value,
};
}
}
return {
Type: dto.type,
MessageId: dto.messageId,
TopicArn: dto.topicArn,
Subject: dto.subject,
Message: dto.message,
Timestamp: dto.timestamp,
SignatureVersion: dto.signatureVersion,
Signature: dto.signature,
SigningCertURL: dto.signingCertURL,
UnsubscribeURL: dto.unsubscribeURL,
MessageAttributes,
};
}
}
exports.MessageMapper = MessageMapper;