summaryrefslogtreecommitdiffstats
path: root/lib/smtpapi_headers.js
diff options
context:
space:
mode:
authorKyle Partridge <partkyle@gmail.com>2012-01-11 18:47:52 -0800
committerKyle Partridge <partkyle@gmail.com>2012-01-11 18:47:52 -0800
commitf996e4a8fd9a6c1e08f269b98aebca7869783f8c (patch)
tree2bb2360e00b22d97909ec178d9d672184ac91e33 /lib/smtpapi_headers.js
parent1791d2686414c6f67a836846f3492b7800cd27c6 (diff)
parent375433adccd97dd2100936020557efcfb1164619 (diff)
downloadsendgrid-nodejs-f996e4a8fd9a6c1e08f269b98aebca7869783f8c.zip
sendgrid-nodejs-f996e4a8fd9a6c1e08f269b98aebca7869783f8c.tar.gz
sendgrid-nodejs-f996e4a8fd9a6c1e08f269b98aebca7869783f8c.tar.bz2
Merge remote-tracking branch 'siyegen/x-smtpapi' into x-smtpapi
Diffstat (limited to 'lib/smtpapi_headers.js')
-rw-r--r--lib/smtpapi_headers.js60
1 files changed, 35 insertions, 25 deletions
diff --git a/lib/smtpapi_headers.js b/lib/smtpapi_headers.js
index 574fd69..c9fb679 100644
--- a/lib/smtpapi_headers.js
+++ b/lib/smtpapi_headers.js
@@ -1,57 +1,67 @@
+var _ = require('underscore');
+
function SmtpapiHeaders() {
- this.data = {};
+ this.to = [];
+ this.sub = {};
+ this.unique_args = {};
+ this.category = [];
+ this.filters = {};
}
SmtpapiHeaders.prototype.addTo = function(to) {
- if (!this.data['to']) {
- this.data['to'] = [];
- }
- if (typeof to == 'object') {
- this.data['to'] = this.data['to'].concat(to);
+ if (_.isArray(to)) {
+ this.to = this.to.concat(to);
} else {
- this.data['to'].push(to);
+ this.to.push(to);
}
}
SmtpapiHeaders.prototype.addSubVal = function(key, val) {
- if (!this.data['sub']) {
- this.data['sub'] = {};
- }
- if (typeof val == 'object') {
- this.data['sub'][key] = val;
+ if (_.isArray(val)) {
+ this.sub[key] = val;
} else {
- this.data['sub'][key] = [val];
+ this.sub[key] = [val];
}
}
SmtpapiHeaders.prototype.setUniqueArgs = function(val) {
- if (typeof val == 'object') {
- this.data['unique_args'] = val;
+ if (_.isObject(val)) {
+ this.unique_args = val;
+ }
+}
+
+SmtpapiHeaders.prototype.addUniqueArgs = function(val) {
+ if (_.isObject(val)) {
+ _.extend(this.unique_args, val);
}
}
SmtpapiHeaders.prototype.setCategory = function(val) {
- this.data['category'] = val;
+ this.category = val;
}
-SmtpapiHeaders.prototype.addFilterSetting = function(filter, setting, val) {
- if (!this.data['filters']) {
- this.data['filters'] = {};
+SmtpapiHeaders.prototype.addCategory = function(val) {
+ if (_.isArray(val)) {
+ this.category.concat(val);
+ } else {
+ this.category.push(val);
}
+}
- if (!this.data['filters'][filter]) {
- this.data['filters'][filter] = {};
+SmtpapiHeaders.prototype.addFilterSetting = function(filter, setting, val) {
+ if (!this.filters[filter]) {
+ this.filters[filter] = {};
}
- if (!this.data['filters'][filter]['settings']) {
- this.data['filters'][filter]['settings'] = {};
+ if (!this.filters[filter]['settings']) {
+ this.filters[filter]['settings'] = {};
}
- this.data['filters'][filter]['settings'][setting] = val;
+ this.filters[filter]['settings'][setting] = val;
}
SmtpapiHeaders.prototype.toJson = function() {
- var json = JSON.stringify(this.data);
+ var json = JSON.stringify(this);
return json.replace(/(["\]}])([,:])(["\[{])/, '$1$2 $3');
}