diff --git a/main.go b/main.go index 0d80eaa..56acbfe 100644 --- a/main.go +++ b/main.go @@ -176,8 +176,24 @@ func broadcastAllRecords(s *Server) { } } -func broadcastRemovedRecords(s *Server, expired string) { - var message Message = Message{Id: expired, Name: "", Image: "", Status: "expired", Timestamp: ""} +func broadcastRemovedRecords(s *Server, message Message) { + var msgJSON, err = json.Marshal(message) + if err != nil { + log.Println("Error marshalling json:", err) + return + } + fmt.Printf("Broadcasting removal: %s,%s,%s,%s to %d clients\n", message.Id, message.Status, message.Name, message.Timestamp, len(s.clients)) + + for client := range s.clients { + if err := client.conn.WriteMessage(websocket.TextMessage, msgJSON); err != nil { + log.Println("Failed to broadcast update:", err) + return + } + } +} + +func broadcastExpiredRecords(s *Server, removed string) { + var message = Message{Id: removed, Name: "", Image: "", Status: "removed", Timestamp: ""} var msgJSON, err = json.Marshal(message) if err != nil { log.Println("Error marshalling json:", err) @@ -225,7 +241,7 @@ func (s *Server) listenForExpirationEvents() { expiredID := msg.Payload fmt.Println(expiredID) // Broadcast expiration event - broadcastRemovedRecords(s, expiredID) + broadcastExpiredRecords(s, expiredID) fmt.Printf("Done Broadcasting Expiration\n") } } @@ -319,7 +335,7 @@ func setState(w http.ResponseWriter, r *http.Request, s *Server) { http.Error(w, "Failed to delete key from Redis", http.StatusInternalServerError) return } - broadcastRemovedRecords(s, message.Id) + broadcastRemovedRecords(s, message) w.WriteHeader(http.StatusOK) return }