Merge pull request #746 from ParsePlatform/flovilmart.logsEndpoint

adds scriptlog endpoint
This commit is contained in:
Florent Vilmart
2016-03-02 09:38:49 -05:00
2 changed files with 27 additions and 16 deletions

View File

@@ -23,7 +23,7 @@ describe('LogsRouter', () => {
var router = new LogsRouter(); var router = new LogsRouter();
expect(() => { expect(() => {
router.handleGET(request); router.validateRequest(request);
}).not.toThrow(); }).not.toThrow();
done(); done();
}); });
@@ -43,14 +43,14 @@ describe('LogsRouter', () => {
var router = new LogsRouter(); var router = new LogsRouter();
expect(() => { expect(() => {
router.handleGET(request); router.validateRequest(request);
}).toThrow(); }).toThrow();
done(); done();
}); });
it('can check invalid master key of request', done => { it('can check invalid master key of request', done => {
request.get({ request.get({
url: 'http://localhost:8378/1/logs', url: 'http://localhost:8378/1/scriptlog',
json: true, json: true,
headers: { headers: {
'X-Parse-Application-Id': 'test', 'X-Parse-Application-Id': 'test',

View File

@@ -5,7 +5,16 @@ import * as middleware from "../middlewares";
export class LogsRouter extends PromiseRouter { export class LogsRouter extends PromiseRouter {
mountRoutes() { mountRoutes() {
this.route('GET','/logs', middleware.promiseEnforceMasterKeyAccess, req => { return this.handleGET(req); }); this.route('GET','/scriptlog', middleware.promiseEnforceMasterKeyAccess, this.validateRequest, (req) => {
return this.handleGET(req);
});
}
validateRequest(req) {
if (!req.config || !req.config.loggerController) {
throw new Parse.Error(Parse.Error.PUSH_MISCONFIGURED,
'Logger adapter is not availabe');
}
} }
// Returns a promise for a {response} object. // Returns a promise for a {response} object.
@@ -15,17 +24,17 @@ export class LogsRouter extends PromiseRouter {
// until (optional) End time for the search. Defaults to current time. // until (optional) End time for the search. Defaults to current time.
// order (optional) Direction of results returned, either “asc” or “desc”. Defaults to “desc”. // order (optional) Direction of results returned, either “asc” or “desc”. Defaults to “desc”.
// size (optional) Number of rows returned by search. Defaults to 10 // size (optional) Number of rows returned by search. Defaults to 10
// n same as size, overrides size if set
handleGET(req) { handleGET(req) {
if (!req.config || !req.config.loggerController) { const from = req.query.from;
throw new Parse.Error(Parse.Error.PUSH_MISCONFIGURED, 'Logger adapter is not available.'); const until = req.query.until;
}
let from = req.query.from;
let until = req.query.until;
let size = req.query.size; let size = req.query.size;
let order = req.query.order if (req.query.n) {
let level = req.query.level; size = req.query.n;
}
const order = req.query.order
const level = req.query.level;
const options = { const options = {
from, from,
until, until,
@@ -33,10 +42,12 @@ export class LogsRouter extends PromiseRouter {
order, order,
level level
}; };
return req.config.loggerController return req.config.loggerController.getLogs(options).then((result) => {
.getLogs(options) return Promise.resolve({
.then(result => ({ response: result })); response: result
});
})
} }
} }