Commit 5f6e57a8 authored by Hardik Juneja's avatar Hardik Juneja

erp5_webrtc_gadget: update webrtc module to support erp5 as a handshake option

parent e888d233
......@@ -45,14 +45,22 @@
g.props = {};
})
.declareMethod('create_room', function(roomid) {
.declareMethod('create_room', function(roomid, type) {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
return jio_gadget.put(roomid, {});
if (type === "erp5") {
return jio_gadget.post({
title: roomid,
portal_type: "Webrtc Room",
parent_relative_url: "webrtc_rooms_module"
});
} else {
return jio_gadget.put(roomid, {});
}
})
.push(null, function(e){
console.log(e);
......@@ -60,19 +68,29 @@
})
.declareMethod('register', function(roomid, peerid, config) {
var gadget = this;
var gadget = this,
id;
gadget.props.config = config;
return new RSVP.Queue()
.push(function() {
return createJio(gadget, config);
})
.push(function() {
return gadget.create_room(roomid);
return gadget.create_room(roomid, config.type);
})
.push(function () {
.push(function (id) {
gadget.erp5_roomid = id;
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
if (config.type === "erp5") {
var url = config.url + "/" + gadget.erp5_roomid + "/WebrtcRoom_storeOfferAnswer";
return jio_gadget.putAttachment(gadget.erp5_roomid,
url,
new Blob([JSON.stringify({roomid:roomid,
peerid: peerid,
data:'1'})]));
}
return jio_gadget.putAttachment(roomid, peerid, '');
});
// TODO: create new function, show registered peers?
......@@ -86,8 +104,27 @@
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
if (gadget.props.config.type === "erp5") {
var url = gadget.props.config.url + "/" + gadget.erp5_roomid +
"/WebrtcRoom_storeOfferAnswer";
return new RSVP.Queue()
.push(function () {
if (options.data instanceof Blob) {
return jIO.util.readBlobAsText(options.data);
} else {
return {target:{result:options.data}};
}
})
.push(function (evt) {
return jio_gadget.putAttachment(gadget.erp5_roomid,
url,
new Blob([JSON.stringify({roomid:roomid,
peerid: options.name,
data: evt.target.result})]));
});
}
return jio_gadget.putAttachment(roomid, options.name, options.data);
})
});
})
.declareMethod('get_answer', function (roomid, attachment) {
......@@ -98,6 +135,11 @@
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
if (gadget.props.config.type === "erp5") {
var url = gadget.props.config.url + "/" + gadget.erp5_roomid +
"/WebrtcRoom_getOfferAnswer?roomid=" + roomid+"&name="+attachment;
return jio_gadget.getAttachment(gadget.erp5_roomid, url);
}
return jio_gadget.getAttachment(roomid, attachment);
});
})
......@@ -110,6 +152,23 @@
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
if (gadget.props.config.type === "erp5") {
var url = gadget.props.config.url + "/" + gadget.erp5_roomid +
"/WebrtcRoom_getAllOfferAnswer?roomid="+roomid;
return jio_gadget.getAttachment(gadget.erp5_roomid, url)
.push(function(res) {
return jIO.util.readBlobAsText(res);
})
.push(function(evt) {
var res = evt.target.result.replace(/'/g, '"');
res = JSON.parse(res);
var offers = {}
for (var i in res) {
offers[res[i]] = '';
}
return offers;
});
}
return jio_gadget.allAttachments(roomid);
});
})
......@@ -168,7 +227,7 @@
} else {
offers = a;
return false;
}
}
});
});
};
......@@ -184,6 +243,11 @@
return gadget.getDeclaredGadget("jio_gadget");
})
.push(function (jio_gadget) {
if (gadget.props.config.type === "erp5") {
var url = gadget.props.config.url + "/" + gadget.erp5_roomid +
"/WebrtcRoom_deleteOfferAnswer?roomid="+roomid+"&name="+peerid+"_"+to;
return jio_gadget.getAttachment(gadget.erp5_roomid, url);
}
return jio_gadget.removeAttachment(roomid, peerid+"_"+to);
});
});
......
......@@ -222,7 +222,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>954.14301.62370.56661</string> </value>
<value> <string>954.35891.65212.64409</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -240,7 +240,7 @@
</tuple>
<state>
<tuple>
<float>1475066759.35</float>
<float>1476275774.45</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -258,7 +258,7 @@
// TODO: have a array for channel_defer for concurency?
gadget.props.channel_defer = RSVP.defer();
for (var offer in offers) {
jsonOffer = JSON.parse(offers[offer]);
jsonOffer = JSON.parse(offers[offer]);
if (jsonOffer.action === "offer") {
gadget.props.counter += 1;
connections.push(connectCallback(jsonOffer, handler_gadget));
......
......@@ -222,7 +222,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>954.14300.3742.31044</string> </value>
<value> <string>954.35841.9537.7133</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -240,7 +240,7 @@
</tuple>
<state>
<tuple>
<float>1475066648.69</float>
<float>1476272709.15</float>
<string>UTC</string>
</tuple>
</state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment