kopia lustrzana https://github.com/c9/core
Send metric to API
rodzic
2ada86f5a6
commit
ed4f39990e
|
@ -1,5 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
var superagent = require("superagent");
|
||||
|
||||
plugin.consumes = [
|
||||
"api",
|
||||
"passport",
|
||||
|
@ -111,7 +113,7 @@ function plugin(options, imports, register) {
|
|||
var version = req.params.version;
|
||||
var user = req.user;
|
||||
|
||||
trackActivity(user, req.cookies);
|
||||
trackActivity(user, req);
|
||||
|
||||
if (version != kaefer.version.protocol) {
|
||||
var err = new error.PreconditionFailed("Wrong VFS protocol version. Expected version '" + kaefer.version.protocol + "' but found '" + version + "'");
|
||||
|
@ -201,7 +203,7 @@ function plugin(options, imports, register) {
|
|||
var path = req.params.path;
|
||||
var user = req.user;
|
||||
|
||||
trackActivity(user, req.cookies);
|
||||
trackActivity(user, req);
|
||||
|
||||
if (path.indexOf("../") !== -1)
|
||||
return next(new error.BadRequest("invalid path"));
|
||||
|
@ -286,7 +288,7 @@ function plugin(options, imports, register) {
|
|||
}
|
||||
// TODO: use an interval to make sure this fires
|
||||
// even when this REST api is not used for a day
|
||||
trackActivity(entry.user, req.cookies);
|
||||
trackActivity(entry.user, req);
|
||||
entry.vfs.handleRest(scope, path, req, res, next);
|
||||
}
|
||||
]);
|
||||
|
@ -320,24 +322,17 @@ function plugin(options, imports, register) {
|
|||
}
|
||||
]);
|
||||
|
||||
function trackActivity(user, cookies) {
|
||||
function trackActivity(user, req) {
|
||||
if (user.id === -1)
|
||||
return;
|
||||
|
||||
if (new Date(user.lastVfsAccess).getDate() != new Date().getDate() ||
|
||||
Date.now() > user.lastVfsAccess + VFS_ACTIVITY_WINDOW) {
|
||||
|
||||
// Alias anonymous id, identify, and track activity;
|
||||
// wait for a flush between each step; see
|
||||
// https://segment.com/docs/integrations/mixpanel/#server-side
|
||||
async.series([
|
||||
analytics.aliasClean.bind(analytics, cookies.mixpanelAnonymousId, user.id),
|
||||
analytics.identifyClean.bind(analytics, user, {}),
|
||||
analytics.trackClean.bind(analytics, user, "VFS is active", { uid: user.id }),
|
||||
], function(err) {
|
||||
if (err) return console.log("Error logging activity", err.stack || err);
|
||||
});
|
||||
|
||||
superagent
|
||||
.post(options.apiBaseUrl + "/metric/usage/" + req.params.pid + "?access_token=" + req.query.access_token)
|
||||
.end(function() {});
|
||||
|
||||
user.lastVfsAccess = Date.now();
|
||||
user.save(function() {});
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue