Implemented Publisher List functions
Signed-off-by: kolaente <konrad@kola-entertainments.de>
This commit is contained in:
parent
6ce0c553d4
commit
ce6c02a1cc
|
@ -9,4 +9,10 @@ type Publisher struct {
|
|||
|
||||
func (Publisher) TableName() string {
|
||||
return "publishers"
|
||||
}
|
||||
|
||||
func GetPublisherByID(id int64) (publisher Publisher, exists bool, err error) {
|
||||
has, err := x.Id(id).Get(&publisher)
|
||||
|
||||
return publisher, has, err
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package models
|
||||
|
||||
func ListPublishers() (publishers []Publisher, err error) {
|
||||
err = x.Find(&publishers)
|
||||
|
||||
if err != nil {
|
||||
return []Publisher{}, err
|
||||
}
|
||||
|
||||
return publishers, nil
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package v1
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo"
|
||||
"net/http"
|
||||
"git.mowie.cc/konrad/Library/models"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func PublisherShow(c echo.Context) error {
|
||||
publisher := c.Param("id")
|
||||
|
||||
if publisher == "" {
|
||||
return c.JSON(http.StatusBadRequest, models.Message{"Publisher ID cannot be empty."})
|
||||
}
|
||||
|
||||
// Make int
|
||||
publisherID, err := strconv.ParseInt(publisher, 10, 64)
|
||||
if err != nil {
|
||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting publisher infos."})
|
||||
}
|
||||
|
||||
// Get Publisher Infos
|
||||
publisherInfos, exists, err := models.GetPublisherByID(publisherID)
|
||||
|
||||
if err != nil {
|
||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting publisher infos."})
|
||||
}
|
||||
|
||||
// Check if it exists
|
||||
if !exists {
|
||||
return c.JSON(http.StatusNotFound, models.Message{"Publisher not found."})
|
||||
}
|
||||
|
||||
return c.JSON(http.StatusOK, publisherInfos)
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package v1
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo"
|
||||
"net/http"
|
||||
"git.mowie.cc/konrad/Library/models"
|
||||
)
|
||||
|
||||
func PublishersList(c echo.Context) error {
|
||||
|
||||
list, err := models.ListPublishers()
|
||||
|
||||
if err != nil{
|
||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting publishers"})
|
||||
}
|
||||
|
||||
return c.JSON(http.StatusOK, list)
|
||||
}
|
|
@ -35,6 +35,8 @@ func RegisterRoutes(e *echo.Echo) {
|
|||
a.GET("/authors/:id", apiv1.AuthorShow)
|
||||
|
||||
// Lookup Publishers
|
||||
a.GET("/publishers/list", apiv1.PublishersList)
|
||||
a.GET("/publishers/:id", apiv1.PublisherShow)
|
||||
|
||||
// Login Route
|
||||
e.POST("/login", Login)
|
||||
|
|
Loading…
Reference in New Issue