Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
andrealeo83 committed Oct 23, 2020
2 parents 74401ea + 2039aa0 commit d86e939
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 13 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Next
- Campaign REST API (test it)

# 2.1.13
- Added Cors options pre-flight with
- Fix TD218 Audit log for user invitation already registered

# 2.1.12
- Chat21 engine selection with CHAT21_ENGINE=[native|firebase]
- Schema migration tool with mongoose-migrate. Added env property DISABLE_AUTO_SHEMA_MIGRATION
Expand All @@ -19,7 +23,7 @@
- Mongo support for Winston with: WRITE_LOG_TO_MONGODB=true
- Logfix

# 2.1.10
# 2.1.10 -> P
- Tiledesk Chat21 groups syncronizer. Enable with SYNC_CHAT21_GROUPS="true"
- Built-in faq updated and chatbot webhook example changed
- Return role: admin if the admin sign-in with email and password
Expand Down
14 changes: 8 additions & 6 deletions channels/chat21/chat21WebHook.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,9 @@ router.post('/', function (req, res) {
var isObjectId = mongoose.Types.ObjectId.isValid(message.sender);
winston.debug("isObjectId:"+ isObjectId);

// RESTORE var queryProjectUser = {id_project:projectid, status: "active" };
var queryProjectUser = {id_project:projectid};
// var queryProjectUser = {id_project:projectid, $or:[ {uuid_user: message.sender}, {id_user: message.sender }]};

if (isObjectId) {
queryProjectUser.id_user = message.sender;
}else {
Expand Down Expand Up @@ -537,8 +538,9 @@ else if (req.body.event_type == "typing-start") {
var isObjectId = mongoose.Types.ObjectId.isValid(writer_id);
winston.debug("isObjectId:"+ isObjectId);

// RESTORE var queryProjectUser = {id_project: request.id_project, status: "active"};
var queryProjectUser = {id_project: request.id_project};
// var queryProjectUser = {id_project:projectid, $or:[ {uuid_user: message.sender}, {id_user: message.sender }]};

if (isObjectId) {
queryProjectUser.id_user = writer_id;
}else {
Expand Down Expand Up @@ -595,8 +597,9 @@ else if (req.body.event_type == "presence-change") {
var isObjectId = mongoose.Types.ObjectId.isValid(user_id);
winston.debug("isObjectId:"+ isObjectId);

// RESTORE var queryProjectUser = {status: "active"};
var queryProjectUser = {};
// var queryProjectUser = {id_project:projectid, $or:[ {uuid_user: message.sender}, {id_user: message.sender }]};

if (isObjectId) {
queryProjectUser.id_user = user_id;
}else {
Expand All @@ -618,9 +621,8 @@ else if (req.body.event_type == "presence-change") {
project_users.forEach(project_user => {
winston.debug("project_user:", project_user);
var update = {status:presence};
if (presence === "offline") {
update.lastOnlineAt = new Date();
}
update.changedAt = new Date();

project_user.presence = update

project_user.save(function (err, savedProjectUser) {
Expand Down
2 changes: 1 addition & 1 deletion migrations/1601628781595-project_users_presence.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ async function up () {
// Write migration here
await new Promise((resolve, reject) => {
// setTimeout(()=> { resolve('ok'); }, 3000);
return Project_user.updateMany({}, {"$set": {presence: {status: "offline", lastOfflineAt: new Date()}}}, function (err, updates) {
return Project_user.updateMany({}, {"$set": {presence: {status: "offline", changedAt: new Date()}}}, function (err, updates) {
winston.info("Schema updated for " + updates.nModified + " project_user")
return resolve('ok');
});
Expand Down
2 changes: 1 addition & 1 deletion models/presence.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var PresenceSchema = new Schema({
required: true,
index: true
},
lastOnlineAt: {
changedAt: {
type: Date,
default: new Date()
},
Expand Down
16 changes: 14 additions & 2 deletions routes/project_user.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ router.post('/invite', [passport.authenticate(['basic', 'jwt'], { session: false
winston.debug("role", role);

// winston.debug("PROJECT USER ROUTES - req projectid", req.projectid);
return Project_user.find({ id_project: req.projectid, role: { $in : role } }, function (err, projectuser) {
return Project_user.find({ id_project: req.projectid, role: { $in : role }}, function (err, projectuser) {
// RESTORE return Project_user.find({ id_project: req.projectid, role: { $in : role }, status: "active"}, function (err, projectuser) {
winston.debug('PRJCT-USERS FOUND (FILTERED FOR THE PROJECT ID) ', projectuser)
if (err) {
winston.error("Error gettting project_user for invite", err);
Expand Down Expand Up @@ -413,13 +414,24 @@ router.get('/:project_userid', [passport.authenticate(['basic', 'jwt'], { sessio
* 2. POPULATE THE user_id OF THE PROJECT-USER object WITH THE USER OBJECT
*/
router.get('/', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], function (req, res) {

var role = [RoleConstants.OWNER, RoleConstants.ADMIN,RoleConstants.AGENT];

if (req.query.role) {
role = req.query.role;
}
winston.debug("role", role);

Project_user.find({ id_project: req.projectid, role: { $in : role } }).
var query = {id_project: req.projectid, role: { $in : role } };

if (req.query.presencestatus) {
var presence = {status: req.query.presencestatus};
query.presence = presence;
}

winston.debug("query", query);

Project_user.find(query).
populate('id_user').
// lean().
exec(function (err, project_users) {
Expand Down
15 changes: 13 additions & 2 deletions websocket/webSocketServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ var mongoose = require('mongoose');
var lastRequestsLimit = process.env.WS_HISTORY_REQUESTS_LIMIT || 100;
winston.debug('lastRequestsLimit:'+ lastRequestsLimit);

var lastEventsLimit = process.env.WS_HISTORY_EVENTS_LIMIT || 20;
winston.debug('lastEventsLimit:'+ lastEventsLimit);

var websocketServerPath = process.env.WS_SERVER_PATH || '/';
winston.debug('websocketServerPath:'+ websocketServerPath);

Expand Down Expand Up @@ -465,13 +468,21 @@ class WebSocketServer {

var puId = urlSub[3];
winston.debug('puId: '+puId);


var eventName = urlSub[4];
winston.debug('eventName: '+eventName);

var query = { project_user: puId, id_project: projectId };
if (eventName) {
query.name = eventName;
}
winston.debug(' query: ',query);

EventModel.find(query)
.cache(cacheUtil.defaultTTL, projectId+":events:"+puId)
.exec(function (err, events) {
.sort({createdAt: 'desc'})
.limit(lastEventsLimit)
.exec(function(err, events) {
if (err) {
winston.error('error getting events', err);
return reject(err);
Expand Down

0 comments on commit d86e939

Please sign in to comment.