authd-maquettec/js/authws.js

138 lines
3.9 KiB
JavaScript

// Generated by LiveScript 1.6.0
(function(){
var bulma, h, AuthWS;
bulma = require("maquette-bulma");
h = require('maquette').h;
AuthWS = function(socketUrl){
var self, requestTypes, responseTypes, key, value;
self = {};
requestTypes = {
"get-token": 0,
"add-user": 1,
"get-user": 2,
"get-user-by-credentials": 3,
"mod-user": 4,
"register": 5,
"get-extra": 6,
"set-extra": 7,
"update-password": 8,
"list-users": 9
};
responseTypes = {
"error": 0,
"token": 1,
"user": 2,
"user-added": 3,
"user-edited": 4,
"extra": 5,
"extra-updated": 6,
"users-list": 7
};
self.userOnSocketError = [];
self.userOnSocketClose = [];
self.callbacks = {};
for (key in responseTypes) {
value = responseTypes[key];
self.callbacks[value] = [];
}
self.addEventListener = function(type, callback){
var ref$;
type = responseTypes[type];
return (ref$ = self.callbacks)[type] = ref$[type].concat([callback]);
};
self.openSocket = function(){
self.socket = new WebSocket(socketUrl);
self.socket.onerror = function(event){
var i$, ref$, len$, f;
for (i$ = 0, len$ = (ref$ = self.userOnSocketError).length; i$ < len$; ++i$) {
f = ref$[i$];
f(event);
}
return self.socket.close();
};
self.socket.onclose = function(event){
var i$, ref$, len$, f, results$ = [];
for (i$ = 0, len$ = (ref$ = self.userOnSocketClose).length; i$ < len$; ++i$) {
f = ref$[i$];
results$.push(f(event));
}
return results$;
};
return self.socket.onmessage = function(event){
var message, i$, ref$, len$, f, results$ = [];
message = JSON.parse(event.data);
for (i$ = 0, len$ = (ref$ = self.callbacks[message.mtype]).length; i$ < len$; ++i$) {
f = ref$[i$];
results$.push(f(JSON.parse(message.payload)));
}
return results$;
};
};
self.reopen = function(){
self.socket.close();
return self.openSocket();
};
self.openSocket();
self.send = function(type, opts){
return self.socket.send(JSON.stringify({
mtype: type,
payload: opts
}));
};
self.getToken = function(login, password){
return self.send(requestTypes['get-token'], JSON.stringify({
login: login,
password: password
}));
};
self.getUserByCredentials = function(login, password){
return self.send(requestTypes['get-user-by-credentials'], JSON.stringify({
login: login,
password: password
}));
};
self.login = function(login, password){
self.getToken(login, password);
return self.getUserByCredentials(login, password);
};
self.getUser = function(uid){
return self.send(requestTypes['get-user'], JSON.stringify({
uid: uid
}));
};
self.register = function(login, password){
return self.send(requestTypes['register'], JSON.stringify({
login: login,
password: password
}));
};
self.getExtra = function(token, name){
return self.send(requestTypes['get-extra'], JSON.stringify({
token: token,
name: name
}));
};
self.setExtra = function(token, name, extra){
return self.send(requestTypes['set-extra'], JSON.stringify({
token: token,
name: name,
extra: extra
}));
};
self.updatePassword = function(login, oldPassword, newPassword){
return self.send(requestTypes['update-password'], JSON.stringify({
login: login,
old_password: oldPassword,
new_password: newPassword
}));
};
self.listUsers = function(token){
return self.send(requestTypes['list-users'], JSON.stringify({
token: token
}));
};
return self;
};
module.exports = AuthWS;
}).call(this);