@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
45 lines (44 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResourceManagerInternal = void 0;
const StorageManager_1 = require("../Storage/StorageManager");
const ResourceManager_1 = require("./ResourceManager");
const SwrveResource_1 = require("./SwrveResource");
class ResourceManagerInternal {
constructor() {
const getResources = () => {
// return a copy
return this.resources ? this.resources.map(resource => (Object.assign({}, resource))) : null;
};
const getResource = (resourceId) => {
return (this.resourcesIndex && this.resourcesIndex[resourceId]) || new SwrveResource_1.SwrveResource({});
};
this.resourceManager = new ResourceManager_1.ResourceManager(getResources, getResource);
}
storeResources(resources, userId) {
this.setResources(resources);
StorageManager_1.StorageManager.saveDataWithMD5Hash("resources" + userId, JSON.stringify(resources));
}
getResources(userId) {
return StorageManager_1.StorageManager.getDataWithMD5Hash("resources" + userId)
.then(data => {
let resources = null;
if (data) {
resources = JSON.parse(data);
}
this.setResources(resources);
return resources;
});
}
getResourceManager() {
return this.resourceManager;
}
setResources(resources) {
this.resources = resources;
this.resourcesIndex = (resources || []).reduce((result, item) => {
result[item.uid] = new SwrveResource_1.SwrveResource(item);
return result;
}, {});
}
}
exports.ResourceManagerInternal = ResourceManagerInternal;