FILE / Unmei/Backend

v1/genres_routes.go

Исходный файл и его история в репозитории.
FILE 104b1404b0ff906862052f6728ff3b3384e48c8c
Files
Backend/v1/genres_routes.go
T
2021-05-02 16:04:45 +03:00

39 lines
1.0 KiB
Go
Executable File

package v1
import (
"github.com/gorilla/mux"
"net/http"
"strconv"
)
func RegisterGenresRoutes(r *mux.Router) {
r.HandleFunc("/genres", resolveGenres).Methods("GET", "OPTIONS", "POST") // GET, POST
r.HandleFunc("/genres/{id:[0-9]+}", resolveGenre).Methods("GET", "OPTIONS", "PUT", "DELETE") // GET, PUT, DELETE
r.HandleFunc("/genres/{id:[0-9]+}/novels", resolveGenreNovels).Methods("GET", "OPTIONS") // GET
}
func resolveGenres(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodGet {
genres, err := FetchGenres()
Response(w, err, genres)
} else if r.Method == http.MethodPost {
RawError(w, "method not implemented")
}
}
func resolveGenre(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id, _ := strconv.Atoi(vars["id"])
genre, err := FetchGenre(id)
Response(w, err, genre)
}
func resolveGenreNovels(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id, _ := strconv.Atoi(vars["id"])
novels, err := FetchGenreNovels(id)
Response(w, err, novels)
}