implemented books search

Signed-off-by: kolaente <konrad@kola-entertainments.de>
This commit is contained in:
konrad 2017-10-10 21:40:14 +02:00 committed by kolaente
parent ce6c02a1cc
commit 38fdf9cbd8
4 changed files with 48 additions and 14 deletions

View File

@ -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 {

View File

@ -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"})

View File

@ -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)
}

View File

@ -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