|
|
|
|
@ -857,9 +857,6 @@ export class UsersRaw extends BaseRaw { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const update = { |
|
|
|
|
$set: { |
|
|
|
|
statusLivechat: 'available', |
|
|
|
|
}, |
|
|
|
|
$addToSet: { |
|
|
|
|
openBusinessHours: { $each: businessHourIds }, |
|
|
|
|
}, |
|
|
|
|
@ -883,6 +880,25 @@ export class UsersRaw extends BaseRaw { |
|
|
|
|
return this.updateMany(query, update); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
makeAgentsWithinBusinessHourAvailable(agentIds) { |
|
|
|
|
const query = { |
|
|
|
|
...(agentIds && { _id: { $in: agentIds } }), |
|
|
|
|
roles: 'livechat-agent', |
|
|
|
|
// Exclude away users
|
|
|
|
|
status: 'online', |
|
|
|
|
// Exclude users that are already available, maybe due to other business hour
|
|
|
|
|
statusLivechat: 'not-available', |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const update = { |
|
|
|
|
$set: { |
|
|
|
|
statusLivechat: 'available', |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return this.updateMany(query, update); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
removeBusinessHourByAgentIds(agentIds = [], businessHourId) { |
|
|
|
|
const query = { |
|
|
|
|
_id: { $in: agentIds }, |
|
|
|
|
@ -904,9 +920,6 @@ export class UsersRaw extends BaseRaw { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const update = { |
|
|
|
|
$set: { |
|
|
|
|
statusLivechat: 'available', |
|
|
|
|
}, |
|
|
|
|
$addToSet: { |
|
|
|
|
openBusinessHours: businessHourId, |
|
|
|
|
}, |
|
|
|
|
@ -947,6 +960,8 @@ export class UsersRaw extends BaseRaw { |
|
|
|
|
const query = { |
|
|
|
|
$or: [{ openBusinessHours: { $exists: false } }, { openBusinessHours: { $size: 0 } }], |
|
|
|
|
roles: 'livechat-agent', |
|
|
|
|
// Avoid unnecessary updates
|
|
|
|
|
statusLivechat: 'available', |
|
|
|
|
...(Array.isArray(userIds) && userIds.length > 0 && { _id: { $in: userIds } }), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|