backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
174 lines (141 loc) • 2.88 kB
JavaScript
import Utils from '../../utils'
export default class EmailEnvelope {
/**
*
* @param {Object} data
* @returns {EmailEnvelope}
*/
static create(data) {
return new EmailEnvelope(data)
}
constructor(data) {
data = data || {}
this.addresses = Utils.castArray(data.addresses)
this.ccAddresses = Utils.castArray(data.ccAddresses)
this.bccAddresses = Utils.castArray(data.bccAddresses)
this.query = data.query || null
this.uniqueEmails = data.uniqueEmails || false
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
setTo(addresses) {
this.addresses = Utils.castArray(addresses)
return this
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
addTo(addresses) {
this.addresses = this.addresses.concat(Utils.castArray(addresses))
return this
}
/**
*
* @returns {Array} - addresses
*/
getTo() {
return this.addresses
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
setCc(addresses) {
this.ccAddresses = Utils.castArray(addresses)
return this
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
addCc(addresses) {
this.ccAddresses = this.ccAddresses.concat(Utils.castArray(addresses))
return this
}
/**
*
* @returns {Array} - cc-addresses
*/
getCc() {
return this.ccAddresses
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
setBcc(addresses) {
this.bccAddresses = Utils.castArray(addresses)
return this
}
/**
*
* @param {Array|String} addresses
* @returns {EmailEnvelope}
*/
addBcc(addresses) {
this.bccAddresses = this.bccAddresses.concat(Utils.castArray(addresses))
return this
}
/**
*
* @returns {Array} - bcc-addresses
*/
getBcc() {
return this.bccAddresses
}
/**
*
* @param {String|null} query
* @returns {EmailEnvelope}
*/
setQuery(query) {
this.query = query
return this
}
/**
*
* @returns {String} - query
*/
getQuery() {
return this.query
}
/**
* @param {boolean} uniqueEmails
* @returns {EmailEnvelope}
*/
setUniqueEmails(uniqueEmails) {
this.uniqueEmails = uniqueEmails
return this
}
/**
* @returns {uniqueEmails|boolean}
*/
getUniqueEmails() {
return this.uniqueEmails
}
toJSON() {
const data = {}
if (this.addresses.length > 0) {
data.addresses = this.addresses
}
if (this.ccAddresses.length > 0) {
data['cc-addresses'] = this.ccAddresses
}
if (this.bccAddresses.length > 0) {
data['bcc-addresses'] = this.bccAddresses
}
if (this.query) {
data.criteria = this.query
}
data.uniqueEmails = this.uniqueEmails
return data
}
}