Advertisement
justfrenzy

CrackFlix - frontend /src/components/App/onloadFunctions.tsx

May 12th, 2024
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TypeScript 3.66 KB | Source Code | 0 0
  1. import Cookies from "js-cookie";
  2. import { AppContextTypes } from "../../utils/AppContext";
  3.  
  4. const PopularMovies = async (
  5.     lang: AppContextTypes['defaultLanguage'],
  6.     page: number
  7. ): Promise<object> => {
  8.     const response = await Fetch(
  9.         `/api/movie/popular?lang=${lang}&page=${page}`,
  10.         {
  11.             method: "GET",
  12.         }
  13.     )
  14.         .then((res) => res.json())
  15.         .catch((err) => console.log(err));
  16.  
  17.     return response;
  18. };
  19.  
  20. const TrendingMovies = async (
  21.     lang: AppContextTypes['defaultLanguage'],
  22.     page: number
  23. ): Promise<object> => {
  24.     const response = await Fetch(
  25.         `/api/movie/trending?lang=${lang}&time_window=day&page=${page}`,
  26.         {
  27.             method: "GET",
  28.         }
  29.     )
  30.         .then((res) => res.json())
  31.         .catch((err) => console.log(err));
  32.  
  33.     return response;
  34. };
  35.  
  36. const NowPlayingMovies = async (
  37.     lang: AppContextTypes['defaultLanguage'],
  38.     page: number
  39. ): Promise<object> => {
  40.     const response = await Fetch(
  41.         `/api/movie/nowPlaying?lang=${lang}&page=${page}`,
  42.         {
  43.             method: "GET",
  44.         }
  45.     )
  46.         .then((res) => res.json())
  47.         .catch((err) => console.log(err));
  48.  
  49.     return response;
  50. };
  51.  
  52. const PopularTV = async (lang: AppContextTypes['defaultLanguage'], page: number): Promise<object> => {
  53.     const response = await Fetch(
  54.         `/api/tv/popular?lang=${lang}&page=${page}`,
  55.         {
  56.             method: "GET",
  57.         }
  58.     )
  59.         .then((res) => res.json())
  60.         .catch((err) => console.log(err));
  61.  
  62.     return response;
  63. };
  64.  
  65. const TrendingTV = async (lang: AppContextTypes['defaultLanguage'], page: number): Promise<object> => {
  66.     const response = await Fetch(
  67.         `/api/tv/trending?lang=${lang}&time_window=day&page=${page}`,
  68.         {
  69.             method: "GET",
  70.         }
  71.     )
  72.         .then((res) => res.json())
  73.         .catch((err) => console.log(err));
  74.  
  75.     return response;
  76. };
  77.  
  78. const NowPlayingTV = async (lang: AppContextTypes['defaultLanguage'], page: number): Promise<object> => {
  79.     // const url = new URL(`/api/tv/airingToday`);
  80.     // console.log(`goes here`);
  81.     // if (lang) {
  82.     //     lang === "bg"
  83.     //         ? url.searchParams.append("lang", "bg-BG")
  84.     //         : url.searchParams.append("lang", "en-US");
  85.     //     url.searchParams.append("page", `${page}`);
  86.     // }
  87.     const response = await Fetch(
  88.         `/api/tv/airingToday?lang=${lang}&page=${page}`,
  89.         {
  90.             method: "GET",
  91.         }
  92.     )
  93.         .then((res) => res.json())
  94.         .catch((err) => console.log(err));
  95.  
  96.     return response;
  97. };
  98.  
  99. const Load = async (token: string) => {
  100.     const response = await Fetch(`/api/user/load`, {
  101.         method: "GET",
  102.         headers: {
  103.             Accept: "application/json",
  104.             "Content-Type": "application/json",
  105.             "access-token": `${token}`,
  106.         },
  107.     })
  108.         .then((res) => res.json())
  109.         .catch((err) => console.log(err));
  110.     return response;
  111. };
  112.  
  113. const WatchListStatus = async (mediaId: number, mediaType: "Movie" | "TV") => {
  114.     const token = Cookies.get("access-token");
  115.     const response = await Fetch(
  116.         `/api/user/watchListStatus?id=${mediaId}&mediaType=${mediaType}`,
  117.         {
  118.             method: "GET",
  119.             headers: {
  120.                 Accept: "application/json",
  121.                 "Content-Type": "application/json",
  122.                 "access-token": `${token}`,
  123.             },
  124.         }
  125.     )
  126.         .then((res) => res.json())
  127.         .catch((err) => console.error(err));
  128.  
  129.     return response;
  130. };
  131.  
  132. const addSiteApiKeyHeader = (options : any) => {
  133.     const apiKey = import.meta.env.VITE_API_KEY;
  134.     if (apiKey) {
  135.         if (!options.headers) {
  136.             options.headers = {};
  137.         }
  138.         options.headers["site-api-key"] = apiKey;
  139.     }
  140.     return options;
  141. };
  142.  
  143. const Fetch = async (url : string, options: any) => {
  144.     options = addSiteApiKeyHeader(options);
  145.     return fetch(url, options);
  146. };
  147.  
  148.  
  149. export {
  150.     PopularMovies,
  151.     TrendingMovies,
  152.     NowPlayingMovies,
  153.     PopularTV,
  154.     TrendingTV,
  155.     NowPlayingTV,
  156.     Load,
  157.     WatchListStatus,
  158.     Fetch,
  159. };
  160.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement