refactored Search component
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import axios from '../../axios-movies'
|
||||
|
||||
export const FETCH_HEADER_MOVIE = 'FETCH_HEADER_MOVIE'
|
||||
export const FETCH_SEARCH_MOVIE = 'FETCH_SEARCH_MOVIE'
|
||||
export const FETCH_TRENDING = 'FETCH_TRENDING'
|
||||
export const FETCH_NETFLIX_ORIGINALS = 'FETCH_NETFLIX_ORIGINALS'
|
||||
export const FETCH_TOP_RATED = 'FETCH_TOP_RATED'
|
||||
@@ -10,15 +9,49 @@ export const FETCH_COMEDY_MOVIES = 'FETCH_COMEDY_MOVIES'
|
||||
export const FETCH_HORROR_MOVIES = 'FETCH_HORROR_MOVIES'
|
||||
export const FETCH_ROMANCE_MOVIES = 'FETCH_ROMANCE_MOVIES'
|
||||
export const FETCH_DOCUMENTARIES = 'FETCH_DOCUMENTARIES'
|
||||
// movie details
|
||||
export const FETCH_MOVIE_DETAILS = 'FETCH_MOVIE_DETAILS'
|
||||
export const FETCH_MOVIE_DETAILS_SUCCESS = 'FETCH_MOVIE_DETAILS_SUCCESS'
|
||||
export const FETCH_MOVIE_DETAILS_FAIL = 'FETCH_MOVIE_DETAILS_FAIL'
|
||||
// search
|
||||
export const FETCH_SEARCH_MOVIE = 'FETCH_SEARCH_MOVIE'
|
||||
export const FETCH_SEARCH_MOVIE_FAIL = 'FETCH_SEARCH_MOVIE_FAIL'
|
||||
export const FETCH_SEARCH_MOVIE_SUCCESS = 'FETCH_SEARCH_MOVIE_SUCCESS'
|
||||
|
||||
const media_type = {
|
||||
tv: 'tv',
|
||||
movie: 'movie',
|
||||
}
|
||||
|
||||
export const fetchMovieDetails = (mediaType, mediaId) => {
|
||||
return async (dispatch) => {
|
||||
try {
|
||||
dispatch({ type: FETCH_MOVIE_DETAILS })
|
||||
let urlPath
|
||||
if (mediaType === media_type.movie)
|
||||
urlPath = `/movie/${mediaId}?api_key=${process.env.API_KEY}`
|
||||
if (mediaType === media_type.tv)
|
||||
urlPath = `/tv/${mediaId}?api_key=${process.env.API_KEY}`
|
||||
|
||||
const request = await axios.get(urlPath)
|
||||
dispatch({ type: FETCH_MOVIE_DETAILS_SUCCESS, payload: request })
|
||||
} catch (error) {
|
||||
console.log('error', error)
|
||||
dispatch({ type: FETCH_MOVIE_DETAILS_FAIL })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const fetchSearchMovie = (searchTerm) => {
|
||||
return async (dispatch) => {
|
||||
try {
|
||||
dispatch({ type: FETCH_SEARCH_MOVIE })
|
||||
const request = await axios.get(
|
||||
`/search/multi?api_key=${process.env.API_KEY}&language=en-US&include_adult=false&query=${searchTerm}`
|
||||
)
|
||||
dispatch({ type: FETCH_SEARCH_MOVIE, payload: request })
|
||||
dispatch({ type: FETCH_SEARCH_MOVIE_SUCCESS, payload: request })
|
||||
} catch (error) {
|
||||
dispatch({ type: FETCH_SEARCH_MOVIE_FAIL })
|
||||
console.log('error', error)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user