INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('254','4','u8/manager','','js/api/discover.js--','import {\r\n getSessionUser\r\n} from \\\\\\\"./auth.js\\\\\\\";\r\nimport {\r\n API_URL\r\n} from \\\\\\\"./consts.js\\\\\\\";\r\n\r\n/**\r\n * Fetches the discover data\r\n * \r\n * @param {string} search\r\n * @param {\\\\\\\\\\\\\\\'users\\\\\\\\\\\\\\\' | \\\\\\\\\\\\\\\'events\\\\\\\\\\\\\\\' | \\\\\\\\\\\\\\\'venues\\\\\\\\\\\\\\\' | \\\\\\\\\\\\\\\'all\\\\\\\\\\\\\\\'} type \r\n * @param {number} page default 1\r\n * \r\n */\r\nexport const getDiscoverData = async (search, type, page = 1, signal) => {\r\n const user = await getSessionUser();\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/discover-search`, {\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n search,\r\n user_id: user?.id,\r\n page,\r\n type,\r\n per_page: 10\r\n }),\r\n signal\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n};\r\n\r\nexport const fetchEvent = async (eventId) => {\r\n let user;\r\n try {\r\n user = await getSessionUser();\r\n } catch (e) {\r\n console.error(\\\\\\\"Error fetching user no session\\\\\\\");\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-event`, {\r\n cache: \\\\\\\"no-cache\\\\\\\",\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n event_id: eventId,\r\n user_id: user?.id\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n if (response.status !== 200) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data;\r\n};\r\n\r\nexport const fetchTrendingEvents = async (page, paginate = false, filters = null) => {\r\n const controller = new AbortController()\r\n const signal = controller.signal\r\n\r\n try {\r\n const user = await getSessionUser();\r\n\r\n if (!user) {\r\n throw new Error(\\\\\\\\\\\\\\\'Session user not found\\\\\\\\\\\\\\\');\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-events-trending`, {\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id: user.id,\r\n page,\r\n per_page: 10,\r\n paginate,\r\n filters\r\n }),\r\n signal\r\n });\r\n\r\n const data = await response.json();\r\n\r\n if (!data) {\r\n throw new Error(\\\\\\\\\\\\\\\'Failed to fetch trending events\\\\\\\\\\\\\\\');\r\n }\r\n\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const fetchTrendingVenues = async (page, paginate = false, filters = \\\\\\\\\\\\\\\'{}\\\\\\\\\\\\\\\') => {\r\n try {\r\n const user = await getSessionUser();\r\n\r\n if (!user) {\r\n throw new Error(\\\\\\\\\\\\\\\'Session user not found\\\\\\\\\\\\\\\');\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-venues-trending`, {\r\n method: \\\\\\\"POST\\\\\\\",\r\n cache: \\\\\\\"force-cache\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id: user.id,\r\n page,\r\n per_page: 10,\r\n paginate,\r\n filters\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const fetchEventCats = async () => {\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-event-categories`, {\r\n method: \\\\\\\"GET\\\\\\\",\r\n cache: \\\\\\\"force-cache\\\\\\\",\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n};\r\n\r\nexport const maybeFavoriteEvent = async (eventId) => {\r\n const user = await getSessionUser();\r\n\r\n if (!user || !user.id) {\r\n return null;\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/favourite-event`, {\r\n cache: \\\\\\\"no-cache\\\\\\\",\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n event_id: eventId,\r\n user_id: user.id\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n};\r\n\r\nexport const maybeFollowVenue = async (venueId) => {\r\n const user = await getSessionUser();\r\n\r\n if (!user || !user.id) {\r\n return null;\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/follow-venue`, {\r\n cache: \\\\\\\"no-cache\\\\\\\",\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n venue_id: venueId,\r\n user_id: user.id\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const fetchVenue = async (venueId) => {\r\n const user = await getSessionUser();\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-venue`, {\r\n cache: \\\\\\\"no-cache\\\\\\\",\r\n method: \\\\\\\"POST\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n venue_id: venueId,\r\n user_id: user?.id\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n if (response.status !== 200) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data;\r\n}\r\n\r\nexport const fetchTrendingUsers = async (page) => {\r\n try {\r\n const user = await getSessionUser();\r\n\r\n if (!user) {\r\n throw new Error(\\\\\\\\\\\\\\\'Session user not found\\\\\\\\\\\\\\\');\r\n }\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/popular-users-cars`, {\r\n method: \\\\\\\"POST\\\\\\\",\r\n cache: \\\\\\\"force-cache\\\\\\\",\r\n headers: {\r\n \\\\\\\"Content-Type\\\\\\\": \\\\\\\"application/json\\\\\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id: user.id,\r\n page,\r\n per_page: 10,\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};');