Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+68
@@ -0,0 +1,68 @@
|
||||
package websocket
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
partydata "legatus-rme/backend/partyData"
|
||||
"log"
|
||||
"net/http"
|
||||
"slices"
|
||||
|
||||
"github.com/go-playground/validator/v10"
|
||||
)
|
||||
|
||||
func paintIt(color int) string {
|
||||
hex := fmt.Sprintf("%06x", color+16777216)
|
||||
return "#" + hex
|
||||
}
|
||||
|
||||
func (s *Server) partyData(w http.ResponseWriter, r *http.Request) {
|
||||
c, err := s.Upgrader.Upgrade(w, r, nil)
|
||||
if err != nil {
|
||||
log.Println("Websocket Server - Error upgrading connection:", err)
|
||||
return
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
for {
|
||||
var req PartyDataWebsocketRequest
|
||||
if err := c.ReadJSON(&req); err != nil {
|
||||
c.WriteJSON(&ErrorWebsocketResponse{
|
||||
Error: err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
err = validator.New().Struct(req)
|
||||
if err != nil {
|
||||
c.WriteJSON(&ErrorWebsocketResponse{
|
||||
Error: err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
if slices.Contains(s.ExerciseIds, req.ExcerciseId) {
|
||||
partyDataSocket := OpenWebsocket("partyBaseData", []int{s.ExerciseServicePortMap[fmt.Sprintf("%d-ParticipantManagement1", req.ExcerciseId)]}).(partydata.PartyData)
|
||||
partyData := partyDataSocket.GetPartyData()
|
||||
|
||||
var res []PartyDataWebsocketResponse
|
||||
for _, party := range partyData.Data {
|
||||
if party.ID == 0 || party.ID == 1 {
|
||||
continue
|
||||
}
|
||||
|
||||
colorInHex := paintIt(party.Color)
|
||||
|
||||
res = append(res, PartyDataWebsocketResponse{
|
||||
Id: party.ID,
|
||||
Party: party.Name,
|
||||
Color: colorInHex,
|
||||
})
|
||||
}
|
||||
|
||||
c.WriteJSON(&res)
|
||||
} else {
|
||||
c.WriteJSON(&ErrorWebsocketResponse{
|
||||
Error: "Invalid exerciseId",
|
||||
})
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user