Hearbeats now work. Moved checkAuth from Wakatime react class to main wakatime class.
This commit is contained in:
@@ -3,6 +3,7 @@ var UrlHelper = require('./UrlHelper');
|
||||
var $ = require('jquery');
|
||||
|
||||
var currentTimestamp = require('./helpers/currentTimestamp');
|
||||
var changeExtensionIcon = require('./helpers/changeExtensionIcon');
|
||||
|
||||
class WakaTime {
|
||||
|
||||
@@ -12,34 +13,81 @@ class WakaTime {
|
||||
|
||||
heartbeatApiUrl = 'https://wakatime.com/api/v1/users/current/heartbeats';
|
||||
|
||||
currentUserApiUrl = 'https://wakatime.com/api/v1/users/current';
|
||||
|
||||
checkAuth()
|
||||
{
|
||||
var deferredObject = $.Deferred();
|
||||
|
||||
$.ajax({
|
||||
url: this.currentUserApiUrl,
|
||||
dataType: 'json',
|
||||
success: (data) => {
|
||||
|
||||
deferredObject.resolve(data.data);
|
||||
|
||||
},
|
||||
error: (xhr, status, err) => {
|
||||
|
||||
console.error(this.currentUserApiUrl, status, err.toString());
|
||||
|
||||
deferredObject.resolve(false);
|
||||
}
|
||||
});
|
||||
|
||||
return deferredObject.promise();
|
||||
}
|
||||
|
||||
recordHeartbeat()
|
||||
{
|
||||
console.log('recording heartbeat.');
|
||||
this.checkAuth().done(data => {
|
||||
|
||||
chrome.idle.queryState(this.detectionIntervalInSeconds, (newState) => {
|
||||
if(data !== false){
|
||||
|
||||
console.log(newState);
|
||||
console.log('user is logged id.');
|
||||
// User is logged in.
|
||||
changeExtensionIcon();
|
||||
|
||||
if(newState === 'active')
|
||||
{
|
||||
// Get current tab URL.
|
||||
chrome.tabs.query({active: true}, (tabs) => {
|
||||
console.log(tabs[0].url);
|
||||
console.log('recording heartbeat.');
|
||||
|
||||
this.sendHeartbeat(tabs[0].url);
|
||||
chrome.idle.queryState(this.detectionIntervalInSeconds, (newState) => {
|
||||
|
||||
console.log(newState);
|
||||
|
||||
if(newState === 'active')
|
||||
{
|
||||
|
||||
// Get current tab URL.
|
||||
chrome.tabs.query({active: true}, (tabs) => {
|
||||
console.log(tabs[0].url);
|
||||
|
||||
this.sendHeartbeat(tabs[0].url);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
})
|
||||
else {
|
||||
|
||||
// User is not logged in.
|
||||
changeExtensionIcon('red');
|
||||
|
||||
console.log('user is not logged id.');
|
||||
|
||||
//TODO: Redirect user to wakatime login page.
|
||||
//
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_preparePayload(entity, type, debug = false)
|
||||
{
|
||||
return {
|
||||
return JSON.stringify({
|
||||
entity: entity,
|
||||
type: type,
|
||||
time: currentTimestamp(),
|
||||
is_debugging: debug
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
_getLoggingType()
|
||||
@@ -97,6 +145,7 @@ class WakaTime {
|
||||
$.ajax({
|
||||
url: this.heartbeatApiUrl,
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
method: method,
|
||||
data: payload,
|
||||
success: (response) => {
|
||||
|
||||
@@ -6,10 +6,10 @@ var MainList = require('./MainList.react');
|
||||
|
||||
var changeExtensionIcon = require('../helpers/changeExtensionIcon');
|
||||
|
||||
var WakaTimeOriginal = require('../WakaTime');
|
||||
|
||||
class WakaTime extends React.Component
|
||||
{
|
||||
currentUserApiUrl = 'https://wakatime.com/api/v1/users/current';
|
||||
|
||||
logoutUserUrl = 'https://wakatime.com/logout';
|
||||
|
||||
state = {
|
||||
@@ -34,7 +34,9 @@ class WakaTime extends React.Component
|
||||
}
|
||||
});
|
||||
|
||||
this.checkAuth().done(data => {
|
||||
var wakatime = new WakaTimeOriginal;
|
||||
|
||||
wakatime.checkAuth().done(data => {
|
||||
|
||||
if(data !== false){
|
||||
|
||||
@@ -61,29 +63,6 @@ class WakaTime extends React.Component
|
||||
|
||||
}
|
||||
|
||||
checkAuth()
|
||||
{
|
||||
var deferredObject = $.Deferred();
|
||||
|
||||
$.ajax({
|
||||
url: this.currentUserApiUrl,
|
||||
dataType: 'json',
|
||||
success: (data) => {
|
||||
|
||||
deferredObject.resolve(data.data);
|
||||
|
||||
},
|
||||
error: (xhr, status, err) => {
|
||||
|
||||
console.error(this.currentUserApiUrl, status, err.toString());
|
||||
|
||||
deferredObject.resolve(false);
|
||||
}
|
||||
});
|
||||
|
||||
return deferredObject.promise();
|
||||
}
|
||||
|
||||
logoutUser()
|
||||
{
|
||||
var deferredObject = $.Deferred();
|
||||
|
||||
@@ -7,28 +7,13 @@
|
||||
*/
|
||||
export default function changeExtensionIcon(color = '') {
|
||||
|
||||
var canvas = document.getElementById('icon');
|
||||
var context = canvas.getContext('2d');
|
||||
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
var width = 19;
|
||||
var height = 19;
|
||||
var imageObj = new Image();
|
||||
|
||||
imageObj.onload = function() {
|
||||
context.drawImage(imageObj, x, y, width, height);
|
||||
|
||||
var imageData = context.getImageData(x, y, width, height);
|
||||
|
||||
chrome.browserAction.setIcon({
|
||||
imageData: imageData
|
||||
});
|
||||
};
|
||||
|
||||
if(color !== ''){
|
||||
color = '-' + color;
|
||||
}
|
||||
|
||||
imageObj.src = 'graphics/wakatime-logo-48' + color + '.png';
|
||||
var path = './graphics/wakatime-logo-48' + color + '.png';
|
||||
|
||||
chrome.browserAction.setIcon({
|
||||
path: path
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user