cache as ES6
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000;
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000;
|
||||||
|
|
||||||
var cache = require('../src/cache');
|
var cache = require('../src/cache').default;
|
||||||
var DatabaseAdapter = require('../src/DatabaseAdapter');
|
var DatabaseAdapter = require('../src/DatabaseAdapter');
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var facebook = require('../src/oauth/facebook');
|
var facebook = require('../src/oauth/facebook');
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ var deepcopy = require('deepcopy');
|
|||||||
var Parse = require('parse/node').Parse;
|
var Parse = require('parse/node').Parse;
|
||||||
var RestQuery = require('./RestQuery');
|
var RestQuery = require('./RestQuery');
|
||||||
|
|
||||||
var cache = require('./cache');
|
import cache from './cache';
|
||||||
|
|
||||||
// An Auth object tells you who is requesting something and whether
|
// An Auth object tells you who is requesting something and whether
|
||||||
// the master key was used.
|
// the master key was used.
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
// configured.
|
// configured.
|
||||||
// mount is the URL for the root of the API; includes http, domain, etc.
|
// mount is the URL for the root of the API; includes http, domain, etc.
|
||||||
|
|
||||||
|
import cache from './cache';
|
||||||
|
|
||||||
export class Config {
|
export class Config {
|
||||||
|
|
||||||
constructor(applicationId, mount) {
|
constructor(applicationId, mount) {
|
||||||
var cache = require('./cache');
|
|
||||||
var DatabaseAdapter = require('./DatabaseAdapter');
|
var DatabaseAdapter = require('./DatabaseAdapter');
|
||||||
|
|
||||||
var cacheInfo = cache.apps[applicationId];
|
var cacheInfo = cache.apps[applicationId];
|
||||||
|
|||||||
@@ -13,11 +13,11 @@
|
|||||||
// * This list is incomplete and the database process is not fully modularized.
|
// * This list is incomplete and the database process is not fully modularized.
|
||||||
//
|
//
|
||||||
// Default is ExportAdapter, which uses mongo.
|
// Default is ExportAdapter, which uses mongo.
|
||||||
|
import cache from './cache';
|
||||||
|
|
||||||
var ExportAdapter = require('./ExportAdapter');
|
var ExportAdapter = require('./ExportAdapter');
|
||||||
|
|
||||||
var adapter = ExportAdapter;
|
var adapter = ExportAdapter;
|
||||||
var cache = require('./cache');
|
|
||||||
var dbConnections = {};
|
var dbConnections = {};
|
||||||
var databaseURI = 'mongodb://localhost:27017/parse';
|
var databaseURI = 'mongodb://localhost:27017/parse';
|
||||||
var appDatabaseURIs = {};
|
var appDatabaseURIs = {};
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
// that writes to the database.
|
// that writes to the database.
|
||||||
// This could be either a "create" or an "update".
|
// This could be either a "create" or an "update".
|
||||||
|
|
||||||
|
import cache from './cache';
|
||||||
var deepcopy = require('deepcopy');
|
var deepcopy = require('deepcopy');
|
||||||
|
|
||||||
var Auth = require('./Auth');
|
var Auth = require('./Auth');
|
||||||
var cache = require('./cache');
|
|
||||||
var Config = require('./Config');
|
var Config = require('./Config');
|
||||||
var cryptoUtils = require('./cryptoUtils');
|
var cryptoUtils = require('./cryptoUtils');
|
||||||
var passwordCrypto = require('./password');
|
var passwordCrypto = require('./password');
|
||||||
@@ -114,7 +114,7 @@ RestWrite.prototype.validateSchema = function() {
|
|||||||
// Any change leads to our data being mutated.
|
// Any change leads to our data being mutated.
|
||||||
RestWrite.prototype.runBeforeTrigger = function() {
|
RestWrite.prototype.runBeforeTrigger = function() {
|
||||||
// Avoid doing any setup for triggers if there is no 'beforeSave' trigger for this class.
|
// Avoid doing any setup for triggers if there is no 'beforeSave' trigger for this class.
|
||||||
if (!triggers.triggerExists(this.className, triggers.Types.beforeSave)) {
|
if (!triggers.triggerExists(this.className, triggers.Types.beforeSave, this.config.applicationId)) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
40
src/cache.js
40
src/cache.js
@@ -1,45 +1,45 @@
|
|||||||
var apps = {};
|
export var apps = {};
|
||||||
var stats = {};
|
export var stats = {};
|
||||||
var isLoaded = false;
|
export var isLoaded = false;
|
||||||
var users = {};
|
export var users = {};
|
||||||
|
|
||||||
function getApp(app, callback) {
|
export function getApp(app, callback) {
|
||||||
if (apps[app]) return callback(true, apps[app]);
|
if (apps[app]) return callback(true, apps[app]);
|
||||||
return callback(false);
|
return callback(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStat(key, value) {
|
export function updateStat(key, value) {
|
||||||
stats[key] = value;
|
stats[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getUser(sessionToken) {
|
export function getUser(sessionToken) {
|
||||||
if (users[sessionToken]) return users[sessionToken];
|
if (users[sessionToken]) return users[sessionToken];
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setUser(sessionToken, userObject) {
|
export function setUser(sessionToken, userObject) {
|
||||||
users[sessionToken] = userObject;
|
users[sessionToken] = userObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearUser(sessionToken) {
|
export function clearUser(sessionToken) {
|
||||||
delete users[sessionToken];
|
delete users[sessionToken];
|
||||||
}
|
}
|
||||||
|
|
||||||
//So far used only in tests
|
//So far used only in tests
|
||||||
function clearCache() {
|
export function clearCache() {
|
||||||
apps = {};
|
apps = {};
|
||||||
stats = {};
|
stats = {};
|
||||||
users = {};
|
users = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
export default {
|
||||||
apps: apps,
|
apps,
|
||||||
stats: stats,
|
stats,
|
||||||
isLoaded: isLoaded,
|
isLoaded,
|
||||||
getApp: getApp,
|
getApp,
|
||||||
updateStat: updateStat,
|
updateStat,
|
||||||
clearUser: clearUser,
|
clearUser,
|
||||||
getUser: getUser,
|
getUser,
|
||||||
setUser: setUser,
|
setUser,
|
||||||
clearCache: clearCache,
|
clearCache,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ import 'babel-polyfill';
|
|||||||
|
|
||||||
var batch = require('./batch'),
|
var batch = require('./batch'),
|
||||||
bodyParser = require('body-parser'),
|
bodyParser = require('body-parser'),
|
||||||
cache = require('./cache'),
|
|
||||||
DatabaseAdapter = require('./DatabaseAdapter'),
|
DatabaseAdapter = require('./DatabaseAdapter'),
|
||||||
express = require('express'),
|
express = require('express'),
|
||||||
middlewares = require('./middlewares'),
|
middlewares = require('./middlewares'),
|
||||||
multer = require('multer'),
|
multer = require('multer'),
|
||||||
Parse = require('parse/node').Parse;
|
Parse = require('parse/node').Parse;
|
||||||
|
|
||||||
|
import cache from './cache';
|
||||||
import PromiseRouter from './PromiseRouter';
|
import PromiseRouter from './PromiseRouter';
|
||||||
import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter';
|
import { GridStoreAdapter } from './Adapters/Files/GridStoreAdapter';
|
||||||
import { S3Adapter } from './Adapters/Files/S3Adapter';
|
import { S3Adapter } from './Adapters/Files/S3Adapter';
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
|
import cache from './cache';
|
||||||
|
|
||||||
var Parse = require('parse/node').Parse;
|
var Parse = require('parse/node').Parse;
|
||||||
|
|
||||||
var auth = require('./Auth');
|
var auth = require('./Auth');
|
||||||
var cache = require('./cache');
|
|
||||||
var Config = require('./Config');
|
var Config = require('./Config');
|
||||||
|
|
||||||
// Checks that the request is authorized for this app and checks user
|
// Checks that the request is authorized for this app and checks user
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
// things.
|
// things.
|
||||||
|
|
||||||
var Parse = require('parse/node').Parse;
|
var Parse = require('parse/node').Parse;
|
||||||
|
import cache from './cache';
|
||||||
|
|
||||||
var cache = require('./cache');
|
|
||||||
var RestQuery = require('./RestQuery');
|
var RestQuery = require('./RestQuery');
|
||||||
var RestWrite = require('./RestWrite');
|
var RestWrite = require('./RestWrite');
|
||||||
var triggers = require('./triggers');
|
var triggers = require('./triggers');
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// testing-routes.js
|
// testing-routes.js
|
||||||
|
import cache from './cache';
|
||||||
|
|
||||||
var express = require('express'),
|
var express = require('express'),
|
||||||
cache = require('./cache'),
|
|
||||||
middlewares = require('./middlewares'),
|
middlewares = require('./middlewares'),
|
||||||
cryptoUtils = require('./cryptoUtils');
|
cryptoUtils = require('./cryptoUtils');
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +1,56 @@
|
|||||||
// triggers.js
|
// triggers.js
|
||||||
var Parse = require('parse/node').Parse,
|
import Parse from 'parse/node';
|
||||||
cache = require('./cache');
|
import cache from './cache';
|
||||||
|
|
||||||
var Types = {
|
export const Types = {
|
||||||
beforeSave: 'beforeSave',
|
beforeSave: 'beforeSave',
|
||||||
afterSave: 'afterSave',
|
afterSave: 'afterSave',
|
||||||
beforeDelete: 'beforeDelete',
|
beforeDelete: 'beforeDelete',
|
||||||
afterDelete: 'afterDelete'
|
afterDelete: 'afterDelete'
|
||||||
};
|
};
|
||||||
|
|
||||||
var BaseStore = function() {
|
const baseStore = function() {
|
||||||
this.Functions = {}
|
|
||||||
this.Validators = {}
|
let Validators = {};
|
||||||
this.Triggers = Object.keys(Types).reduce(function(base, key){
|
let Functions = {};
|
||||||
|
let Triggers = Object.keys(Types).reduce(function(base, key){
|
||||||
base[key] = {};
|
base[key] = {};
|
||||||
return base;
|
return base;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
|
return Object.freeze({
|
||||||
|
Functions,
|
||||||
|
Validators,
|
||||||
|
Triggers
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var _triggerStore = {};
|
const _triggerStore = {};
|
||||||
|
|
||||||
function addFunction(functionName, handler, validationHandler, applicationId) {
|
export function addFunction(functionName, handler, validationHandler, applicationId) {
|
||||||
applicationId = applicationId || Parse.applicationId;
|
applicationId = applicationId || Parse.applicationId;
|
||||||
_triggerStore[applicationId] = _triggerStore[applicationId] || new BaseStore();
|
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
|
||||||
_triggerStore[applicationId].Functions[functionName] = handler;
|
_triggerStore[applicationId].Functions[functionName] = handler;
|
||||||
_triggerStore[applicationId].Validators[functionName] = validationHandler;
|
_triggerStore[applicationId].Validators[functionName] = validationHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
function addTrigger(type, className, handler, applicationId) {
|
export function addTrigger(type, className, handler, applicationId) {
|
||||||
applicationId = applicationId || Parse.applicationId;
|
applicationId = applicationId || Parse.applicationId;
|
||||||
_triggerStore[applicationId] = _triggerStore[applicationId] || new BaseStore();
|
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
|
||||||
_triggerStore[applicationId].Triggers[type][className] = handler;
|
_triggerStore[applicationId].Triggers[type][className] = handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeFunction(functionName, applicationId) {
|
export function removeFunction(functionName, applicationId) {
|
||||||
applicationId = applicationId || Parse.applicationId;
|
applicationId = applicationId || Parse.applicationId;
|
||||||
delete _triggerStore[applicationId].Functions[functionName]
|
delete _triggerStore[applicationId].Functions[functionName]
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeTrigger(type, className, applicationId) {
|
export function removeTrigger(type, className, applicationId) {
|
||||||
applicationId = applicationId || Parse.applicationId;
|
applicationId = applicationId || Parse.applicationId;
|
||||||
delete _triggerStore[applicationId].Triggers[type][className]
|
delete _triggerStore[applicationId].Triggers[type][className]
|
||||||
}
|
}
|
||||||
|
|
||||||
function _unregister(a,b,c,d) {
|
export function _unregister(a,b,c,d) {
|
||||||
if (d) {
|
if (d) {
|
||||||
removeTrigger(c,d,a);
|
removeTrigger(c,d,a);
|
||||||
delete _triggerStore[a][b][c][d];
|
delete _triggerStore[a][b][c][d];
|
||||||
@@ -53,7 +60,7 @@ function _unregister(a,b,c,d) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var getTrigger = function(className, triggerType, applicationId) {
|
export function getTrigger(className, triggerType, applicationId) {
|
||||||
if (!applicationId) {
|
if (!applicationId) {
|
||||||
throw "Missing ApplicationID";
|
throw "Missing ApplicationID";
|
||||||
}
|
}
|
||||||
@@ -67,11 +74,11 @@ var getTrigger = function(className, triggerType, applicationId) {
|
|||||||
return undefined;
|
return undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
function triggerExists(className: string, type: string): boolean {
|
export function triggerExists(className: string, type: string, applicationId: string): boolean {
|
||||||
return (getTrigger(className, type) != undefined);
|
return (getTrigger(className, type, applicationId) != undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
var getFunction = function(functionName, applicationId) {
|
export function getFunction(functionName, applicationId) {
|
||||||
var manager = _triggerStore[applicationId];
|
var manager = _triggerStore[applicationId];
|
||||||
if (manager && manager.Functions) {
|
if (manager && manager.Functions) {
|
||||||
return manager.Functions[functionName];
|
return manager.Functions[functionName];
|
||||||
@@ -79,7 +86,7 @@ var getFunction = function(functionName, applicationId) {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
var getValidator = function(functionName, applicationId) {
|
export function getValidator(functionName, applicationId) {
|
||||||
var manager = _triggerStore[applicationId];
|
var manager = _triggerStore[applicationId];
|
||||||
if (manager && manager.Validators) {
|
if (manager && manager.Validators) {
|
||||||
return manager.Validators[functionName];
|
return manager.Validators[functionName];
|
||||||
@@ -87,7 +94,7 @@ var getValidator = function(functionName, applicationId) {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
var getRequestObject = function(triggerType, auth, parseObject, originalParseObject) {
|
export function getRequestObject(triggerType, auth, parseObject, originalParseObject) {
|
||||||
var request = {
|
var request = {
|
||||||
triggerName: triggerType,
|
triggerName: triggerType,
|
||||||
object: parseObject,
|
object: parseObject,
|
||||||
@@ -116,7 +123,7 @@ var getRequestObject = function(triggerType, auth, parseObject, originalParseObj
|
|||||||
// The API will call this with REST API formatted objects, this will
|
// The API will call this with REST API formatted objects, this will
|
||||||
// transform them to Parse.Object instances expected by Cloud Code.
|
// transform them to Parse.Object instances expected by Cloud Code.
|
||||||
// Any changes made to the object in a beforeSave will be included.
|
// Any changes made to the object in a beforeSave will be included.
|
||||||
var getResponseObject = function(request, resolve, reject) {
|
export function getResponseObject(request, resolve, reject) {
|
||||||
return {
|
return {
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
// Use the JSON response
|
// Use the JSON response
|
||||||
@@ -141,7 +148,7 @@ var getResponseObject = function(request, resolve, reject) {
|
|||||||
// Resolves to an object, empty or containing an object key. A beforeSave
|
// Resolves to an object, empty or containing an object key. A beforeSave
|
||||||
// trigger will set the object key to the rest format object to save.
|
// trigger will set the object key to the rest format object to save.
|
||||||
// originalParseObject is optional, we only need that for befote/afterSave functions
|
// originalParseObject is optional, we only need that for befote/afterSave functions
|
||||||
var maybeRunTrigger = function(triggerType, auth, parseObject, originalParseObject, applicationId) {
|
export function maybeRunTrigger(triggerType, auth, parseObject, originalParseObject, applicationId) {
|
||||||
if (!parseObject) {
|
if (!parseObject) {
|
||||||
return Promise.resolve({});
|
return Promise.resolve({});
|
||||||
}
|
}
|
||||||
@@ -160,38 +167,10 @@ var maybeRunTrigger = function(triggerType, auth, parseObject, originalParseObje
|
|||||||
|
|
||||||
// Converts a REST-format object to a Parse.Object
|
// Converts a REST-format object to a Parse.Object
|
||||||
// data is either className or an object
|
// data is either className or an object
|
||||||
function inflate(data, restObject) {
|
export function inflate(data, restObject) {
|
||||||
var copy = typeof data == 'object' ? data : {className: data};
|
var copy = typeof data == 'object' ? data : {className: data};
|
||||||
for (var key in restObject) {
|
for (var key in restObject) {
|
||||||
copy[key] = restObject[key];
|
copy[key] = restObject[key];
|
||||||
}
|
}
|
||||||
return Parse.Object.fromJSON(copy);
|
return Parse.Object.fromJSON(copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< 5fae41183ed476976ff29a4c247aa78b00b83a9e
|
|
||||||
module.exports = {
|
|
||||||
getTrigger: getTrigger,
|
|
||||||
getRequestObject: getRequestObject,
|
|
||||||
inflate: inflate,
|
|
||||||
maybeRunTrigger: maybeRunTrigger,
|
|
||||||
triggerExists: triggerExists,
|
|
||||||
Types: Types
|
|
||||||
};
|
|
||||||
=======
|
|
||||||
var TriggerManager = {};
|
|
||||||
|
|
||||||
TriggerManager.getTrigger = getTrigger;
|
|
||||||
TriggerManager.getRequestObject = getRequestObject;
|
|
||||||
TriggerManager.inflate = inflate;
|
|
||||||
TriggerManager.maybeRunTrigger = maybeRunTrigger;
|
|
||||||
TriggerManager.Types = Types;
|
|
||||||
TriggerManager.addFunction = addFunction;
|
|
||||||
TriggerManager.getFunction = getFunction;
|
|
||||||
TriggerManager.removeTrigger = removeTrigger;
|
|
||||||
TriggerManager.removeFunction = removeFunction;
|
|
||||||
TriggerManager.getValidator = getValidator;
|
|
||||||
TriggerManager.addTrigger = addTrigger;
|
|
||||||
TriggerManager._unregister = _unregister;
|
|
||||||
|
|
||||||
module.exports = TriggerManager;
|
|
||||||
>>>>>>> Adds Hooks API
|
|
||||||
|
|||||||
Reference in New Issue
Block a user