Skip to content

Commit a89c3db

Browse files
committed
fix(agent-availability): skip activity log creation when agent returns online from inactivity as it can spam activity logs.
1 parent e231971 commit a89c3db

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

cmd/users.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,26 @@ func handleUpdateAgentAvailability(r *fastglue.Request) error {
7272
status = string(r.RequestCtx.PostArgs().Peek("status"))
7373
ip = realip.FromRequest(r.RequestCtx)
7474
)
75+
agent, err := app.user.GetAgent(auser.ID, "")
76+
if err != nil {
77+
return sendErrorEnvelope(r, err)
78+
}
79+
80+
// Same status?
81+
if agent.AvailabilityStatus == status {
82+
return r.SendEnvelope(true)
83+
}
7584

7685
// Update availability status.
7786
if err := app.user.UpdateAvailability(auser.ID, status); err != nil {
7887
return sendErrorEnvelope(r, err)
7988
}
8089

81-
// Create activity log.
82-
if err := app.activityLog.UserAvailability(auser.ID, auser.Email, status, ip, "", 0); err != nil {
83-
app.lo.Error("error creating activity log", "error", err)
90+
// Skip activity log if agent returns online from away (to avoid spam).
91+
if !(agent.AvailabilityStatus == models.Away && status == models.Online) {
92+
if err := app.activityLog.UserAvailability(auser.ID, auser.Email, status, ip, "", 0); err != nil {
93+
app.lo.Error("error creating activity log", "error", err)
94+
}
8495
}
8596

8697
return r.SendEnvelope(true)

internal/user/models/models.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ const (
2323
// User availability statuses
2424
Online = "online"
2525
Offline = "offline"
26+
// Away due to inactivity
2627
Away = "away"
28+
// Away due to manual setting from sidebar
2729
AwayManual = "away_manual"
2830
AwayAndReassigning = "away_and_reassigning"
2931
)

0 commit comments

Comments
 (0)