@@ -12,7 +12,7 @@ export default class HTTPResponse {
|
||||
let _text, _data;
|
||||
this.status = response.statusCode;
|
||||
this.headers = response.headers || {};
|
||||
this.cookies = this.headers["set-cookie"];
|
||||
this.cookies = this.headers['set-cookie'];
|
||||
|
||||
if (typeof body == 'string') {
|
||||
_text = body;
|
||||
@@ -29,29 +29,33 @@ export default class HTTPResponse {
|
||||
_text = JSON.stringify(_data);
|
||||
}
|
||||
return _text;
|
||||
}
|
||||
};
|
||||
|
||||
const getData = () => {
|
||||
if (!_data) {
|
||||
try {
|
||||
_data = JSON.parse(getText());
|
||||
} catch (e) { /* */ }
|
||||
} catch (e) {
|
||||
/* */
|
||||
}
|
||||
}
|
||||
return _data;
|
||||
}
|
||||
};
|
||||
|
||||
Object.defineProperty(this, 'body', {
|
||||
get: () => { return body }
|
||||
get: () => {
|
||||
return body;
|
||||
},
|
||||
});
|
||||
|
||||
Object.defineProperty(this, 'text', {
|
||||
enumerable: true,
|
||||
get: getText
|
||||
get: getText,
|
||||
});
|
||||
|
||||
Object.defineProperty(this, 'data', {
|
||||
enumerable: true,
|
||||
get: getData
|
||||
get: getData,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Parse } from 'parse/node';
|
||||
import { Parse } from 'parse/node';
|
||||
import * as triggers from '../triggers';
|
||||
|
||||
function getClassName(parseClass) {
|
||||
@@ -32,7 +32,12 @@ var ParseCloud = {};
|
||||
* @param {Function} data The Cloud Function to register. This function can be an async function and should take one parameter a {@link Parse.Cloud.FunctionRequest}.
|
||||
*/
|
||||
ParseCloud.define = function(functionName, handler, validationHandler) {
|
||||
triggers.addFunction(functionName, handler, validationHandler, Parse.applicationId);
|
||||
triggers.addFunction(
|
||||
functionName,
|
||||
handler,
|
||||
validationHandler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -75,7 +80,12 @@ ParseCloud.job = function(functionName, handler) {
|
||||
*/
|
||||
ParseCloud.beforeSave = function(parseClass, handler) {
|
||||
var className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.beforeSave, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.beforeSave,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -101,7 +111,12 @@ ParseCloud.beforeSave = function(parseClass, handler) {
|
||||
*/
|
||||
ParseCloud.beforeDelete = function(parseClass, handler) {
|
||||
var className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.beforeDelete, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.beforeDelete,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -128,7 +143,12 @@ ParseCloud.beforeDelete = function(parseClass, handler) {
|
||||
*/
|
||||
ParseCloud.afterSave = function(parseClass, handler) {
|
||||
var className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.afterSave, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.afterSave,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -154,7 +174,12 @@ ParseCloud.afterSave = function(parseClass, handler) {
|
||||
*/
|
||||
ParseCloud.afterDelete = function(parseClass, handler) {
|
||||
var className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.afterDelete, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.afterDelete,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -180,7 +205,12 @@ ParseCloud.afterDelete = function(parseClass, handler) {
|
||||
*/
|
||||
ParseCloud.beforeFind = function(parseClass, handler) {
|
||||
var className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.beforeFind, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.beforeFind,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -206,7 +236,12 @@ ParseCloud.beforeFind = function(parseClass, handler) {
|
||||
*/
|
||||
ParseCloud.afterFind = function(parseClass, handler) {
|
||||
const className = getClassName(parseClass);
|
||||
triggers.addTrigger(triggers.Types.afterFind, className, handler, Parse.applicationId);
|
||||
triggers.addTrigger(
|
||||
triggers.Types.afterFind,
|
||||
className,
|
||||
handler,
|
||||
Parse.applicationId
|
||||
);
|
||||
};
|
||||
|
||||
ParseCloud.onLiveQueryEvent = function(handler) {
|
||||
@@ -215,14 +250,16 @@ ParseCloud.onLiveQueryEvent = function(handler) {
|
||||
|
||||
ParseCloud._removeAllHooks = () => {
|
||||
triggers._unregisterAll();
|
||||
}
|
||||
};
|
||||
|
||||
ParseCloud.useMasterKey = () => {
|
||||
// eslint-disable-next-line
|
||||
console.warn("Parse.Cloud.useMasterKey is deprecated (and has no effect anymore) on parse-server, please refer to the cloud code migration notes: http://docs.parseplatform.org/parse-server/guide/#master-key-must-be-passed-explicitly")
|
||||
}
|
||||
console.warn(
|
||||
'Parse.Cloud.useMasterKey is deprecated (and has no effect anymore) on parse-server, please refer to the cloud code migration notes: http://docs.parseplatform.org/parse-server/guide/#master-key-must-be-passed-explicitly'
|
||||
);
|
||||
};
|
||||
|
||||
ParseCloud.httpRequest = require("./httpRequest");
|
||||
ParseCloud.httpRequest = require('./httpRequest');
|
||||
|
||||
module.exports = ParseCloud;
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ import HTTPResponse from './HTTPResponse';
|
||||
import querystring from 'querystring';
|
||||
import log from '../logger';
|
||||
|
||||
var encodeBody = function({body, headers = {}}) {
|
||||
var encodeBody = function({ body, headers = {} }) {
|
||||
if (typeof body !== 'object') {
|
||||
return {body, headers};
|
||||
return { body, headers };
|
||||
}
|
||||
var contentTypeKeys = Object.keys(headers).filter((key) => {
|
||||
var contentTypeKeys = Object.keys(headers).filter(key => {
|
||||
return key.match(/content-type/i) != null;
|
||||
});
|
||||
|
||||
@@ -20,18 +20,23 @@ var encodeBody = function({body, headers = {}}) {
|
||||
} else {
|
||||
/* istanbul ignore next */
|
||||
if (contentTypeKeys.length > 1) {
|
||||
log.error('Parse.Cloud.httpRequest', 'multiple content-type headers are set.');
|
||||
log.error(
|
||||
'Parse.Cloud.httpRequest',
|
||||
'multiple content-type headers are set.'
|
||||
);
|
||||
}
|
||||
// There maybe many, we'll just take the 1st one
|
||||
var contentType = contentTypeKeys[0];
|
||||
if (headers[contentType].match(/application\/json/i)) {
|
||||
body = JSON.stringify(body);
|
||||
} else if(headers[contentType].match(/application\/x-www-form-urlencoded/i)) {
|
||||
} else if (
|
||||
headers[contentType].match(/application\/x-www-form-urlencoded/i)
|
||||
) {
|
||||
body = querystring.stringify(body);
|
||||
}
|
||||
}
|
||||
return {body, headers};
|
||||
}
|
||||
return { body, headers };
|
||||
};
|
||||
|
||||
/**
|
||||
* Makes an HTTP Request.
|
||||
@@ -61,12 +66,12 @@ var encodeBody = function({body, headers = {}}) {
|
||||
module.exports = function(options) {
|
||||
var callbacks = {
|
||||
success: options.success,
|
||||
error: options.error
|
||||
error: options.error,
|
||||
};
|
||||
delete options.success;
|
||||
delete options.error;
|
||||
delete options.uri; // not supported
|
||||
options = Object.assign(options, encodeBody(options));
|
||||
options = Object.assign(options, encodeBody(options));
|
||||
// set follow redirects to false by default
|
||||
options.followRedirect = options.followRedirects == true;
|
||||
// support params options
|
||||
|
||||
Reference in New Issue
Block a user