@@ -72,15 +72,26 @@ func handleUpdateAgentAvailability(r *fastglue.Request) error {
72
72
status = string (r .RequestCtx .PostArgs ().Peek ("status" ))
73
73
ip = realip .FromRequest (r .RequestCtx )
74
74
)
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
+ }
75
84
76
85
// Update availability status.
77
86
if err := app .user .UpdateAvailability (auser .ID , status ); err != nil {
78
87
return sendErrorEnvelope (r , err )
79
88
}
80
89
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
+ }
84
95
}
85
96
86
97
return r .SendEnvelope (true )
0 commit comments