change to GORM, add member and rank handlers
This commit is contained in:
141
api/routes/member.go
Normal file
141
api/routes/member.go
Normal file
@@ -0,0 +1,141 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/17th-UnitTracker-API/db"
|
||||
"github.com/labstack/echo/v4"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func setupMemberRoutes(
|
||||
e *echo.Echo,
|
||||
mainPrefix *echo.Group,
|
||||
) {
|
||||
// MEMBER OPERATIONS
|
||||
g := mainPrefix.Group("/member")
|
||||
|
||||
// Get all
|
||||
g.GET("", func(c echo.Context) error {
|
||||
var err error
|
||||
member := new(db.Member)
|
||||
|
||||
// if query params are present, use them to filter
|
||||
// otherwise, return all
|
||||
rank := new(db.Rank)
|
||||
if c.QueryParam("rank") != "" {
|
||||
queriedID, err := strconv.Atoi(c.QueryParam("rank"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = rank.GetByID(queriedID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
}
|
||||
award := new(db.Award)
|
||||
if c.QueryParam("award") != "" {
|
||||
queriedID, err := strconv.Atoi(c.QueryParam("award"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = award.GetByID(queriedID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
}
|
||||
course := new(db.Course)
|
||||
if c.QueryParam("course") != "" {
|
||||
queriedID, err := strconv.Atoi(c.QueryParam("course"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = course.GetByID(queriedID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
}
|
||||
|
||||
members, err := member.GetAll(c.Request().Context())
|
||||
if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
return c.JSON(200, members)
|
||||
})
|
||||
// Get one by id
|
||||
g.GET("/:id", func(c echo.Context) error {
|
||||
member := new(db.Member)
|
||||
searchID, err := strconv.Atoi(c.Param("id"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = member.GetByID(c.Request().Context(), searchID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
return c.JSON(200, member)
|
||||
})
|
||||
// Create a new member
|
||||
g.POST("", func(c echo.Context) error {
|
||||
member := new(db.Member)
|
||||
err := c.Bind(member)
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = member.Create(c.Request().Context(), c)
|
||||
if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
return c.JSON(200, member)
|
||||
})
|
||||
// Update a member
|
||||
g.PUT("/:id", func(c echo.Context) error {
|
||||
member := new(db.Member)
|
||||
searchID, err := strconv.Atoi(c.Param("id"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = member.GetByID(c.Request().Context(), searchID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
err = c.Bind(member)
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = member.Update(c.Request().Context(), c)
|
||||
if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
return c.JSON(200, member)
|
||||
})
|
||||
// Delete a member
|
||||
g.DELETE("/:id", func(c echo.Context) error {
|
||||
member := new(db.Member)
|
||||
searchID, err := strconv.Atoi(c.Param("id"))
|
||||
if err != nil {
|
||||
return c.JSON(400, err)
|
||||
}
|
||||
err = member.GetByID(c.Request().Context(), searchID)
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return c.JSON(404, err)
|
||||
} else if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
err = member.Delete(c.Request().Context(), c)
|
||||
if err != nil {
|
||||
return c.JSON(500, err)
|
||||
}
|
||||
return c.JSON(200, member)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user