695b8721293dac4056c465262eca6ee99daefd76
[apps/agl-service-data-persistence.git] / ll-auth-binding / htdocs / IdentityBinding2.js
1     var afb = new AFB("api", "mysecret");
2     var ws;
3     var evtidx=0;
4
5     function getParameterByName(name, url) {
6         if (!url) {
7           url = window.location.href;
8         }
9         name = name.replace(/[\[\]]/g, "\\$&");
10         var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
11             results = regex.exec(url);
12         if (!results) return null;
13         if (!results[2]) return '';
14         return decodeURIComponent(results[2].replace(/\+/g, " "));
15     }
16
17     // default soundcard is "PCH"
18     var devid=getParameterByName("devid");
19     if (!devid) devid="hw:0";
20
21     var sndname=getParameterByName("sndname");
22     if (!sndname) sndname="PCH";
23
24     var quiet=getParameterByName("quiet");
25     if (!quiet) quiet="99";
26
27     function init() {
28             ws = new afb.ws(onopen, onabort);
29     }
30
31     function onopen() {
32             document.getElementById("background").style.background  = "lightgray";
33                         document.getElementById("main").style.visibility = "visible";
34                         callbinder("ll-auth", "getuser", "");
35             ws.onevent("*", gotevent);
36     }
37
38     function onabort() {
39             document.getElementById("background").style.background  = "IndianRed";
40     }
41
42     function replyok(obj) {
43             console.log("replyok:" + JSON.stringify(obj));
44             document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj);
45
46            document.getElementById("usertitle").innerHTML = "A valid user is logged in";
47            document.getElementById("userid").innerHTML = obj.response.user;
48            document.getElementById("userdevice").innerHTML = obj.response.device;
49            document.getElementById("background").style.background  = "lightgreen";
50     }
51
52     function replyerr(obj) {
53             console.log("replyerr:" + JSON.stringify(obj));
54             document.getElementById("output").innerHTML = "ERROR: "+JSON.stringify(obj);
55     }
56
57     function gotevent(obj) {
58         console.log("gotevent:" + JSON.stringify(obj));
59         document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj);
60
61         document.getElementById("question").innerHTML = "";
62         document.getElementById("output").innerHTML = "";
63         document.getElementById("message").innerHTML = "";
64
65         if (obj.event == "ll-auth/login") {
66            document.getElementById("usertitle").innerHTML = "A valid user is logged in";
67            document.getElementById("userid").innerHTML = obj.data.user;
68            document.getElementById("userdevice").innerHTML = obj.data.device;
69            document.getElementById("background").style.background  = "lightgreen";
70         }
71
72         if (obj.event == "ll-auth/logout") {
73            document.getElementById("usertitle").innerHTML = "No user";
74            document.getElementById("userid").innerHTML = "";
75            document.getElementById("userdevice").innerHTML = "";
76            document.getElementById("background").style.background  = "lightgray";
77         }
78
79         if (obj.event == "ll-auth/failed") {
80            document.getElementById("message").innerHTML = obj.data.message;
81         }
82     }
83
84     function send(message) {
85             var api = document.getElementById("api").value;
86             var verb = document.getElementById("verb").value;
87             document.getElementById("question").innerHTML = "subscribe: "+api+"/"+verb + " (" + JSON.stringify(message) +")";
88             ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr);
89     }
90
91
92     function callbinder(api, verb, query) {
93             console.log ("subscribe api="+api+" verb="+verb+" query=" +query);
94             document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")";
95             ws.call(api+"/"+verb, query).then(replyok, replyerr);
96     }