42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package routes
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"git.artlef.fr/PersonalLibraryManager/internal/appcontext"
|
|
"git.artlef.fr/PersonalLibraryManager/internal/myvalidator"
|
|
"git.artlef.fr/PersonalLibraryManager/internal/query"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func GetSearchBooksHandler(ac appcontext.AppContext) {
|
|
searchterm := ac.C.Param("searchterm")
|
|
|
|
limit, err := ac.GetQueryLimit()
|
|
if err != nil {
|
|
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
|
return
|
|
}
|
|
offset, err := ac.GetQueryOffset()
|
|
if err != nil {
|
|
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
|
return
|
|
}
|
|
books, err := query.FetchBookSearchGet(ac.Db, searchterm, limit, offset)
|
|
if err != nil {
|
|
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
|
return
|
|
}
|
|
ac.C.JSON(http.StatusOK, books)
|
|
}
|
|
|
|
func GetSearchBooksCountHandler(ac appcontext.AppContext) {
|
|
searchterm := ac.C.Param("searchterm")
|
|
count, err := query.FetchBookSearchGetCount(ac.Db, searchterm)
|
|
if err != nil {
|
|
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
|
return
|
|
}
|
|
ac.C.JSON(http.StatusOK, gin.H{"count": count})
|
|
}
|