copay/js/services/backupService.js

34 lines
1012 B
JavaScript
Raw Normal View History

2014-06-16 12:46:17 -07:00
'use strict';
2014-06-18 09:01:50 -07:00
var BackupService = function(notification) {
this.notifications = notification;
};
2014-06-16 12:46:17 -07:00
BackupService.prototype.getName = function(wallet) {
return (wallet.name ? (wallet.name + '-') : '') + wallet.id;
2014-06-16 12:46:17 -07:00
};
BackupService.prototype.download = function(wallet) {
var ew = wallet.toEncryptedObj();
var timestamp = +(new Date());
var walletName = this.getName(wallet);
2014-06-16 12:54:50 -07:00
var filename = walletName + '-' + timestamp + '-keybackup.json.aes';
this.notifications.success('Backup created', 'Encrypted backup file saved.');
2014-06-16 12:46:17 -07:00
var blob = new Blob([ew], {
type: 'text/plain;charset=utf-8'
});
// show a native save dialog if we are in the shell
// and pass the wallet to the shell to convert to node Buffer
if (window.cshell) {
return window.cshell.send('backup:download', {
name: walletName,
wallet: ew
});
}
// otherwise lean on the browser implementation
saveAs(blob, filename);
};
angular.module('copayApp.services').service('backupService', BackupService);