moviedb/backend/getViews.go

79 lines
1.7 KiB
Go

package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"strconv"
"github.com/gorilla/mux"
)
func homeLink(w http.ResponseWriter, r *http.Request) {
movies, err := db.GetMovies()
if err != nil {
log.Fatal("Error showing homepage (all movies)")
}
json.NewEncoder(w).Encode(movies)
}
func getMovies(w http.ResponseWriter, r *http.Request) {
movies, err := db.GetMovies()
if err != nil {
log.Fatal("Error getting all movies")
}
json.NewEncoder(w).Encode(movies)
}
func getOneMovie(w http.ResponseWriter, r *http.Request) {
movieIDstr := mux.Vars(r)["id"]
movieID, err := strconv.Atoi(movieIDstr)
if err != nil {
log.Println("Error: invalid movie ID passed")
return
}
mov, err := db.GetMovieById(movieID)
if err != nil {
log.Fatal("Error getting one movie")
}
json.NewEncoder(w).Encode(mov)
}
func getTaggedMovies(w http.ResponseWriter, r *http.Request) {
tagIDstr := mux.Vars(r)["id"]
tagID, err := strconv.Atoi(tagIDstr)
if err != nil {
fmt.Fprintf(w, "Error: invalid tag ID passed")
return
}
movies, err := db.GetMoviesByTag(tagID)
if err != nil {
fmt.Fprintf(w, "Error fetching movies by tag")
return
}
json.NewEncoder(w).Encode(movies)
}
func getTags(w http.ResponseWriter, r *http.Request) {
tags, err := db.GetTags()
if err != nil {
log.Fatal("Error getting all tags")
}
json.NewEncoder(w).Encode(tags)
}
func getOneTag(w http.ResponseWriter, r *http.Request) {
tagIDstr := mux.Vars(r)["id"]
tagID, err := strconv.Atoi(tagIDstr)
if err != nil {
log.Println("Error: invalid tag ID passed")
return
}
tag, err := db.GetTagById(tagID)
if err != nil {
log.Fatal("Error getting one tag")
}
json.NewEncoder(w).Encode(tag)
}