adding rest-api
This commit is contained in:
110
rest-api/routes/events.go
Normal file
110
rest-api/routes/events.go
Normal file
@@ -0,0 +1,110 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"example.com/rest-api/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func getEvents(context *gin.Context) {
|
||||
events, err := models.GetAllEvents()
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not fetch events."})
|
||||
}
|
||||
context.JSON(http.StatusOK, events)
|
||||
}
|
||||
|
||||
func getEvent(context *gin.Context) {
|
||||
eventId, err := strconv.ParseInt(context.Param("id"), 10, 64)
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse event id."})
|
||||
return
|
||||
}
|
||||
|
||||
event, err := models.GetEventByID(eventId)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not fetch event."})
|
||||
return
|
||||
}
|
||||
|
||||
context.JSON(http.StatusOK, event)
|
||||
}
|
||||
|
||||
func createEvent(context *gin.Context) {
|
||||
var event models.Event
|
||||
err := context.ShouldBindJSON(&event)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse request data"})
|
||||
return
|
||||
}
|
||||
|
||||
event.ID = 1
|
||||
event.UserID = 1
|
||||
|
||||
err = event.Save()
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not create event."})
|
||||
}
|
||||
|
||||
context.JSON(http.StatusCreated, gin.H{"message": "Event created!", "event": event})
|
||||
}
|
||||
|
||||
func updateEvent(context *gin.Context) {
|
||||
eventId, err := strconv.ParseInt(context.Param("id"), 10, 64)
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse event id."})
|
||||
return
|
||||
}
|
||||
|
||||
_, err = models.GetEventByID(eventId)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not fetch the event."})
|
||||
return
|
||||
}
|
||||
|
||||
var updatedEvent models.Event
|
||||
err = context.ShouldBindJSON(&updatedEvent)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse request data"})
|
||||
return
|
||||
}
|
||||
|
||||
updatedEvent.ID = eventId
|
||||
err = updatedEvent.Update()
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not update the event."})
|
||||
return
|
||||
}
|
||||
context.JSON(http.StatusOK, gin.H{"message": "Event updated successfully."})
|
||||
}
|
||||
|
||||
func deleteEvent(context *gin.Context) {
|
||||
eventId, err := strconv.ParseInt(context.Param("id"), 10, 64)
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse event id."})
|
||||
return
|
||||
}
|
||||
|
||||
event, err := models.GetEventByID(eventId)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not fetch the event."})
|
||||
return
|
||||
}
|
||||
|
||||
err = event.Delete()
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not delete the event."})
|
||||
return
|
||||
}
|
||||
|
||||
context.JSON(http.StatusOK, gin.H{"message": "Event deleted successfully."})
|
||||
}
|
||||
12
rest-api/routes/routes.go
Normal file
12
rest-api/routes/routes.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package routes
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
|
||||
func RegisterRoutes(server *gin.Engine) {
|
||||
server.GET("/events", getEvents)
|
||||
server.GET("/events/:id", getEvent)
|
||||
server.POST("/events", createEvent)
|
||||
server.PUT("/events/:id", updateEvent)
|
||||
server.DELETE("/events/:id", deleteEvent)
|
||||
server.POST("/signup", signup)
|
||||
}
|
||||
28
rest-api/routes/users.go
Normal file
28
rest-api/routes/users.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"example.com/rest-api/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func signup(context *gin.Context) {
|
||||
var user models.User
|
||||
|
||||
err := context.ShouldBindJSON(&user)
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusBadRequest, gin.H{"message": "Could not parse request data."})
|
||||
return
|
||||
}
|
||||
|
||||
err = user.Save()
|
||||
|
||||
if err != nil {
|
||||
context.JSON(http.StatusInternalServerError, gin.H{"message": "Could not save user."})
|
||||
return
|
||||
}
|
||||
|
||||
context.JSON(http.StatusCreated, gin.H{"message": "User created successfully"})
|
||||
}
|
||||
Reference in New Issue
Block a user