Files
standardnotes-app-web/app/assets/javascripts/app/services/packageManager.js
2018-01-12 14:36:17 -06:00

42 lines
1.1 KiB
JavaScript

class PackageManager {
constructor(httpManager, modelManager, syncManager, componentManager) {
this.httpManager = httpManager;
this.modelManager = modelManager;
this.syncManager = syncManager;
this.componentManager = componentManager;
}
installPackage(url, callback) {
this.httpManager.getAbsolute(url, {}, function(aPackage){
console.log("Got package data", aPackage);
if(typeof aPackage !== 'object') {
callback(null);
return;
}
// Remove private properties
this.componentManager.removePrivatePropertiesFromResponseItems([aPackage]);
aPackage.package_info = Object.assign({}, aPackage);
var assembled = this.modelManager.createItem(aPackage);;
this.modelManager.addItem(assembled);
assembled.setDirty(true);
this.syncManager.sync();
console.log("Created assembled", assembled);
callback && callback(assembled);
}.bind(this), function(response){
console.error("Error retrieving package", response);
callback(null);
})
}
}
angular.module('app.frontend').service('packageManager', PackageManager);