node-parse-api
Advanced tools
Comparing version 0.3.1 to 0.3.2
var qs = require('querystring'); | ||
qs.escape = function(q){ return q; }; | ||
@@ -231,2 +230,33 @@ module.exports = Parse; | ||
function reformatDatesToParse(object){ | ||
if(typeof object !== 'object') return object; | ||
for( var key in object){ | ||
if(object[key] instanceof Date){ | ||
object[key] = { | ||
"__type": "Date", | ||
"iso": object[key].toISOString() | ||
} | ||
}else if(typeof object[key] === 'object'){ | ||
object[key] = reformatDatesToParse(object[key]); | ||
} | ||
} | ||
return object; | ||
} | ||
function reformatDatesFromParse(object){ | ||
if(typeof object !== 'object') return object; | ||
for( var key in object){ | ||
if(typeof object[key]==='object'){ | ||
if(object[key]["__type"] && object[key]["__type"]==="Date"){ | ||
object[key] = new Date(object[key]["iso"]); | ||
}else{ | ||
object[key] = reformatDatesFromParse(object[key]); | ||
} | ||
} | ||
} | ||
return object; | ||
} | ||
// Parse.com https api request | ||
@@ -242,6 +272,17 @@ function parseRequest(method, path, data, callback, contentType) { | ||
//convert javascript date objects to parse format | ||
if(typeof data === 'object'){ | ||
data = reformatDatesToParse(data); | ||
} | ||
switch (method) { | ||
case 'GET': | ||
if (data) { | ||
// Avoid globally overriding `querystring.escape`: | ||
// http://nodejs.org/api/querystring.html#querystring_querystring_escape | ||
var originalEscape = qs.escape; | ||
qs.escape = function(q){ return q; }; | ||
path += (path.indexOf("?") == -1 ? '?' : '&') + qs.stringify(data); | ||
qs.escape = originalEscape; | ||
} | ||
@@ -301,3 +342,3 @@ break; | ||
try { | ||
var data = JSON.parse(json); | ||
var data = reformatDatesFromParse(JSON.parse(json)); | ||
} catch (err) { | ||
@@ -304,0 +345,0 @@ } |
{ | ||
"name": "node-parse-api", | ||
"description": "A Parse.com REST API client for Node.js", | ||
"version": "0.3.1", | ||
"version": "0.3.2", | ||
"author": "Chris Johnson <tenorviol@yahoo.com>, Michael Leveton <mleveton@prepcloud.com>, Seth Gholson", | ||
@@ -6,0 +6,0 @@ "repository": "git://github.com/leveton/node-parse-api", |
23119
417