Adds liniting into the workflow (#3082)
* initial linting of src * fix indent to 2 spaces * Removes unnecessary rules * ignore spec folder for now * Spec linting * Fix spec indent * nits * nits * no no-empty rule
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import rest from '../rest';
|
||||
import _ from 'lodash';
|
||||
import url from 'url';
|
||||
import Parse from 'parse/node';
|
||||
|
||||
const ALLOWED_GET_QUERY_KEYS = ['keys', 'include'];
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ export class CloudCodeRouter extends PromiseRouter {
|
||||
let config = req.config;
|
||||
let jobs = triggers.getJobs(config.applicationId) || {};
|
||||
return Promise.resolve({
|
||||
response: Object.keys(jobs).map((jobName) => {
|
||||
response: Object.keys(jobs).map((jobName) => {
|
||||
return {
|
||||
jobName,
|
||||
}
|
||||
|
||||
@@ -47,9 +47,9 @@ export class FeaturesRouter extends PromiseRouter {
|
||||
};
|
||||
|
||||
return { response: {
|
||||
features: features,
|
||||
parseServerVersion: version,
|
||||
} };
|
||||
features: features,
|
||||
parseServerVersion: version,
|
||||
} };
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import express from 'express';
|
||||
import BodyParser from 'body-parser';
|
||||
import * as Middlewares from '../middlewares';
|
||||
import { randomHexString } from '../cryptoUtils';
|
||||
import Parse from 'parse/node';
|
||||
import Config from '../Config';
|
||||
import mime from 'mime';
|
||||
|
||||
@@ -40,7 +40,7 @@ export class FilesRouter {
|
||||
if (isFileStreamable(req, filesController)) {
|
||||
filesController.getFileStream(config, filename).then((stream) => {
|
||||
handleFileStream(stream, req, res, contentType);
|
||||
}).catch((err) => {
|
||||
}).catch(() => {
|
||||
res.status(404);
|
||||
res.set('Content-Type', 'text/plain');
|
||||
res.end('File not found.');
|
||||
@@ -51,7 +51,7 @@ export class FilesRouter {
|
||||
res.set('Content-Type', contentType);
|
||||
res.set('Content-Length', data.length);
|
||||
res.end(data);
|
||||
}).catch((err) => {
|
||||
}).catch(() => {
|
||||
res.status(404);
|
||||
res.set('Content-Type', 'text/plain');
|
||||
res.end('File not found.');
|
||||
@@ -87,7 +87,7 @@ export class FilesRouter {
|
||||
res.status(201);
|
||||
res.set('Location', result.url);
|
||||
res.json(result);
|
||||
}).catch((err) => {
|
||||
}).catch(() => {
|
||||
next(new Parse.Error(Parse.Error.FILE_SAVE_ERROR, 'Could not store file.'));
|
||||
});
|
||||
}
|
||||
@@ -98,7 +98,7 @@ export class FilesRouter {
|
||||
res.status(200);
|
||||
// TODO: return useful JSON here?
|
||||
res.end();
|
||||
}).catch((error) => {
|
||||
}).catch(() => {
|
||||
next(new Parse.Error(Parse.Error.FILE_DELETE_ERROR,
|
||||
'Could not delete file.'));
|
||||
});
|
||||
@@ -138,7 +138,7 @@ function handleFileStream(stream, req, res, contentType) {
|
||||
|
||||
if (!partialend) {
|
||||
if (((stream.length-1) - start) < (buffer_size)) {
|
||||
end = stream.length - 1;
|
||||
end = stream.length - 1;
|
||||
}else{
|
||||
end = start + (buffer_size);
|
||||
}
|
||||
@@ -159,8 +159,6 @@ function handleFileStream(stream, req, res, contentType) {
|
||||
stream.seek(start, function () {
|
||||
// get gridFile stream
|
||||
var gridFileStream = stream.stream(true);
|
||||
var ended = false;
|
||||
var bufferIdx = 0;
|
||||
var bufferAvail = 0;
|
||||
var range = (end - start) + 1;
|
||||
var totalbyteswanted = (end - start) + 1;
|
||||
@@ -176,7 +174,6 @@ function handleFileStream(stream, req, res, contentType) {
|
||||
res.write(buff);
|
||||
totalbyteswritten += buff.length;
|
||||
range -= buff.length;
|
||||
bufferIdx += buff.length;
|
||||
bufferAvail -= buff.length;
|
||||
}
|
||||
} else {
|
||||
@@ -185,7 +182,6 @@ function handleFileStream(stream, req, res, contentType) {
|
||||
const buffer = buff.slice(0,range);
|
||||
res.write(buffer);
|
||||
totalbyteswritten += buffer.length;
|
||||
bufferIdx += range;
|
||||
bufferAvail -= range;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
// FunctionsRouter.js
|
||||
|
||||
var express = require('express'),
|
||||
Parse = require('parse/node').Parse,
|
||||
triggers = require('../triggers');
|
||||
var Parse = require('parse/node').Parse,
|
||||
triggers = require('../triggers');
|
||||
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import { promiseEnforceMasterKeyAccess } from '../middlewares';
|
||||
@@ -12,9 +11,9 @@ import { logger } from '../logger';
|
||||
|
||||
function parseObject(obj) {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map((item) => {
|
||||
return parseObject(item);
|
||||
});
|
||||
return obj.map((item) => {
|
||||
return parseObject(item);
|
||||
});
|
||||
} else if (obj && obj.__type == 'Date') {
|
||||
return Object.assign(new Date(obj.iso), obj);
|
||||
} else if (obj && obj.__type == 'File') {
|
||||
@@ -63,10 +62,10 @@ export class FunctionsRouter extends PromiseRouter {
|
||||
error: jobHandler.setFailed.bind(jobHandler),
|
||||
message: jobHandler.setMessage.bind(jobHandler)
|
||||
}
|
||||
return jobHandler.setRunning(jobName, params).then((jobStatus) => {
|
||||
return jobHandler.setRunning(jobName, params).then((jobStatus) => {
|
||||
request.jobId = jobStatus.objectId
|
||||
// run the function async
|
||||
process.nextTick(() => {
|
||||
process.nextTick(() => {
|
||||
jobFunction(request, status);
|
||||
});
|
||||
return {
|
||||
@@ -131,10 +130,10 @@ export class FunctionsRouter extends PromiseRouter {
|
||||
const cleanResult = logger.truncateLogMessage(JSON.stringify(result.response.result));
|
||||
logger.info(`Ran cloud function ${functionName} for user ${userString} `
|
||||
+ `with:\n Input: ${cleanInput }\n Result: ${cleanResult }`, {
|
||||
functionName,
|
||||
params,
|
||||
user: userString,
|
||||
});
|
||||
functionName,
|
||||
params,
|
||||
user: userString,
|
||||
});
|
||||
resolve(result);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
@@ -144,11 +143,11 @@ export class FunctionsRouter extends PromiseRouter {
|
||||
logger.error(`Failed running cloud function ${functionName} for `
|
||||
+ `user ${userString} with:\n Input: ${cleanInput}\n Error: `
|
||||
+ JSON.stringify(error), {
|
||||
functionName,
|
||||
error,
|
||||
params,
|
||||
user: userString
|
||||
});
|
||||
functionName,
|
||||
error,
|
||||
params,
|
||||
user: userString
|
||||
});
|
||||
reject(error);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
|
||||
@@ -22,7 +22,7 @@ export class GlobalConfigRouter extends PromiseRouter {
|
||||
acc[`params.${key}`] = params[key];
|
||||
return acc;
|
||||
}, {});
|
||||
return req.config.database.update('_GlobalConfig', {objectId: "1"}, update, {upsert: true}).then(() => ({ response: { result: true } }));
|
||||
return req.config.database.update('_GlobalConfig', {objectId: "1"}, update, {upsert: true}).then(() => ({ response: { result: true } }));
|
||||
}
|
||||
|
||||
mountRoutes() {
|
||||
|
||||
@@ -5,15 +5,15 @@ import * as middleware from "../middlewares";
|
||||
export class HooksRouter extends PromiseRouter {
|
||||
createHook(aHook, config) {
|
||||
return config.hooksController.createHook(aHook).then( (hook) => ({response: hook}));
|
||||
};
|
||||
}
|
||||
|
||||
updateHook(aHook, config) {
|
||||
return config.hooksController.updateHook(aHook).then((hook) => ({response: hook}));
|
||||
};
|
||||
}
|
||||
|
||||
handlePost(req) {
|
||||
return this.createHook(req.body, req.config);
|
||||
};
|
||||
}
|
||||
|
||||
handleGetFunctions(req) {
|
||||
var hooksController = req.config.hooksController;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
var request = require("request");
|
||||
var rest = require("../rest");
|
||||
var Auth = require("../Auth");
|
||||
import Parse from 'parse/node';
|
||||
|
||||
// TODO move validation logic in IAPValidationController
|
||||
const IAP_SANDBOX_URL = "https://sandbox.itunes.apple.com/verifyReceipt";
|
||||
@@ -59,7 +59,7 @@ function getFileForProductIdentifier(productIdentifier, req) {
|
||||
|
||||
export class IAPValidationRouter extends PromiseRouter {
|
||||
|
||||
handleRequest(req) {
|
||||
handleRequest(req) {
|
||||
let receipt = req.body.receipt;
|
||||
const productIdentifier = req.body.productIdentifier;
|
||||
|
||||
@@ -81,11 +81,11 @@ export class IAPValidationRouter extends PromiseRouter {
|
||||
}
|
||||
|
||||
function successCallback() {
|
||||
return getFileForProductIdentifier(productIdentifier, req);
|
||||
};
|
||||
return getFileForProductIdentifier(productIdentifier, req);
|
||||
}
|
||||
|
||||
function errorCallback(error) {
|
||||
return Promise.resolve({response: appStoreError(error.status) });
|
||||
return Promise.resolve({response: appStoreError(error.status) });
|
||||
}
|
||||
|
||||
return validateWithAppStore(IAP_PRODUCTION_URL, receipt).then( () => {
|
||||
@@ -95,10 +95,10 @@ export class IAPValidationRouter extends PromiseRouter {
|
||||
}, (error) => {
|
||||
if (error.status == 21007) {
|
||||
return validateWithAppStore(IAP_SANDBOX_URL, receipt).then( () => {
|
||||
return successCallback();
|
||||
}, (error) => {
|
||||
return errorCallback(error);
|
||||
}
|
||||
return successCallback();
|
||||
}, (error) => {
|
||||
return errorCallback(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import UserController from '../Controllers/UserController';
|
||||
import Config from '../Config';
|
||||
import express from 'express';
|
||||
import path from 'path';
|
||||
@@ -46,7 +45,7 @@ export class PublicAPIRouter extends PromiseRouter {
|
||||
});
|
||||
}
|
||||
// Should we keep the file in memory or leave like that?
|
||||
fs.readFile(path.resolve(views, "choose_password"), 'utf-8', (err, data) => {
|
||||
fs.readFile(path.resolve(views, "choose_password"), 'utf-8', (err, data) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
@@ -72,7 +71,7 @@ export class PublicAPIRouter extends PromiseRouter {
|
||||
return this.invalidLink(req);
|
||||
}
|
||||
|
||||
return config.userController.checkResetTokenValidity(username, token).then( (user) => {
|
||||
return config.userController.checkResetTokenValidity(username, token).then( () => {
|
||||
let params = qs.stringify({token, id: config.applicationId, username, app: config.appName, });
|
||||
return Promise.resolve({
|
||||
status: 302,
|
||||
@@ -101,7 +100,7 @@ export class PublicAPIRouter extends PromiseRouter {
|
||||
return this.invalidLink(req);
|
||||
}
|
||||
|
||||
return config.userController.updatePassword(username, token, new_password).then((result) => {
|
||||
return config.userController.updatePassword(username, token, new_password).then(() => {
|
||||
let params = qs.stringify({username: username});
|
||||
return Promise.resolve({
|
||||
status: 302,
|
||||
@@ -119,8 +118,8 @@ export class PublicAPIRouter extends PromiseRouter {
|
||||
|
||||
invalidLink(req) {
|
||||
return Promise.resolve({
|
||||
status: 302,
|
||||
location: req.config.invalidLinkURL
|
||||
status: 302,
|
||||
location: req.config.invalidLinkURL
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
import ClassesRouter from './ClassesRouter';
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import rest from '../rest';
|
||||
|
||||
export class RolesRouter extends ClassesRouter {
|
||||
handleFind(req) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
// schemas.js
|
||||
|
||||
var express = require('express'),
|
||||
Parse = require('parse/node').Parse,
|
||||
var Parse = require('parse/node').Parse,
|
||||
SchemaController = require('../Controllers/SchemaController');
|
||||
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
import ClassesRouter from './ClassesRouter';
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import Parse from 'parse/node';
|
||||
import rest from '../rest';
|
||||
import Auth from '../Auth';
|
||||
import RestWrite from '../RestWrite';
|
||||
@@ -75,14 +75,14 @@ export class SessionsRouter extends ClassesRouter {
|
||||
expiresAt: Parse._encode(expiresAt)
|
||||
};
|
||||
const create = new RestWrite(config, masterAuth, '_Session', null, sessionData);
|
||||
return create.execute().then(() => {
|
||||
return create.execute().then(() => {
|
||||
// delete the session token, use the db to skip beforeSave
|
||||
return config.database.update('_User', {
|
||||
objectId: user.id
|
||||
}, {
|
||||
sessionToken: {__op: 'Delete'}
|
||||
});
|
||||
}).then((res) => {
|
||||
}).then(() => {
|
||||
return Promise.resolve({ response: sessionData });
|
||||
});
|
||||
}
|
||||
@@ -94,7 +94,7 @@ export class SessionsRouter extends ClassesRouter {
|
||||
this.route('POST', '/sessions', req => { return this.handleCreate(req); });
|
||||
this.route('PUT', '/sessions/:objectId', req => { return this.handleUpdate(req); });
|
||||
this.route('DELETE', '/sessions/:objectId', req => { return this.handleDelete(req); });
|
||||
this.route('POST', '/upgradeToRevocableSession', req => { return this.handleUpdateToRevocableSession(req); })
|
||||
this.route('POST', '/upgradeToRevocableSession', req => { return this.handleUpdateToRevocableSession(req); })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
// These methods handle the User-related routes.
|
||||
|
||||
import deepcopy from 'deepcopy';
|
||||
import Parse from 'parse/node';
|
||||
import Config from '../Config';
|
||||
import AccountLockout from '../AccountLockout';
|
||||
import ClassesRouter from './ClassesRouter';
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import rest from '../rest';
|
||||
import Auth from '../Auth';
|
||||
import passwordCrypto from '../password';
|
||||
import RestWrite from '../RestWrite';
|
||||
let cryptoUtils = require('../cryptoUtils');
|
||||
let triggers = require('../triggers');
|
||||
|
||||
export class UsersRouter extends ClassesRouter {
|
||||
handleFind(req) {
|
||||
@@ -216,10 +215,10 @@ export class UsersRouter extends ClassesRouter {
|
||||
throw new Parse.Error(Parse.Error.INVALID_EMAIL_ADDRESS, 'you must provide a valid email string');
|
||||
}
|
||||
let userController = req.config.userController;
|
||||
return userController.sendPasswordResetEmail(email).then(token => {
|
||||
return Promise.resolve({
|
||||
response: {}
|
||||
});
|
||||
return userController.sendPasswordResetEmail(email).then(() => {
|
||||
return Promise.resolve({
|
||||
response: {}
|
||||
});
|
||||
}, err => {
|
||||
if (err.code === Parse.Error.OBJECT_NOT_FOUND) {
|
||||
throw new Parse.Error(Parse.Error.EMAIL_NOT_FOUND, `No user found with email ${email}.`);
|
||||
|
||||
Reference in New Issue
Block a user