From 776154ffbf82687a4dc586357067b9b02024db02 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 31 Jan 2017 16:59:27 -0300 Subject: [PATCH] fix old format migration --- src/js/services/bitpayCardService.js | 2 +- src/js/services/storageService.js | 29 ++++++++++++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/js/services/bitpayCardService.js b/src/js/services/bitpayCardService.js index 36696dd5e..0e12e7fb8 100644 --- a/src/js/services/bitpayCardService.js +++ b/src/js/services/bitpayCardService.js @@ -209,7 +209,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($log, return cb(err); } register(); - storageService.removeBitpayDebitCardHistory(cardId, cb); + storageService.removeBalanceCache(cardId, cb); }); }; diff --git a/src/js/services/storageService.js b/src/js/services/storageService.js index 5faf7afb6..9a9e6d31e 100644 --- a/src/js/services/storageService.js +++ b/src/js/services/storageService.js @@ -345,15 +345,15 @@ angular.module('copayApp.services') }; root.setBalanceCache = function(cardId, data, cb) { - storage.set('bitpayDebitCardBalance-' + cardId, data, cb); + storage.set('balanceCache-' + cardId, data, cb); }; root.getBalanceCache = function(cardId, cb) { - storage.get('bitpayDebitCardBalance-' + cardId, cb); + storage.get('balanceCache-' + cardId, cb); }; - root.removeBitpayDebitCardHistory = function(cardId, cb) { - storage.remove('bitpayDebitCardHistory-' + cardId, cb); + root.removeBalanceCache = function(cardId, cb) { + storage.remove('balanceCache-' + cardId, cb); }; // cards: [ @@ -452,17 +452,34 @@ angular.module('copayApp.services') allAccounts = JSON.parse(allAccountsStr); } catch (e) {}; + var anyMigration; + lodash.each(allAccounts, function(account, email) { // Migrate old `'bitpayApi-' + network` key, if exists if (!account.token && account['bitpayApi-' + network].token) { + $log.info('Migrating all bitpayApi-network branch'); - account = account['bitpayApi-' + network]; + account.token = account['bitpayApi-' + network].token; + account.cards = lodash.clone(account['bitpayApi-' + network].cards); + if (!account.cards) { + account.cards = lodash.clone(account['bitpayDebitCards-' + network]); + } + + delete account['bitpayDebitCards-' + network]; delete account['bitpayApi-' + network]; + anyMigration = true; + } }); - return cb(err, allAccounts); + if (anyMigration) { + storage.set('bitpayAccounts-v2-' + network, allAccounts, function(){ + return cb(err, allAccounts); + }); + } else + return cb(err, allAccounts); + }); };