mirror of
https://gitlab.com/foxixus/neomovies-api.git
synced 2025-10-28 01:48:51 +05:00
Compare commits
5 Commits
39c8366ae1
...
567b287322
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
567b287322 | ||
|
|
03091b0fc3 | ||
|
|
42d38ba0d1 | ||
|
|
859a7fd380 | ||
|
|
303079740f |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -2,4 +2,12 @@
|
|||||||
.env.local
|
.env.local
|
||||||
node_modules
|
node_modules
|
||||||
package-lock.json
|
package-lock.json
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
# Binaries
|
||||||
|
bin/
|
||||||
|
main
|
||||||
|
*.exe
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
neomovies-api
|
||||||
|
|||||||
35
pkg/handlers/lang_helper.go
Normal file
35
pkg/handlers/lang_helper.go
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package handlers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetLanguage extracts the lang parameter from request and returns it with default "ru"
|
||||||
|
// Supports both "lang" and "language" query parameters
|
||||||
|
// Valid values: "ru", "en"
|
||||||
|
// Default: "ru"
|
||||||
|
func GetLanguage(r *http.Request) string {
|
||||||
|
// Check "lang" parameter first (our new standard)
|
||||||
|
lang := r.URL.Query().Get("lang")
|
||||||
|
|
||||||
|
// Fall back to "language" for backward compatibility
|
||||||
|
if lang == "" {
|
||||||
|
lang = r.URL.Query().Get("language")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default to "ru" if not specified
|
||||||
|
if lang == "" {
|
||||||
|
return "ru-RU"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert short codes to TMDB format
|
||||||
|
switch lang {
|
||||||
|
case "en":
|
||||||
|
return "en-US"
|
||||||
|
case "ru":
|
||||||
|
return "ru-RU"
|
||||||
|
default:
|
||||||
|
// Return as-is if already in correct format
|
||||||
|
return lang
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,7 +29,7 @@ func (h *MovieHandler) Search(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
region := r.URL.Query().Get("region")
|
region := r.URL.Query().Get("region")
|
||||||
year := getIntQuery(r, "year", 0)
|
year := getIntQuery(r, "year", 0)
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ func (h *MovieHandler) GetByID(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
movie, err := h.movieService.GetByID(id, language)
|
movie, err := h.movieService.GetByID(id, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -71,7 +71,7 @@ func (h *MovieHandler) GetByID(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *MovieHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
func (h *MovieHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
region := r.URL.Query().Get("region")
|
region := r.URL.Query().Get("region")
|
||||||
|
|
||||||
movies, err := h.movieService.GetPopular(page, language, region)
|
movies, err := h.movieService.GetPopular(page, language, region)
|
||||||
@@ -89,7 +89,7 @@ func (h *MovieHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *MovieHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
func (h *MovieHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
region := r.URL.Query().Get("region")
|
region := r.URL.Query().Get("region")
|
||||||
|
|
||||||
movies, err := h.movieService.GetTopRated(page, language, region)
|
movies, err := h.movieService.GetTopRated(page, language, region)
|
||||||
@@ -107,7 +107,7 @@ func (h *MovieHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *MovieHandler) Upcoming(w http.ResponseWriter, r *http.Request) {
|
func (h *MovieHandler) Upcoming(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
region := r.URL.Query().Get("region")
|
region := r.URL.Query().Get("region")
|
||||||
|
|
||||||
movies, err := h.movieService.GetUpcoming(page, language, region)
|
movies, err := h.movieService.GetUpcoming(page, language, region)
|
||||||
@@ -125,7 +125,7 @@ func (h *MovieHandler) Upcoming(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *MovieHandler) NowPlaying(w http.ResponseWriter, r *http.Request) {
|
func (h *MovieHandler) NowPlaying(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
region := r.URL.Query().Get("region")
|
region := r.URL.Query().Get("region")
|
||||||
|
|
||||||
movies, err := h.movieService.GetNowPlaying(page, language, region)
|
movies, err := h.movieService.GetNowPlaying(page, language, region)
|
||||||
@@ -150,7 +150,7 @@ func (h *MovieHandler) GetRecommendations(w http.ResponseWriter, r *http.Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
movies, err := h.movieService.GetRecommendations(id, page, language)
|
movies, err := h.movieService.GetRecommendations(id, page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -174,7 +174,7 @@ func (h *MovieHandler) GetSimilar(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
movies, err := h.movieService.GetSimilar(id, page, language)
|
movies, err := h.movieService.GetSimilar(id, page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -26,10 +26,7 @@ func (h *SearchHandler) MultiSearch(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
if language == "" {
|
|
||||||
language = "ru-RU"
|
|
||||||
}
|
|
||||||
|
|
||||||
results, err := h.tmdbService.SearchMulti(query, page, language)
|
results, err := h.tmdbService.SearchMulti(query, page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func (h *TVHandler) Search(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
year := getIntQuery(r, "first_air_date_year", 0)
|
year := getIntQuery(r, "first_air_date_year", 0)
|
||||||
|
|
||||||
tvShows, err := h.tvService.Search(query, page, language, year)
|
tvShows, err := h.tvService.Search(query, page, language, year)
|
||||||
@@ -53,7 +53,7 @@ func (h *TVHandler) GetByID(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShow, err := h.tvService.GetByID(id, language)
|
tvShow, err := h.tvService.GetByID(id, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -70,7 +70,7 @@ func (h *TVHandler) GetByID(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *TVHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
func (h *TVHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetPopular(page, language)
|
tvShows, err := h.tvService.GetPopular(page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -87,7 +87,7 @@ func (h *TVHandler) Popular(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *TVHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
func (h *TVHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetTopRated(page, language)
|
tvShows, err := h.tvService.GetTopRated(page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -104,7 +104,7 @@ func (h *TVHandler) TopRated(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *TVHandler) OnTheAir(w http.ResponseWriter, r *http.Request) {
|
func (h *TVHandler) OnTheAir(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetOnTheAir(page, language)
|
tvShows, err := h.tvService.GetOnTheAir(page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -121,7 +121,7 @@ func (h *TVHandler) OnTheAir(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (h *TVHandler) AiringToday(w http.ResponseWriter, r *http.Request) {
|
func (h *TVHandler) AiringToday(w http.ResponseWriter, r *http.Request) {
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetAiringToday(page, language)
|
tvShows, err := h.tvService.GetAiringToday(page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -145,7 +145,7 @@ func (h *TVHandler) GetRecommendations(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetRecommendations(id, page, language)
|
tvShows, err := h.tvService.GetRecommendations(id, page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -169,7 +169,7 @@ func (h *TVHandler) GetSimilar(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page := getIntQuery(r, "page", 1)
|
page := getIntQuery(r, "page", 1)
|
||||||
language := r.URL.Query().Get("language")
|
language := GetLanguage(r)
|
||||||
|
|
||||||
tvShows, err := h.tvService.GetSimilar(id, page, language)
|
tvShows, err := h.tvService.GetSimilar(id, page, language)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user