// Package handler define HTTP handler functions for eventRT service package handler import ( "errors" "net/http" "eventRT/constants" "eventRT/database" "eventRT/event" "eventRT/logger" "github.com/gin-gonic/gin" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" ) // GetEventHandler handles GET /events/:event_uuid func GetEventHandler(c *gin.Context) { ctx := c.Request.Context() eventUUID := c.Param("event_uuid") var record event.EventRecord err := database.GetMongoClient(). Database(constants.EventDBName). Collection(constants.EventCollectionName). FindOne(ctx, bson.M{"event_uuid": eventUUID}). Decode(&record) if err != nil { if errors.Is(err, mongo.ErrNoDocuments) { c.JSON(http.StatusNotFound, gin.H{"error": "event not found"}) return } logger.Error(ctx, "query event by uuid failed", "event_uuid", eventUUID, "error", err) c.JSON(http.StatusInternalServerError, gin.H{"error": "internal server error"}) return } c.JSON(http.StatusOK, record) }