138 lines
3.9 KiB
JavaScript
138 lines
3.9 KiB
JavaScript
// Generated by LiveScript 1.6.0
|
|
(function(){
|
|
var bulma, h, AuthWS;
|
|
bulma = require("./bulma.ls");
|
|
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);
|