movie.api.js 2.07 KB
Newer Older
1
import axios from "axios";
Jiwon Yoon's avatar
Jiwon Yoon committed
2
import { baseUrl, TMDBUrl } from "../utils/baseUrl.js";
3

Kim, Subin's avatar
Kim, Subin committed
4
5
6
7
8
9
10
11
const getAllfromTM = async () => {
    const payload = {
        params: {
            pageNum: 1
        }
    }
    const { data } = await axios.get(`${baseUrl}/api/movie/all`, payload)
    return data
12
}
13

Jiwon Yoon's avatar
Jiwon Yoon committed
14
const getMoviesfromTM = async (category) => {
Jiwon Yoon's avatar
Jiwon Yoon committed
15
16
    const response = await axios.get(`${baseUrl}/api/movie/showmovies/${category}`)
    return response.data
Jiwon Yoon's avatar
Jiwon Yoon committed
17
}
18

Jiwon Yoon's avatar
Jiwon Yoon committed
19
20
const getMovieInfofromTM = async (id) => {
    const movieId = id
Jiwon Yoon's avatar
Jiwon Yoon committed
21
22
    const response = await axios.get(`${TMDBUrl}/${movieId}?api_key=${process.env.REACT_APP_TMDB_API_KEY}&language=ko-KR`)
    return response.data
Jiwon Yoon's avatar
Jiwon Yoon committed
23
}
24

Jiwon Yoon's avatar
Jiwon Yoon committed
25
26
27
28
29
const getImagesfromTM = async (id) => {
    const movieId = id
    const response = await axios.get(`${TMDBUrl}/${movieId}/images?api_key=${process.env.REACT_APP_TMDB_API_KEY}`)
    return response.data
}
30

Jiwon Yoon's avatar
Jiwon Yoon committed
31
32
33
34
35
36
37
38
39
40
41
42
const getCreditsfromTM = async (id) =>{
    const movieId = id
    const response = await axios.get(`${TMDBUrl}/${movieId}/credits?api_key=${process.env.REACT_APP_TMDB_API_KEY}`)
    return response.data
}

const getVideosfromTM = async (id) =>{
    const movieId = id
    const response = await axios.get(`${TMDBUrl}/${movieId}/videos?api_key=${process.env.REACT_APP_TMDB_API_KEY}`)
    return response.data.results
}

43
44
45
46
47
const getListfromDB = async () => {
    const { data } = await axios.get(`${baseUrl}/api/movie`)
    return data
}

48
49
const submit = async (movieId) => {
    const { data } = await axios.post(`${baseUrl}/api/movie/${movieId}`)
50
    return data
51
52
}

Kim, Subin's avatar
Kim, Subin committed
53
54
55
56
57
const remove = async (movieId) => {
    const { data } = await axios.delete(`${baseUrl}/api/movie/${movieId}`)
    return data
}

Kim, Subin's avatar
Kim, Subin committed
58
const search = async ({ type, keyword }) => {
Kim, Subin's avatar
Kim, Subin committed
59
60
    const payload = {
        params: {
Kim, Subin's avatar
Kim, Subin committed
61
            keyword
Kim, Subin's avatar
Kim, Subin committed
62
63
        }
    }
Kim, Subin's avatar
Kim, Subin committed
64
    const { data } = await axios.get(`${baseUrl}/api/movie/search/${type}`, payload)
Kim, Subin's avatar
Kim, Subin committed
65
    return data
66
67
68
}

const movieApi = {
Kim, Subin's avatar
Kim, Subin committed
69
    getAllfromTM,
Jiwon Yoon's avatar
Jiwon Yoon committed
70
71
    getMoviesfromTM,
    getMovieInfofromTM,
Jiwon Yoon's avatar
Jiwon Yoon committed
72
73
74
    getImagesfromTM,
    getCreditsfromTM,
    getVideosfromTM,
75
    getListfromDB,
Kim, Subin's avatar
Kim, Subin committed
76
77
    submit,
    remove,
Jiwon Yoon's avatar
Jiwon Yoon committed
78
    search,
79
80
81
}

export default movieApi