1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 01:39:44 +01:00

Change function names. Add interval polling for api. Refactor functions.

This commit is contained in:
Kevin Serrano 2016-07-21 16:44:50 -07:00
parent 716e65424d
commit a612fcee64
3 changed files with 34 additions and 11 deletions

View File

@ -282,19 +282,30 @@ ConfigManager.prototype.getCurrentFiat = function () {
return ('fiatCurrency' in data) && data.fiatCurrency
}
ConfigManager.prototype.setConversionRate = function () {
ConfigManager.prototype.updateConversionRate = function () {
var data = this.getData()
return rp(`https://www.cryptonator.com/api/ticker/eth-${data.fiatCurrency}`)
.then(function (response) {
.then((response) => {
const parsedResponse = JSON.parse(response)
data.conversionRate = Number(parsedResponse.ticker.price)
data.conversionDate = new Date(parsedResponse.timestamp).toString()
this.setData(data)
}.bind(this)).catch(function (err) {
console.log('Error in conversion.', err)
this.setConversionPrice(parsedResponse.ticker.price)
this.setConversionDate(parsedResponse.timestamp)
}).catch((err) => {
console.error('Error in conversion.', err)
})
}
ConfigManager.prototype.setConversionPrice = function(price) {
var data = this.getData()
data.conversionRate = Number(parsedResponse.ticker.price)
this.setData(data)
}
ConfigManager.prototype.setConversionDate = function (datestring) {
var data = this.getData()
data.conversionDate = datestring
this.setData(data)
}
ConfigManager.prototype.getConversionRate = function () {
var data = this.getData()
return ('conversionRate' in data) && data.conversionRate

View File

@ -21,6 +21,7 @@ module.exports = class MetamaskController {
this.idStore.setStore(this.ethStore)
this.messageManager = messageManager
this.publicConfigStore = this.initPublicConfigStore()
this.scheduleConversionInterval()
}
getState () {
@ -241,7 +242,8 @@ module.exports = class MetamaskController {
setCurrentFiat (fiat, cb) {
try {
this.configManager.setCurrentFiat(fiat)
this.configManager.setConversionRate()
this.configManager.updateConversionRate()
this.scheduleConversionInterval()
const data = {
conversionRate: this.configManager.getConversionRate,
currentFiat: this.configManager.getCurrentFiat,
@ -253,6 +255,16 @@ module.exports = class MetamaskController {
}
}
scheduleConversionInterval () {
if (this.conversionInterval) {
clearInterval(this.conversionInterval)
}
this.conversionInterval = setInterval(() => {
console.log("Updated currency!")
this.configManager.updateConversionRate()
}, 1000)
}
// called from popup
setRpcTarget (rpcTarget) {
this.configManager.setRpcTarget(rpcTarget)

View File

@ -44,14 +44,14 @@ describe('config-manager', function() {
})
})
describe('#setConversionRate', function() {
describe('#updateConversionRate', function() {
it('should retrieve an update for ETH to USD and set it in memory', function(done) {
this.timeout(15000)
assert.equal(configManager.getConversionRate(), false)
var promise = new Promise(
function (resolve, reject) {
configManager.setCurrentFiat('usd')
configManager.setConversionRate().then(function() {
configManager.updateConversionRate().then(function() {
resolve()
})
})
@ -72,7 +72,7 @@ describe('config-manager', function() {
var promise = new Promise(
function (resolve, reject) {
configManager.setCurrentFiat('jpy')
configManager.setConversionRate().then(function() {
configManager.updateConversionRate().then(function() {
resolve()
})
})