Added socket.io

This commit is contained in:
2024-07-31 19:01:55 -04:00
parent fc66225cf5
commit 441e372987
23 changed files with 551 additions and 151 deletions
+56
View File
@@ -0,0 +1,56 @@
'use strict';
const {User} = require('../models/user');
const {AuthToken} = require('../models/token');
class Auth{
static errors = {
login: function(){
let error = new Error('LoginFailed');
error.name = 'LoginFailed';
error.message = `Invalid Credentials, login failed.`;
error.status = 401;
return error;
}
}
static async login(data){
try{
let user = await User.login(data);
let token = await AuthToken.create({username: user.username});
return {user, token}
}catch(error){
console.log('login error', error);
throw this.errors.login();
}
}
static async checkToken(token){
try{
token = await AuthToken.get(token);
if(token && token.check()) return token;
throw this.errors.login();
}catch(error){
throw this.errors.login();
}
}
static async logout(data){
let token = await AuthToken.get(data);
await token.destroy();
}
}
Auth.logOut = async function(data){
try{
}catch(error){
throw error;
}
}
module.exports = {Auth};
+36
View File
@@ -0,0 +1,36 @@
'use strict';
const {Host} = require('../models/host');
const {SocketServerJson} = require('../models/socket_server_json');
const conf = require('../conf');
const socket = new SocketServerJson({
socketFile: conf.socketFile,
onData: function(data, clientSocket) {
try{
console.log('socket lookup for', data)
let parentHost = Host.lookUp(data['domain']) || {host: 'none'};
console.log('found', parentHost)
if(!parentHost.wildcard_parent){
parentHost.wildcard_parent = parentHost.host;
Host.addCache(data['domain'], parentHost);
}
for(const [key, value] of Object.entries(parentHost)) {
parentHost[key] = String(value);
};
console.log('To send socket', JSON.stringify(parentHost))
clientSocket.write(JSON.stringify(parentHost));
}catch(error){
console.error('controler/hosts onData error', error)
}
},
onListen: function(){
console.log('listening')
}
});
+8
View File
@@ -0,0 +1,8 @@
'use strict';
module.exports = {
auth: require('./auth'),
ps: require('./pubsub'),
host: require('./host'),
}
+5
View File
@@ -0,0 +1,5 @@
const {PubSub} = require('p2psub');
ps = new PubSub();
module.exports = ps;