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"`
|
Publisher `xorm:"extends"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListBooks() (books []*Book, err error) {
|
func ListBooks(searchterm string) (books []*Book, err error) {
|
||||||
|
|
||||||
err = x.Table("books").
|
if searchterm == "" {
|
||||||
//Join("INNER", "publishers", "books.publisher = publishers.id").
|
err = x.Table("books").
|
||||||
Find(&books)
|
//Join("INNER", "publishers", "books.publisher = publishers.id").
|
||||||
if err != nil {
|
Find(&books)
|
||||||
fmt.Println("Error getting Books", err)
|
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
|
// Get all authors and publishers
|
||||||
for i, book := range books {
|
for i, book := range books {
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
|
|
||||||
func BookList(c echo.Context) error {
|
func BookList(c echo.Context) error {
|
||||||
|
|
||||||
list, err := models.ListBooks()
|
list, err := models.ListBooks("")
|
||||||
|
|
||||||
if err != nil{
|
if err != nil{
|
||||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting books"})
|
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
|
// Lookup Books
|
||||||
a.GET("/books/list", apiv1.BookList)
|
a.GET("/books/list", apiv1.BookList)
|
||||||
a.GET("/books/:id", apiv1.BookShow)
|
a.GET("/books/:id", apiv1.BookShow)
|
||||||
|
a.GET("/books/search", apiv1.BookSearch)
|
||||||
|
|
||||||
// Lookup Authors
|
// Lookup Authors
|
||||||
a.GET("/authors/list", apiv1.AuthorsList)
|
a.GET("/authors/list", apiv1.AuthorsList)
|
||||||
|
@ -66,24 +67,24 @@ func RegisterRoutes(e *echo.Echo) {
|
||||||
/login - Einloggen
|
/login - Einloggen
|
||||||
/logout - ausloggen
|
/logout - ausloggen
|
||||||
|
|
||||||
/books/:id - Buch anzeigen
|
/books/:id - ✔ Buch anzeigen
|
||||||
/books/:id/edit - |Buch bearbeiten (inkl mengen)
|
/books/:id/edit - |Buch bearbeiten (inkl mengen)
|
||||||
/books/:id/delete - |Buch löschen
|
/books/:id/delete - |Buch löschen
|
||||||
/books/search?s=se - Suchen
|
/books/search?s=se - Suchen
|
||||||
/books/list - Auflisten
|
/books/list - ✔ Auflisten
|
||||||
/books/add - |Hinzufügen
|
/books/add - ✔ |Hinzufügen
|
||||||
|
|
||||||
/authors/:id - Autor anzeigen
|
/authors/:id - ✔ Autor anzeigen
|
||||||
/authors/:id/edit - |Autor bearbeiten
|
/authors/:id/edit - |Autor bearbeiten
|
||||||
/authors/:id/delete - |Autor löschen (auch mit allem in books_author)
|
/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/search?s=d - Autoren suchen
|
||||||
/authors/add - |Hinzufügen
|
/authors/add - |Hinzufügen
|
||||||
|
|
||||||
/publishers/:id - Verlag anzeigen
|
/publishers/:id - ✔ Verlag anzeigen
|
||||||
/publishers/:id/edit - |Verlag bearbeiten
|
/publishers/:id/edit - |Verlag bearbeiten
|
||||||
/publishers/:id/delete - |Verlag löschen (bei büchern Verlag auf 0 setzen)
|
/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/search?s= - Verlage suchen
|
||||||
/publishers/add - |Hinzufügen
|
/publishers/add - |Hinzufügen
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue