INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('171','2','u6/driver','','js/api/auth.js-','import {\r\n API_URL,\r\n TIMEOUT_MS_HIGHER\r\n} from \\\"./consts.js\\\"\r\nimport store from \\\"../store.js\\\"\r\n\r\nexport const getSessionUser = async () => {\r\n // get session from somewhere \r\n if (store.state.user) {\r\n return store.state.user\r\n }\r\n\r\n // check in local storage\r\n const session = window.localStorage.getItem(\\\\\\\'token\\\\\\\')\r\n if (session) {\r\n return session\r\n }\r\n\r\n return null\r\n}\r\n\r\nexport const getUserDetails = async (token) => {\r\n try {\r\n let url = `${API_URL}/wp-json/app/v1/get-user-profile/`\r\n let response = await fetch(url, {\r\n method: \\\"POST\\\",\r\n mode: \\\\\\\'cors\\\\\\\',\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n \\\"Authorization\\\": `Bearer ${token}`,\r\n },\r\n })\r\n\r\n const data = await response.json()\r\n\r\n if (response.status !== 200) throw new Error(data.message)\r\n return data\r\n } catch (error) {\r\n console.error(\\\\\\\'Error fetching user details:\\\\\\\', error)\r\n return null\r\n }\r\n}\r\n\r\nexport const verifyUser = async (credentials) => {\r\n try {\r\n // Convert the credentials object to a URL query string\r\n const queryParams = new URLSearchParams(credentials).toString()\r\n\r\n // Make a GET request with the query parameters\r\n const response = await fetch(`${API_URL}/wp-json/ticket_scanner/v1/verify_user/?${queryParams}`, {\r\n method: \\\"GET\\\",\r\n mode: \\\\\\\'cors\\\\\\\',\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n },\r\n })\r\n\r\n if (response.ok) {\r\n return await response.json()\r\n } else {\r\n console.error(\\\\\\\'Failed to verify user:\\\\\\\', response.statusText)\r\n return null\r\n }\r\n } catch (error) {\r\n console.error(error)\r\n return error\r\n }\r\n}\r\n\r\nexport const handleSignUp = async (user) => {\r\n try {\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/register-user`, {\r\n method: \\\"POST\\\",\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n },\r\n body: JSON.stringify(user),\r\n })\r\n\r\n const data = await response.json()\r\n\r\n if (response.status !== 201) {\r\n return {\r\n success: false,\r\n message: data.message,\r\n code: data.code,\r\n }\r\n }\r\n\r\n return data\r\n } catch (error) {\r\n return error\r\n }\r\n}\r\n\r\nexport const updateUsername = async (username, user_id = null) => {\r\n const controller = new AbortController()\r\n const signal = controller.signal\r\n\r\n try {\r\n if (!user_id) {\r\n const user = await getSessionUser();\r\n if (!user) return {\r\n success: false,\r\n message: \\\\\\\'User id not provided\\\\\\\'\r\n };\r\n user_id = user.id\r\n }\r\n\r\n setTimeout(() => {\r\n controller.abort()\r\n }, TIMEOUT_MS_HIGHER)\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/update-username`, {\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 username\r\n }),\r\n signal\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n } catch (error) {\r\n if (error.name === \\\\\\\'AbortError\\\\\\\') {\r\n throw {\r\n message: \\\"Failed to update your username, your connection timed out\\\",\r\n name: \\\"TimeOutError\\\"\r\n };\r\n } else {\r\n throw error; // Rethrow any other errors\r\n }\r\n }\r\n}\r\n\r\nexport const updateContentIds = async (content_ids, user_id) => {\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/update-selected-content`, {\r\n method: \\\"POST\\\",\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id,\r\n content_ids\r\n }),\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n}\r\n\r\nexport const updateAboutUserIds = async (content_ids, user_id) => {\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/update-about-content`, {\r\n method: \\\"POST\\\",\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id,\r\n content_ids\r\n }),\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n}\r\n\r\nexport const updatePassword = async (new_password, old_password) => {\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 if (!user) return\r\n\r\n setTimeout(() => {\r\n controller.abort()\r\n }, TIMEOUT_MS_HIGHER)\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/update-password`, {\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 new_password,\r\n old_password\r\n }),\r\n signal\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n } catch (error) {\r\n if (error.name === \\\\\\\'AbortError\\\\\\\') {\r\n throw {\r\n message: \\\"Failed to update your password, your connection timed out\\\",\r\n name: \\\"TimeOutError\\\"\r\n };\r\n } else {\r\n throw error; // Rethrow any other errors\r\n }\r\n }\r\n}\r\n\r\nexport const updateUserDetails = async (details, email_changed) => {\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 if (!user) return;\r\n\r\n setTimeout(() => {\r\n controller.abort()\r\n }, TIMEOUT_MS_HIGHER)\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/update-user-details`, {\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 ...details,\r\n email_changed\r\n }),\r\n signal\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n } catch (error) {\r\n if (error.name === \\\\\\\'AbortError\\\\\\\') {\r\n throw {\r\n message: \\\"Failed to update your details, your connection timed out\\\",\r\n name: \\\"TimeOutError\\\"\r\n };\r\n } else {\r\n throw error; // Rethrow any other errors\r\n }\r\n }\r\n};\r\n\r\nexport const getUserById = async (id) => {\r\n try {\r\n let url = `${API_URL}/wp-json/app/v1/get-user-profile-next`\r\n let response = await fetch(url, {\r\n method: \\\"POST\\\",\r\n headers: {\r\n \\\"Content-Type\\\": \\\"application/json\\\",\r\n },\r\n body: JSON.stringify({\r\n user_id: id\r\n }),\r\n })\r\n\r\n const data = await response.json()\r\n\r\n if (response.status !== 200) throw new Error(data.message)\r\n return data\r\n } catch (error) {\r\n console.error(\\\\\\\'Error fetching user details:\\\\\\\', error)\r\n return null\r\n }\r\n}\r\n\r\nexport const getUserNotifications = async () => {\r\n try {\r\n const user = await getSessionUser()\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-notifications`, {\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 }),\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n } catch (error) {\r\n console.error(\\\\\\\'Error fetching user notifications:\\\\\\\', error)\r\n return null\r\n }\r\n}\r\n\r\nexport const getNotificationCount = async () => {\r\n const user = await getSessionUser()\r\n if (!user || !user.id) return\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/get-new-notifications-count`, {\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 }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const markMultipleNotificationsAsRead = async (notificationIds) => {\r\n const user = await getSessionUser();\r\n if (!user) return null;\r\n\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/bulk-notifications-read`, {\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 }),\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n};\r\n\r\nexport const deleteUserAccount = async (password) => {\r\n const user = await getSessionUser()\r\n if (!user || !user.id) return\r\n\r\n try {\r\n const response = await fetch(`${API_URL}/wp-json/app/v1/delete_account`, {\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 password\r\n }),\r\n })\r\n\r\n const data = await response.json()\r\n return data\r\n } catch (error) {\r\n return {\r\n success: false,\r\n message: \\\\\\\'Oops, unable to delete your account. Please try again later.\\\\\\\'\r\n }\r\n }\r\n}');