gmail-api-parse-message
Advanced tools
Comparing version 1.0.3 to 1.0.4
@@ -0,2 +1,6 @@ | ||
'use strict'; | ||
var b64Decode = require('base-64').decode; | ||
var pick = require('lodash.pick'); | ||
var assign = require('lodash.assign'); | ||
@@ -20,2 +24,5 @@ /** | ||
var indexedHeaders = {}; | ||
if(!headers) { | ||
return indexedHeaders; | ||
} | ||
headers.forEach(function(header) { | ||
@@ -34,22 +41,21 @@ indexedHeaders[header.name.toLowerCase()] = header.value; | ||
module.exports = function parseMessage(response) { | ||
var result = {}; | ||
result.id = response.id; | ||
result.threadId = response.threadId; | ||
result.labelIds = response.labelIds; | ||
result.snippet = response.snippet; | ||
result.historyId = response.historyId; | ||
result.internalDate = response.internalDate; | ||
result.attachments = []; | ||
var result = pick(response, 'id', 'threadId', 'labelIds', 'snippet', 'historyId'); | ||
if (response.internalDate) { | ||
result.internalDate = parseInt(response.internalDate); | ||
} | ||
var payload = response.payload; | ||
if(!payload) { | ||
return result; | ||
} | ||
var headers = indexHeaders(payload.headers); | ||
result.subject = headers.subject; | ||
result.from = headers.from; | ||
result.to = headers.to; | ||
result.cc = headers.cc; | ||
result.bcc = headers.bcc; | ||
result.messageId = headers['message-id']; | ||
assign(result, pick(headers, 'subject', 'from', 'to', 'cc', 'bcc')); | ||
if(headers['message-id']) { | ||
result.messageId = headers['message-id']; | ||
} | ||
var parts = [payload]; | ||
var firstPartProcessed = false; | ||
while (parts.length !== 0) { | ||
@@ -72,2 +78,5 @@ var part = parts.shift(); | ||
var body = part.body; | ||
if(!result.attachments) { | ||
result.attachments = []; | ||
} | ||
result.attachments.push({ | ||
@@ -74,0 +83,0 @@ filename: part.filename, |
{ | ||
"name": "gmail-api-parse-message", | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"description": "Parses the response from the Gmail API's GET message method", | ||
@@ -17,4 +17,6 @@ "main": "lib", | ||
"dependencies": { | ||
"base-64": "^0.1.0" | ||
"base-64": "^0.1.0", | ||
"lodash.assign": "^3.2.0", | ||
"lodash.pick": "^3.1.0" | ||
} | ||
} |
13730
354
3
+ Addedlodash.assign@^3.2.0
+ Addedlodash.pick@^3.1.0
+ Addedlodash._baseassign@3.2.0(transitive)
+ Addedlodash._basecopy@3.0.1(transitive)
+ Addedlodash._baseflatten@3.1.4(transitive)
+ Addedlodash._basefor@3.0.3(transitive)
+ Addedlodash._bindcallback@3.0.1(transitive)
+ Addedlodash._createassigner@3.1.1(transitive)
+ Addedlodash._getnative@3.9.1(transitive)
+ Addedlodash._isiterateecall@3.0.9(transitive)
+ Addedlodash._pickbyarray@3.0.2(transitive)
+ Addedlodash._pickbycallback@3.0.0(transitive)
+ Addedlodash.assign@3.2.0(transitive)
+ Addedlodash.isarguments@3.1.0(transitive)
+ Addedlodash.isarray@3.0.4(transitive)
+ Addedlodash.keys@3.1.2(transitive)
+ Addedlodash.keysin@3.0.8(transitive)
+ Addedlodash.pick@3.1.0(transitive)
+ Addedlodash.restparam@3.6.1(transitive)