customerio-node
Version:
A node client for the Customer.io event API. http://customer.io
96 lines (95 loc) • 3.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SendSMSRequest = exports.SendPushRequest = exports.SendEmailRequest = void 0;
class SendEmailRequest {
constructor(opts) {
this.message = {
to: opts.to,
identifiers: opts.identifiers,
attachments: {},
message_data: opts.message_data,
headers: opts.headers || {},
preheader: opts.preheader,
reply_to: opts.reply_to,
bcc: opts.bcc,
body_plain: opts.body_plain,
body_amp: opts.body_amp,
fake_bcc: opts.fake_bcc,
disable_message_retention: opts.disable_message_retention,
send_to_unsubscribed: opts.send_to_unsubscribed,
tracked: opts.tracked,
queue_draft: opts.queue_draft,
send_at: opts.send_at,
disable_css_preprocessing: opts.disable_css_preprocessing,
language: opts.language,
};
if ('transactional_message_id' in opts) {
this.message.transactional_message_id = opts.transactional_message_id;
}
if ('from' in opts) {
this.message.from = opts.from;
}
if ('subject' in opts) {
this.message.subject = opts.subject;
}
if ('body' in opts) {
this.message.body = opts.body;
}
}
// Use `any` for data here, because union types and overloads in Typescript
// don't work well together for `Buffer.from`.
attach(name, data, { encode = true } = {}) {
if (this.message.attachments[name]) {
throw new Error(`attachment ${name} already exists`);
}
if (encode) {
this.message.attachments[name] = Buffer.from(data).toString('base64');
}
else {
this.message.attachments[name] = data;
}
}
}
exports.SendEmailRequest = SendEmailRequest;
class SendPushRequest {
constructor(opts) {
this.message = {
identifiers: opts.identifiers,
to: opts.to,
transactional_message_id: opts.transactional_message_id,
title: opts.title,
message: opts.message,
disable_message_retention: opts.disable_message_retention,
send_to_unsubscribed: opts.send_to_unsubscribed,
queue_draft: opts.queue_draft,
message_data: opts.message_data,
send_at: opts.send_at,
language: opts.language,
image_url: opts.image_url,
link: opts.link,
sound: opts.sound,
custom_data: opts.custom_data,
custom_device: opts.device,
};
if ('custom_payload' in opts) {
this.message.custom_payload = opts.custom_payload;
}
}
}
exports.SendPushRequest = SendPushRequest;
class SendSMSRequest {
constructor(opts) {
this.message = {
identifiers: opts.identifiers,
to: opts.to,
transactional_message_id: opts.transactional_message_id,
disable_message_retention: opts.disable_message_retention,
send_to_unsubscribed: opts.send_to_unsubscribed,
queue_draft: opts.queue_draft,
message_data: opts.message_data,
send_at: opts.send_at,
language: opts.language,
};
}
}
exports.SendSMSRequest = SendSMSRequest;