package routes import ( "github.com/gin-gonic/gin" "net/http" "strconv" "udemy_httpserver/models" ) func postEvent(c *gin.Context) { var event models.Event err := c.ShouldBindJSON(&event) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } // Todo: implement user auth event.UserID = 0 err = event.Save() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusCreated, event) } func getEvents(c *gin.Context) { events, err := models.GetAllEvents() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, events) } func getSingleEvent(c *gin.Context) { eventID, err := strconv.ParseInt(c.Param("id"), 10, 64) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } candidateEvent, err := models.FindEventById(int(eventID)) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } if candidateEvent == nil { c.JSON(http.StatusNotFound, gin.H{"error": "event not found"}) return } c.JSON(http.StatusOK, *candidateEvent) }