36 lines
651 B
Go
36 lines
651 B
Go
package pokemon
|
|
|
|
import (
|
|
"fmt"
|
|
"gorm.io/gorm"
|
|
"net/http"
|
|
"pokedex/rest"
|
|
)
|
|
|
|
func HandleFindSingle(db *gorm.DB, rw http.ResponseWriter, req *http.Request) {
|
|
repo := NewRepo(db)
|
|
name := req.PathValue("name")
|
|
fmt.Println("Path " + name)
|
|
|
|
pk, err := repo.Find(name)
|
|
if err != nil {
|
|
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
rest.Json(rw, []Pokemon{
|
|
pk,
|
|
})
|
|
}
|
|
|
|
func HandleFindAll(db *gorm.DB, rw http.ResponseWriter, req *http.Request) {
|
|
repo := NewRepo(db)
|
|
pokemons, err := repo.FindAll()
|
|
if err != nil {
|
|
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
rest.Json(rw, pokemons)
|
|
}
|