Style improvements (#2475)

* HooksRouter is enabled by default

* Adds middleswares on PromiseRouter, fixes #2410

* Move testing line to helper

* Modernize middlewares.js

* Moves DB uniqueness initialization to DBController, modernize

* Moves testing related code to spec folder

* remove unused _removeHook function

* Adds tests, docs for Analytics and improvements

* nit

* moves back TestUtils
This commit is contained in:
Florent Vilmart
2016-08-07 23:02:53 -04:00
committed by Drew
parent ae36200d1f
commit fc3ebd0bd0
18 changed files with 179 additions and 175 deletions

View File

@@ -3,21 +3,23 @@ import { AnalyticsAdapter } from '../Adapters/Analytics/AnalyticsAdapter';
export class AnalyticsController extends AdaptableController {
appOpened(req) {
return this.adapter.appOpened(req.body, req).then(
function(response) {
return { response: response };
}).catch((err) => {
return { response: {} };
});
return Promise.resolve().then(() => {
return this.adapter.appOpened(req.body, req);
}).then((response) => {
return { response: response || {} };
}).catch((err) => {
return { response: {} };
});
}
trackEvent(req) {
return this.adapter.trackEvent(req.params.eventName, req.body, req).then(
function(response) {
return { response: response };
}).catch((err) => {
return { response: {} };
});
return Promise.resolve().then(() => {
return this.adapter.trackEvent(req.params.eventName, req.body, req);
}).then((response) => {
return { response: response || {} };
}).catch((err) => {
return { response: {} };
});
}
expectedAdapterType() {

View File

@@ -1,15 +1,13 @@
// A database adapter that works with data exported from the hosted
// Parse database.
import intersect from 'intersect';
import _ from 'lodash';
var mongodb = require('mongodb');
var Parse = require('parse/node').Parse;
var SchemaController = require('./SchemaController');
const deepcopy = require('deepcopy');
import { Parse } from 'parse/node';
import _ from 'lodash';
import mongdb from 'mongodb';
import intersect from 'intersect';
import deepcopy from 'deepcopy';
import logger from '../logger';
import * as SchemaController from './SchemaController';
function addWriteACL(query, acl) {
let newQuery = _.cloneDeep(query);
@@ -880,6 +878,28 @@ DatabaseController.prototype.addPointerPermissions = function(schema, className,
}
}
DatabaseController.prototype.performInitizalization = function() {
const requiredUserFields = { fields: { ...SchemaController.defaultColumns._Default, ...SchemaController.defaultColumns._User } };
let userClassPromise = this.loadSchema()
.then(schema => schema.enforceClassExists('_User'))
let usernameUniqueness = userClassPromise
.then(() => this.adapter.ensureUniqueness('_User', requiredUserFields, ['username']))
.catch(error => {
logger.warn('Unable to ensure uniqueness for usernames: ', error);
return Promise.reject(error);
});
let emailUniqueness = userClassPromise
.then(() => this.adapter.ensureUniqueness('_User', requiredUserFields, ['email']))
.catch(error => {
logger.warn('Unable to ensure uniqueness for user email addresses: ', error);
return Promise.reject(error);
});
return Promise.all([usernameUniqueness, emailUniqueness]);
}
function joinTableName(className, key) {
return `_Join:${key}:${className}`;
}

View File

@@ -1,6 +1,5 @@
/** @flow weak */
import * as DatabaseAdapter from "../DatabaseAdapter";
import * as triggers from "../triggers";
import * as Parse from "parse/node";
import * as request from "request";

View File

@@ -268,7 +268,7 @@ const dbTypeMatchesObjectType = (dbType, objectType) => {
// Stores the entire schema of the app in a weird hybrid format somewhere between
// the mongo format and the Parse format. Soon, this will all be Parse format.
class SchemaController {
export default class SchemaController {
_dbAdapter;
data;
perms;

View File

@@ -4,7 +4,6 @@ import AdaptableController from './AdaptableController';
import MailAdapter from '../Adapters/Email/MailAdapter';
import rest from '../rest';
var DatabaseAdapter = require('../DatabaseAdapter');
var RestWrite = require('../RestWrite');
var RestQuery = require('../RestQuery');
var hash = require('../password').hash;