func processPresence(api *slack.Client, workChan chan slack.User, resultChan chan SlackUser) { for u := range workChan { if u.ID == "" { continue } // no need to add deleted users if u.Deleted { continue } // filter bots if u.IsBot { continue } // even if we get error from slack api set it to nil var lastActive *time.Time // presence information is optional, so we can skip the errored ones p, err := api.GetUserPresence(u.ID) if err != nil || p == nil { resultChan <- SlackUser{u, lastActive} continue } // set presence info u.Presence = p.Presence resultChan <- SlackUser{u, lastActive} } }