MCPcopy Create free account
hub / github.com/codealong-dev/ride-sharing / handleRidersWebSocket

Function handleRidersWebSocket

services/api-gateway/ws.go:17–60  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request, rb *messaging.RabbitMQ)

Source from the content-addressed store, hash-verified

15)
16
17func handleRidersWebSocket(w http.ResponseWriter, r *http.Request, rb *messaging.RabbitMQ) {
18 conn, err := connManager.Upgrade(w, r)
19 if err != nil {
20 log.Printf("WebSocket upgrade failed: %v", err)
21 return
22 }
23
24 defer conn.Close()
25
26 userID := r.URL.Query().Get("userID")
27 if userID == "" {
28 log.Println("No user ID provided")
29 return
30 }
31
32 // Add connection to manager
33 connManager.Add(userID, conn)
34 defer connManager.Remove(userID)
35
36 // Initialize queue consumers
37 queues := []string{
38 messaging.NotifyDriverNoDriversFoundQueue,
39 messaging.NotifyDriverAssignQueue,
40 messaging.NotifyPaymentSessionCreatedQueue,
41 }
42
43 for _, q := range queues {
44 consumer := messaging.NewQueueConsumer(rb, connManager, q)
45
46 if err := consumer.Start(); err != nil {
47 log.Printf("Failed to start consumer for queue: %s: err: %v", q, err)
48 }
49 }
50
51 for {
52 _, message, err := conn.ReadMessage()
53 if err != nil {
54 log.Printf("Error reading message: %v", err)
55 break
56 }
57
58 log.Printf("Received message: %s", message)
59 }
60}
61
62func handleDriversWebSocket(w http.ResponseWriter, r *http.Request, rb *messaging.RabbitMQ) {
63 conn, err := connManager.Upgrade(w, r)

Callers 1

mainFunction · 0.85

Calls 7

StartMethod · 0.95
NewQueueConsumerFunction · 0.92
UpgradeMethod · 0.80
AddMethod · 0.80
RemoveMethod · 0.80
CloseMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected