generally generalized, version updated to 1.2
This commit is contained in:
parent
5c095c23ad
commit
60562c3139
@ -1,4 +1,4 @@
|
|||||||
# BRAID v1.0.8
|
# BRAID v1.2
|
||||||
> Websocket server for the Measure platform
|
> Websocket server for the Measure platform
|
||||||
|
|
||||||
[](https://semaphoreci.com/yardstick/braid)
|
[](https://semaphoreci.com/yardstick/braid)
|
||||||
@ -47,10 +47,10 @@ braid:
|
|||||||
hmac_secret = "test"
|
hmac_secret = "test"
|
||||||
payload = {
|
payload = {
|
||||||
:data => {
|
:data => {
|
||||||
:client => 'client name (mhs is only one implemented currently)',
|
:channel_type => 'public/private/custom',
|
||||||
:client_type => 'site (only one in use rite now)',
|
:client_type => 'public/private/custom',
|
||||||
:user_id => (yardstick user id),
|
:user_id => (yardstick user id),
|
||||||
:user_type => '(teacher/user)',
|
:user_roles => and array with any combination of broadcaster/receiver/super,
|
||||||
:channel => 'desired channel name'
|
:channel => 'desired channel name'
|
||||||
},
|
},
|
||||||
:sub => 'Braid JWT',
|
:sub => 'Braid JWT',
|
||||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "braid",
|
"name": "braid",
|
||||||
"version": "1.0.0",
|
"version": "1.2",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "braid",
|
"name": "braid",
|
||||||
"version": "1.0.0",
|
"version": "1.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -6,7 +6,7 @@ var logger = require('../../logger');
|
|||||||
class PrivateChannel extends ChannelBase {
|
class PrivateChannel extends ChannelBase {
|
||||||
broadcastMessage(from: PrivateClient, message: any) {
|
broadcastMessage(from: PrivateClient, message: any) {
|
||||||
for (let client of this.clients) {
|
for (let client of this.clients) {
|
||||||
if (client != from && client.data.user_type != from.data.user_type) {
|
if (client != from && client.roles.includes('receiver') && from.roles.includes('broadcaster')) {
|
||||||
console.log('sending message: ' + JSON.stringify(message))
|
console.log('sending message: ' + JSON.stringify(message))
|
||||||
client.ws.send(JSON.stringify(message));
|
client.ws.send(JSON.stringify(message));
|
||||||
logger.accessLog.info(`sent to ${client.id}`, { data: { message: message }});
|
logger.accessLog.info(`sent to ${client.id}`, { data: { message: message }});
|
||||||
|
@ -14,6 +14,7 @@ class ClientBase {
|
|||||||
channel: ChannelBase|Private|null;
|
channel: ChannelBase|Private|null;
|
||||||
clientManager: ClientManager;
|
clientManager: ClientManager;
|
||||||
channelManager: ChannelManager;
|
channelManager: ChannelManager;
|
||||||
|
roles: Array<string>;
|
||||||
|
|
||||||
constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) {
|
constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) {
|
||||||
this.ws = ws;
|
this.ws = ws;
|
||||||
@ -22,6 +23,7 @@ class ClientBase {
|
|||||||
this.channel = null;
|
this.channel = null;
|
||||||
this.clientManager = clientManager;
|
this.clientManager = clientManager;
|
||||||
this.channelManager = channelManager;
|
this.channelManager = channelManager;
|
||||||
|
this.roles = ['receiver']
|
||||||
}
|
}
|
||||||
|
|
||||||
getData() {
|
getData() {
|
||||||
|
@ -3,11 +3,13 @@ import ClientBase from '../clientBase';
|
|||||||
import ClientManager from '../../clientManager';
|
import ClientManager from '../../clientManager';
|
||||||
import ChannelManager from '../../channelManager';
|
import ChannelManager from '../../channelManager';
|
||||||
|
|
||||||
var logger = require('../logger');
|
var logger = require('../../logger');
|
||||||
|
|
||||||
class PrivateClient extends ClientBase {
|
class PrivateClient extends ClientBase {
|
||||||
|
|
||||||
constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) {
|
constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) {
|
||||||
super(data, ws, channelManager, clientManager);
|
super(data, ws, channelManager, clientManager);
|
||||||
|
this.roles = data.user_roles
|
||||||
logger.accessLog.info('Private Client Created', {data: data});
|
logger.accessLog.info('Private Client Created', {data: data});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
version : '1.0.8',
|
version : '1.2',
|
||||||
whitelist : (process.env.WHITELIST || "http://admin.localhost").split(','),
|
whitelist : (process.env.WHITELIST || "http://admin.localhost").split(','),
|
||||||
secret : process.env.SECRET || "test",
|
secret : process.env.SECRET || "test",
|
||||||
devToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ',
|
devToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNsaWVudCI6InRlc3QiLCJjbGllbnRfdHlwZSI6InNpdGUiLCJ1c2VyX3R5cGUiOiJ1c2VyIiwidXNlcl9pZCI6MjAwLCJjaGFubmVsIjoidGVzdF9jaGFubmVsIn0sImF1ZCI6ImludGVybmFsIiwiaXNzIjoiWWFyZHN0aWNrIFNvZnR3YXJlIiwic3ViIjoiQnJhaWQgSldUIn0.5KNCov_EW1cycT4Ay0oSvk4Z4PHFedd3bWOyqkHHTBQ',
|
||||||
|
@ -5,20 +5,11 @@ var app = require('./config/app');
|
|||||||
|
|
||||||
let schema = {
|
let schema = {
|
||||||
message_type: Joi.string().valid(app.messageTypes).insensitive().required(),
|
message_type: Joi.string().valid(app.messageTypes).insensitive().required(),
|
||||||
current_index: Joi.number().integer(),
|
|
||||||
total_questions: Joi.number().integer(),
|
|
||||||
total_questions_answered: Joi.number().integer(),
|
|
||||||
time_elapsed: Joi.number(),
|
|
||||||
time_left: Joi.any(),
|
|
||||||
status: Joi.string(),
|
|
||||||
channel: Joi.string(),
|
channel: Joi.string(),
|
||||||
channel_type: Joi.string(),
|
channel_type: Joi.string(),
|
||||||
client_type: Joi.string(),
|
client_type: Joi.string(),
|
||||||
user_id: Joi.number().integer(),
|
user_id: Joi.number().integer(),
|
||||||
user_exam_id: Joi.number().integer(),
|
message: Joi.alternatives().try(Joi.string(), Joi.object()),
|
||||||
user_name: Joi.string(),
|
|
||||||
exam_title: Joi.string(),
|
|
||||||
message: Joi.string(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user