validate current away status before setting it (again)
This commit is contained in:
parent
c9588f05bd
commit
c2b70eb006
@ -386,10 +386,19 @@ class LearningDashboardActor(
|
|||||||
user <- findUserByIntId(meeting, msg.body.userId)
|
user <- findUserByIntId(meeting, msg.body.userId)
|
||||||
} yield {
|
} yield {
|
||||||
val updatedUser = if (msg.body.away) {
|
val updatedUser = if (msg.body.away) {
|
||||||
user.copy(away = user.away :+ Away())
|
if (user.away.exists(a => a.stoppedOn == 0)) {
|
||||||
|
//do nothing if user is already away
|
||||||
|
user
|
||||||
|
} else {
|
||||||
|
user.copy(away = user.away :+ Away())
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
val lastAway: Away = user.away.last.copy(stoppedOn = System.currentTimeMillis())
|
if(user.away.last.stoppedOn == 0) {
|
||||||
user.copy(away = user.away.dropRight(1) :+ lastAway)
|
user.copy(away = user.away.dropRight(1) :+ user.away.last.copy(stoppedOn = System.currentTimeMillis()))
|
||||||
|
} else {
|
||||||
|
//do nothing if user is not away
|
||||||
|
user
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val updatedMeeting = meeting.copy(users = meeting.users + (updatedUser.userKey -> updatedUser))
|
val updatedMeeting = meeting.copy(users = meeting.users + (updatedUser.userKey -> updatedUser))
|
||||||
|
Loading…
Reference in New Issue
Block a user