Splitting removal and expiration for sanity
Some checks failed
Build Pogdark API / Build Pogdark API (push) Has been cancelled

This commit is contained in:
whysman 2024-11-15 11:04:12 -05:00
parent 4fe9e5639e
commit ac243eef2e

24
main.go
View File

@ -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
}