{"version":3,"file":"useSocket-OhKbs9Vl.js","sources":["../../src/composition-api/useSocket.js"],"sourcesContent":["// const PusherJS = require('pusher-js');\nimport { ref, onUnmounted, onMounted, provide, watch } from \"vue\";\nimport last from \"lodash/last\";\nimport Pusher from \"pusher-js\";\nimport API from \"@/services/api\";\nimport axios from \"axios\";\nimport oneRater from \"@/stores/onerater\";\nimport { useToast } from \"vue-toastification\";\nimport { useRouter } from \"vue-router\";\nimport HtmlRender from \"@/components/HtmlRender.vue\";\nimport { useTimeoutFn } from \"@vueuse/core\";\n\nconst PUSHER_APP_KEY = import.meta.env.VITE_PUSHER_APP_KEY;\nconst PUSHER_HOST = import.meta.env.VITE_PUSHER_HOST;\nconst PUSHER_PORT = import.meta.env.VITE_PUSHER_PORT;\nconst PUSHER_APP_CLUSTER = import.meta.env.VITE_PUSHER_APP_CLUSTER;\nconst mode = import.meta.env.MODE;\n\nimport { useModalAddress } from \"@/composables/modals\";\n\nexport default (initial) => {\n const store = oneRater();\n const router = useRouter();\n const toast = useToast();\n const socketError = ref(null);\n let client = null;\n\n const clearMessage = (msg) => {\n return msg.replace(/Error:|Invalid Entry.|Error:Invalid Entry./gi, \"\");\n };\n\n const chechAddressError = (m) => {\n const { open: openModal, close } = useModalAddress({\n // onClosed: () => close(),\n });\n const addressError = m.filter(({ provider_id }) => provider_id == 5);\n const err = last(addressError);\n\n if (\n err &&\n err?.message === \"Quote Error - County is missing; Invalid Address \"\n ) {\n // $bus.add('addressModal', true)\n openModal();\n }\n if (\n err &&\n err?.message ===\n \"Quote Error - Invalid State, Form Combination for Rating \"\n ) {\n store.SET_UPDATE_QUOTE_ERROR();\n router.push({ name: \"insurance.applicant\" });\n }\n };\n //\n const displayErrors = (response, all = false) => {\n try {\n const alerts = Array.isArray(response) ? response : response?.alerts;\n\n if (Array.isArray(alerts) && alerts?.length && (response?.alert || all)) {\n chechAddressError(alerts);\n if (all) {\n toast.error(\n {\n component: HtmlRender,\n props: {\n text: 'Please contact us 1-224-348-2400',\n },\n },\n 180000,\n );\n\n alerts.forEach((el) => {\n toast.error(\n {\n component: HtmlRender,\n props: {\n text: `${clearMessage(el?.message)}`,\n },\n },\n 180000,\n );\n });\n } else {\n const err = last(alerts);\n toast.error(\n {\n component: HtmlRender,\n props: {\n text: `${clearMessage(err?.message)}\n
\n
\n Please contact us 1-224-348-2400\n `,\n },\n },\n 180000,\n );\n }\n } else {\n toast.error(\n {\n component: HtmlRender,\n props: {\n text: 'Please contact us 1-224-348-2400', // Optional\n },\n },\n 180000,\n );\n }\n } catch (error) {\n return Promise.resolve();\n }\n };\n\n const disconnectSocketRater = () => {\n if (client != null) {\n client.disconnect();\n client = null;\n }\n };\n\n const socketUnstablishError = () => {\n disconnectSocketRater();\n store.SET_SOCKET_ID(null);\n store.SET_UPDATE_QUOTE_ERROR();\n toast.error(\"An error occurred, please try again\");\n router.push({ name: \"insurance.drivers\" });\n };\n\n const { isPending, start, stop } = useTimeoutFn(\n () => {\n socketUnstablishError();\n },\n 90000,\n { immediate: false },\n );\n provide(\"startTimer\", start);\n\n const initSocket = (id = null) => {\n console.time(\"start socket\");\n return new Promise((resolve, reject) => {\n toast.clear();\n if (socketError.value != null) {\n return reject(socketError.value);\n }\n if (client !== null) {\n return resolve();\n }\n\n client = new Pusher(PUSHER_APP_KEY, {\n wsHost: PUSHER_HOST,\n wsPort: PUSHER_PORT,\n wssHost: PUSHER_HOST,\n wssPort: PUSHER_PORT,\n cluster: PUSHER_APP_CLUSTER,\n forceTLS: true,\n encrypted: true,\n // disableStats: true,\n enabledTransports: [\"ws\", \"wss\"],\n authorizer: (channel) => {\n return {\n authorize: async (socketId, callback) => {\n try {\n socketError.value = null;\n await API.getNotApi(\"/sanctum/csrf-cookie\");\n const res = await API.post(\"/broadcasting/auth\", {\n socket_id: socketId,\n channel_name: channel.name,\n });\n callback(false, res);\n } catch (error) {\n console.log(\"error broadcasting:>> \", error);\n socketUnstablishError();\n callback(true);\n return reject();\n }\n },\n };\n },\n });\n\n client.connection.bind(\"connected\", (e) => {\n console.timeEnd(\"start socket\");\n if (!store.GET_RECOMENDED_ID) {\n start();\n }\n return resolve();\n });\n\n client.connection.bind(\"failed\", (e) => {\n socketUnstablishError();\n return reject();\n });\n\n client.connection.bind(\"disconnected\", (e) => {\n return reject();\n });\n\n const SOCKET_ID = id ? id : store.GET_CONNECT_ID;\n const channel = \"private-contacts.\" + SOCKET_ID;\n\n client\n .subscribe(channel)\n .bind(\"InsuranceQuoteRetrieved\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"InsuranceQuotesRetrieved\", message);\n }\n stop();\n store.SET_CONTRACT_DATA(message);\n store.SET_GET_QUOTE_ERROR(null);\n })\n .bind(\"FinanceQuoteRetrieved\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"FinanceQuoteRetrieved\", message);\n }\n store.SET_CONTRACT_PAYMENT(message);\n })\n .bind(\"InsuranceQuotesRetrievingFailed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"InsuranceQuotesRetrievingFailed\", message);\n }\n //add banner\n store.SET_GET_QUOTE_ERROR(message);\n\n displayErrors(message, true);\n router.push({ name: \"insurance.drivers\" });\n })\n .bind(\"InsuranceQuoteUpdated\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"InsuranceQuoteUpdated\", message);\n }\n stop();\n // if (!store.isSocketLoading) {\n // socketUnstablishError()\n // return\n // }\n const { contact, ...other } = message;\n\n store.SET_CONTRACT_DATA_UPDATE(other);\n })\n .bind(\"InsuranceQuoteUpdateFailed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"InsuranceQuoteUpdateFailed\", message);\n }\n\n displayErrors(message);\n store.SET_UPDATE_QUOTE_ERROR();\n store.SET_CONTRACT_DATA_UPDATE(message);\n })\n .bind(\"FinanceQuoteRetrievingFailed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"FinanceQuoteRetrievingFailed\", message);\n }\n displayErrors(message);\n store.SET_UPDATE_QUOTE_ERROR();\n router.push({ name: \"insurance.drivers\" });\n });\n });\n };\n\n const connectFinalPage = () => {\n client\n .bind(\"QuoteToContractProcessed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"QuoteToContractProcessed\", message);\n }\n\n if (message?.alert) displayErrors(message);\n store.SET_FINAL_INFORMATION({ type: \"QUOTE\", data: message });\n })\n .bind(\"FinanceContractProcessed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"FinanceContractProcessed\", message);\n }\n\n if (message?.alert) displayErrors(message);\n store.SET_FINAL_INFORMATION({ type: \"MFS\", data: message });\n })\n .bind(\"AddonContractProcessed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"AddonContractProcessed\", message);\n }\n\n if (message?.alert) displayErrors(message);\n store.SET_FINAL_INFORMATION({ type: \"NSD\", data: message });\n })\n .bind(\"InsuranceContractProcessed\", (message) => {\n if (mode == \"development\" || mode == \"staging\") {\n console.log(\"InsuranceContractProcessed\", message);\n }\n\n if (message?.alert) displayErrors(message);\n store.SET_FINAL_INFORMATION({ type: \"CONTRACT\", data: message });\n });\n };\n\n onMounted(() => {\n if (initial) {\n return;\n }\n if (client == null && store.GET_CONNECT_ID) {\n initSocket();\n }\n });\n\n onUnmounted(() => {\n disconnectSocketRater();\n });\n\n return { client, initSocket, connectFinalPage, disconnectSocketRater };\n};\n"],"names":["PUSHER_APP_KEY","PUSHER_HOST","PUSHER_PORT","PUSHER_APP_CLUSTER","useSocket","initial","store","oneRater","router","useRouter","toast","useToast","socketError","ref","client","clearMessage","msg","chechAddressError","m","openModal","useModalAddress","addressError","provider_id","err","last","displayErrors","response","all","alerts","HtmlRender","el","disconnectSocketRater","socketUnstablishError","start","stop","useTimeoutFn","provide","initSocket","id","resolve","reject","Pusher","channel","socketId","callback","API","res","error","e","message","contact","other","connectFinalPage","onMounted","onUnmounted"],"mappings":"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"}