implemented books search
Signed-off-by: kolaente <konrad@kola-entertainments.de>
This commit is contained in:
parent
ce6c02a1cc
commit
38fdf9cbd8
|
@ -7,15 +7,23 @@ type BookPublisher struct {
|
|||
Publisher `xorm:"extends"`
|
||||
}
|
||||
|
||||
func ListBooks() (books []*Book, err error) {
|
||||
func ListBooks(searchterm string) (books []*Book, err error) {
|
||||
|
||||
err = x.Table("books").
|
||||
//Join("INNER", "publishers", "books.publisher = publishers.id").
|
||||
Find(&books)
|
||||
if err != nil {
|
||||
fmt.Println("Error getting Books", err)
|
||||
if searchterm == "" {
|
||||
err = x.Table("books").
|
||||
//Join("INNER", "publishers", "books.publisher = publishers.id").
|
||||
Find(&books)
|
||||
if err != nil {
|
||||
fmt.Println("Error getting Books", err)
|
||||
}
|
||||
} else {
|
||||
err = x.Where("title LIKE ?", "%" + searchterm + "%").Find(&books)
|
||||
if err != nil {
|
||||
fmt.Println("Error getting Books", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Get all authors and publishers
|
||||
for i, book := range books {
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
func BookList(c echo.Context) error {
|
||||
|
||||
list, err := models.ListBooks()
|
||||
list, err := models.ListBooks("")
|
||||
|
||||
if err != nil{
|
||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting books"})
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package v1
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo"
|
||||
"net/http"
|
||||
|
||||
"git.mowie.cc/konrad/Library/models"
|
||||
)
|
||||
|
||||
func BookSearch(c echo.Context) error {
|
||||
|
||||
search := c.QueryParam("s")
|
||||
|
||||
if search == "" {
|
||||
return c.JSON(http.StatusBadRequest, models.Message{"Search cannot be empty."})
|
||||
}
|
||||
|
||||
list, err := models.ListBooks(search)
|
||||
|
||||
if err != nil{
|
||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting books"})
|
||||
}
|
||||
|
||||
return c.JSON(http.StatusOK, list)
|
||||
}
|
|
@ -29,6 +29,7 @@ func RegisterRoutes(e *echo.Echo) {
|
|||
// Lookup Books
|
||||
a.GET("/books/list", apiv1.BookList)
|
||||
a.GET("/books/:id", apiv1.BookShow)
|
||||
a.GET("/books/search", apiv1.BookSearch)
|
||||
|
||||
// Lookup Authors
|
||||
a.GET("/authors/list", apiv1.AuthorsList)
|
||||
|
@ -66,24 +67,24 @@ func RegisterRoutes(e *echo.Echo) {
|
|||
/login - Einloggen
|
||||
/logout - ausloggen
|
||||
|
||||
/books/:id - Buch anzeigen
|
||||
/books/:id - ✔ Buch anzeigen
|
||||
/books/:id/edit - |Buch bearbeiten (inkl mengen)
|
||||
/books/:id/delete - |Buch löschen
|
||||
/books/search?s=se - Suchen
|
||||
/books/list - Auflisten
|
||||
/books/add - |Hinzufügen
|
||||
/books/list - ✔ Auflisten
|
||||
/books/add - ✔ |Hinzufügen
|
||||
|
||||
/authors/:id - Autor anzeigen
|
||||
/authors/:id - ✔ Autor anzeigen
|
||||
/authors/:id/edit - |Autor bearbeiten
|
||||
/authors/:id/delete - |Autor löschen (auch mit allem in books_author)
|
||||
/authors/list - Autoren auflisten
|
||||
/authors/list - ✔ Autoren auflisten
|
||||
/authors/search?s=d - Autoren suchen
|
||||
/authors/add - |Hinzufügen
|
||||
|
||||
/publishers/:id - Verlag anzeigen
|
||||
/publishers/:id - ✔ Verlag anzeigen
|
||||
/publishers/:id/edit - |Verlag bearbeiten
|
||||
/publishers/:id/delete - |Verlag löschen (bei büchern Verlag auf 0 setzen)
|
||||
/publishers/list - Verlage auflisten
|
||||
/publishers/list - ✔ Verlage auflisten
|
||||
/publishers/search?s= - Verlage suchen
|
||||
/publishers/add - |Hinzufügen
|
||||
|
||||
|
|
Loading…
Reference in New Issue