Skip to content

Commit f97dec8

Browse files
author
odeimaiz
committed
Working get_services call
1 parent 97b81df commit f97dec8

File tree

3 files changed

+34
-106
lines changed

3 files changed

+34
-106
lines changed

services/web/client/source/class/qxapp/components/workbench/servicesCatalogue/ServicesCatalogue.js

+7-13
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,10 @@ qx.Class.define("qxapp.components.workbench.servicesCatalogue.ServicesCatalogue"
109109

110110
__populateList: function() {
111111
let store = qxapp.data.Store.getInstance();
112-
[
113-
"builtInServicesRegistered",
114-
"servicesRegistered",
115-
"interactiveServicesRegistered"
116-
].forEach(event => {
117-
store.addListener(event, e => {
118-
this.__addNewData(e.getData());
119-
}, this);
120-
});
121-
store.getBuiltInServicesAsync();
122-
store.getComputationalServices();
123-
store.getInteractiveServices();
112+
store.addListener("servicesRegistered", e => {
113+
this.__addNewData(e.getData());
114+
}, this);
115+
store.getServices();
124116
},
125117

126118
__getServiceNameInList: function(service) {
@@ -171,7 +163,9 @@ qx.Class.define("qxapp.components.workbench.servicesCatalogue.ServicesCatalogue"
171163
},
172164

173165
__addNewData: function(newData) {
174-
this.__allServices = this.__allServices.concat(newData);
166+
for (const serviceKey in newData) {
167+
this.__allServices.push(newData[serviceKey]);
168+
}
175169
this.__updateCompatibleList();
176170
},
177171

services/web/client/source/class/qxapp/data/Store.js

+19-77
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ qx.Class.define("qxapp.data.Store", {
44
type : "singleton",
55

66
events: {
7-
"builtInServicesRegistered": "qx.event.type.Event",
8-
"servicesRegistered": "qx.event.type.Event",
9-
"interactiveServicesRegistered": "qx.event.type.Event"
7+
"servicesRegistered": "qx.event.type.Event"
108
},
119

1210
statics: {
@@ -23,9 +21,7 @@ qx.Class.define("qxapp.data.Store", {
2321
},
2422

2523
members: {
26-
__servicesCacheBuiltIn: null,
27-
__servicesCacheComputational: null,
28-
__servicesCacheInteractive: null,
24+
__servicesCache: null,
2925

3026
__getMimeType: function(type) {
3127
let match = type.match(/^data:([^/\s]+\/[^/;\s])/);
@@ -71,6 +67,9 @@ qx.Class.define("qxapp.data.Store", {
7167
let metaData = {};
7268
if (key && version) {
7369
const nodeImageId = key + "-" + version;
70+
if (nodeImageId in this.__servicesCache) {
71+
return this.__servicesCache[nodeImageId];
72+
}
7473
metaData = this.getFakeServices()[nodeImageId];
7574
if (metaData === undefined) {
7675
metaData = this.getBuiltInServices()[nodeImageId];
@@ -820,25 +819,6 @@ qx.Class.define("qxapp.data.Store", {
820819
return builtInServices;
821820
},
822821

823-
getBuiltInServicesAsync: function() {
824-
let builtInServices = [];
825-
let builtInServicesMap = this.getBuiltInServices();
826-
for (const mapKey in builtInServicesMap) {
827-
builtInServices.push(builtInServicesMap[mapKey]);
828-
}
829-
830-
console.log("builtInServicesRegistered", builtInServices);
831-
let services = [];
832-
for (const key in builtInServices) {
833-
const repoData = builtInServices[key];
834-
let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
835-
services.push(newMetaData);
836-
}
837-
// this.fireDataEvent("builtInServicesRegistered", builtInServices);
838-
this.__servicesCacheBuiltIn = services;
839-
this.fireDataEvent("builtInServicesRegistered", services);
840-
},
841-
842822
getFakeServices: function() {
843823
let services = {};
844824
services = Object.assign(services, this.getBuiltInServices());
@@ -852,6 +832,7 @@ qx.Class.define("qxapp.data.Store", {
852832
url: "/get_services",
853833
method: "GET"
854834
});
835+
855836
req.addListener("success", function(e) {
856837
let requ = e.getTarget();
857838
const {
@@ -860,77 +841,38 @@ qx.Class.define("qxapp.data.Store", {
860841
} = requ.getResponse();
861842
if (status >= 200 && status <= 299) {
862843
const listOfRepositories = data;
863-
console.log("listOfServices", listOfRepositories);
864844
let services = Object.assign({}, this.getBuiltInServices());
865845
for (const key in listOfRepositories) {
866846
const repoData = listOfRepositories[key];
867-
services[key] = qxapp.data.Converters.registryToMetaData(repoData);
847+
const nodeImageId = repoData.key + "-" + repoData.version;
848+
services[nodeImageId] = repoData;
868849
}
850+
if (this.__servicesCache === null) {
851+
this.__servicesCache = {};
852+
}
853+
this.__servicesCache = Object.assign(this.__servicesCache, services);
869854
this.fireDataEvent("servicesRegistered", services);
870855
} else {
871856
// error
872857
console.error("Error retrieving services: ", data);
873858
}
874859
}, this);
875-
req.send();
876-
},
877860

878-
getComputationalServices: function() {
879-
let req = new qx.io.request.Xhr();
880-
req.set({
881-
url: "/get_computational_services",
882-
method: "GET"
883-
});
884-
req.addListener("success", function(e) {
861+
req.addListener("fail", function(e) {
885862
let requ = e.getTarget();
886863
const {
887864
data,
888865
status
889866
} = requ.getResponse();
890-
if (status >= 200 && status <= 299) {
891-
const listOfRepositories = data;
892-
console.log("listOfServices", listOfRepositories);
893-
let services = [];
894-
for (const key in listOfRepositories) {
895-
const repoData = listOfRepositories[key];
896-
let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
897-
services.push(newMetaData);
898-
}
899-
this.__servicesCacheComputational = services;
900-
this.fireDataEvent("servicesRegistered", services);
901-
} else {
902-
// error
903-
console.error("Error retrieving services: ", data);
867+
console.log("getServices failed", data, status);
868+
let services = this.getFakeServices();
869+
if (this.__servicesCache === null) {
870+
this.__servicesCache = {};
904871
}
872+
this.__servicesCache = Object.assign(this.__servicesCache, services);
873+
this.fireDataEvent("servicesRegistered", services);
905874
}, this);
906875
req.send();
907-
},
908-
909-
getInteractiveServices: function() {
910-
let socket = qxapp.wrappers.WebSocket.getInstance();
911-
socket.removeSlot("getInteractiveServices");
912-
socket.on("getInteractiveServices", function(e) {
913-
const {
914-
data,
915-
status
916-
} = e;
917-
if (status >= 200 && status <= 299) {
918-
let listOfInteractiveServices = data;
919-
console.log("listOfInteractiveServices", listOfInteractiveServices);
920-
let services = [];
921-
for (const key in listOfInteractiveServices) {
922-
const repoData = listOfInteractiveServices[key];
923-
let newMetaData = qxapp.data.Converters.registryToMetaData(repoData);
924-
services.push(newMetaData);
925-
}
926-
this.__servicesCacheInteractive = services;
927-
this.fireDataEvent("interactiveServicesRegistered", services);
928-
} else {
929-
// error
930-
console.error("Error retrieving services: ", data);
931-
}
932-
}, this);
933-
socket.emit("getInteractiveServices");
934876
}
935877
}
936878
});

services/web/client/source/class/qxapp/desktop/LayoutManager.js

+8-16
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,15 @@ qx.Class.define("qxapp.desktop.LayoutManager", {
7878
try {
7979
let ajv = new qxapp.wrappers.Ajv(data);
8080
let store = qxapp.data.Store.getInstance();
81-
[
82-
"builtInServicesRegistered",
83-
"servicesRegistered",
84-
"interactiveServicesRegistered"
85-
].forEach(event => {
86-
store.addListener(event, ev => {
87-
const services = ev.getData();
88-
for (let i = 0; i < services.length; i++) {
89-
const service = services[i];
90-
let check = ajv.validate(service);
91-
console.log("services validation result " + service.key + ":", check);
92-
}
93-
}, this);
81+
store.addListener("servicesRegistered", ev => {
82+
const services = ev.getData();
83+
for (let i = 0; i < services.length; i++) {
84+
const service = services[i];
85+
let check = ajv.validate(service);
86+
console.log("services validation result " + service.key + ":", check);
87+
}
9488
});
95-
store.getBuiltInServicesAsync();
96-
store.getComputationalServices();
97-
store.getInteractiveServices();
89+
store.getServices();
9890
} catch (err) {
9991
console.error(err);
10092
}

0 commit comments

Comments
 (0)