Skip to content

Commit 4c95452

Browse files
committed
update market
1 parent 9b33174 commit 4c95452

File tree

3 files changed

+42
-41
lines changed

3 files changed

+42
-41
lines changed

services/static-webserver/client/source/class/osparc/data/model/LicensedItem.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ qx.Class.define("osparc.data.model.LicensedItem", {
4646
licensedItemId: licensedItemData.licensedItemId,
4747
categoryId: licensedItemData.categoryId,
4848
categoryDisplay: licensedItemData.categoryDisplay,
49-
categoryIcon: licensedItemData.categoryIcon,
49+
categoryIcon: licensedItemData.categoryIcon || `osparc/market/${licensedItemData.categoryId}.svg`,
5050
pricingPlanId: licensedItemData.pricingPlanId,
5151
key: licensedItemData.key,
5252
version: licensedItemData.version,
@@ -137,13 +137,37 @@ qx.Class.define("osparc.data.model.LicensedItem", {
137137
},
138138

139139
seats: {
140-
check: "Object",
140+
check: "Array",
141141
nullable: true,
142142
init: null,
143143
event: "changeSeats",
144144
},
145145
},
146146

147+
statics: {
148+
addSeatsFromPurchases: function(licensedItems, purchases) {
149+
// reset seats
150+
Object.values(licensedItems).forEach(licensedItem => licensedItem.setSeats([]));
151+
// populate seats
152+
purchases.forEach(purchase => {
153+
const {
154+
key,
155+
version,
156+
} = purchase;
157+
Object.values(licensedItems).forEach(licensedItem => {
158+
if (licensedItem.getKey() === key && licensedItem.getVersion() <= version) {
159+
licensedItem.getSeats().push({
160+
licensedItemId: purchase["licensedItemId"],
161+
licensedItemPurchaseId: purchase["licensedItemPurchaseId"],
162+
numOfSeats: purchase["numOfSeats"],
163+
expireAt: new Date(purchase["expireAt"]),
164+
});
165+
}
166+
});
167+
})
168+
},
169+
},
170+
147171
members: {
148172
}
149173
});

services/static-webserver/client/source/class/osparc/store/LicensedItems.js

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,6 @@ qx.Class.define("osparc.store.LicensedItems", {
2727
},
2828

2929
statics: {
30-
populateSeatsFromPurchases: function(licensedItems, purchases) {
31-
// reset seats
32-
licensedItems.forEach(licensedItem => licensedItem["seats"] = []);
33-
// populate seats
34-
purchases.forEach(purchase => {
35-
const {
36-
key,
37-
version,
38-
} = purchase;
39-
licensedItems.forEach(licensedItem => {
40-
if (licensedItem["key"] === key && licensedItem["version"] <= version) {
41-
licensedItem["seats"].push({
42-
licensedItemId: purchase["licensedItemId"],
43-
licensedItemPurchaseId: purchase["licensedItemPurchaseId"],
44-
numOfSeats: purchase["numOfSeats"],
45-
expireAt: new Date(purchase["expireAt"]),
46-
});
47-
}
48-
});
49-
})
50-
},
51-
5230
getLowerLicensedItems: function(licensedItems, key, version) {
5331
const lowerLicensedItems = [];
5432
licensedItems.forEach(licensedItem => {
@@ -98,15 +76,14 @@ qx.Class.define("osparc.store.LicensedItems", {
9876
__cachedLicensedItems: null,
9977

10078
getLicensedItems: function() {
101-
if (this.__licensedItems) {
102-
return new Promise(resolve => resolve(this.__licensedItems));
79+
if (this.__cachedLicensedItems.length) {
80+
return new Promise(resolve => resolve(this.__cachedLicensedItems));
10381
}
10482

10583
return osparc.data.Resources.getInstance().getAllPages("licensedItems")
106-
.then(licensedItems => {
107-
licensedItems.forEach(licensedItemData => this.__addLicensedItemsToCache(licensedItemData));
108-
this.__licensedItems = licensedItems;
109-
return this.__licensedItems;
84+
.then(licensedItemsData => {
85+
licensedItemsData.forEach(licensedItemData => this.__addLicensedItemsToCache(licensedItemData));
86+
return this.__cachedLicensedItems;
11087
});
11188
},
11289

services/static-webserver/client/source/class/osparc/vipMarket/Market.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ qx.Class.define("osparc.vipMarket.Market", {
6868
.then(values => {
6969
const licensedItems = values[0];
7070
const purchasedItems = values[1];
71-
osparc.store.LicensedItems.populateSeatsFromPurchases(licensedItems, purchasedItems);
71+
osparc.data.model.LicensedItem.addSeatsFromPurchases(licensedItems, purchasedItems);
7272
const categories = [];
7373
const availableCategory = {
7474
categoryId: "availableModels",
@@ -78,21 +78,21 @@ qx.Class.define("osparc.vipMarket.Market", {
7878
};
7979
categories.push(availableCategory);
8080
let openCategory = null;
81-
licensedItems.forEach(licensedItem => {
82-
if (licensedItem["seats"].length) {
81+
Object.values(licensedItems).forEach(licensedItem => {
82+
if (licensedItem.getSeats().length) {
8383
availableCategory["items"].push(licensedItem);
8484
if (!this.__reqOpenCategory) {
8585
openCategory = availableCategory["categoryId"];
8686
}
8787
}
88-
if (licensedItem && licensedItem["categoryId"]) {
89-
const categoryId = licensedItem["categoryId"];
88+
if (licensedItem && licensedItem.getCategoryId()) {
89+
const categoryId = licensedItem.getCategoryId();
9090
let category = categories.find(cat => cat["categoryId"] === categoryId);
9191
if (!category) {
9292
category = {
9393
categoryId,
94-
label: licensedItem["categoryDisplay"] || "Category",
95-
icon: licensedItem["categoryIcon"] || `osparc/market/${categoryId}.svg`,
94+
label: licensedItem.getCategoryDisplay() || "Category",
95+
icon: licensedItem.getCategoryIcon(),
9696
items: [],
9797
};
9898
if (!openCategory) {
@@ -122,7 +122,7 @@ qx.Class.define("osparc.vipMarket.Market", {
122122
.then(async licensedItems => {
123123
this.__freeItems = [];
124124
for (const licensedItem of licensedItems) {
125-
const pricingUnits = await osparc.store.Pricing.getInstance().fetchPricingUnits(licensedItem["pricingPlanId"]);
125+
const pricingUnits = await osparc.store.Pricing.getInstance().fetchPricingUnits(licensedItem.getPricingPlanId());
126126
if (pricingUnits.length === 1 && pricingUnits[0].getCost() === 0) {
127127
this.__freeItems.push(licensedItem);
128128
}
@@ -164,10 +164,10 @@ qx.Class.define("osparc.vipMarket.Market", {
164164
.then(values => {
165165
const licensedItems = values[0];
166166
const purchasedItems = values[1];
167-
osparc.store.LicensedItems.populateSeatsFromPurchases(licensedItems, purchasedItems);
167+
osparc.data.model.LicensedItem.addSeatsFromPurchases(licensedItems, purchasedItems);
168168
let items = [];
169-
licensedItems.forEach(licensedItem => {
170-
if (licensedItem["seats"].length) {
169+
Object.values(licensedItems).forEach(licensedItem => {
170+
if (licensedItem.getSeats().length) {
171171
items.push(licensedItem);
172172
}
173173
});

0 commit comments

Comments
 (0)