{"version":3,"file":"OutlookCallback.mjs","names":["React","useEffect","useLocation","apiMutate","LoadingIndicator","ConfigService","OutlookCallback","location","fetchData","urlParams","URLSearchParams","search","code","get","token","exchangeCodeForToken","window","opener","postMessage","localStorage","setItem","addSecondsToCurrentTimeUnix","seconds","Date","now","integrationV2ApiUrl","Error","config","UNITY_URL","response","method","data","option","value","redirectUri","accessToken","refreshToken","expiresIn","close","error","console"],"sources":["../../../../src/utilities/redirect/pages/OutlookCallback.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { apiMutate } from '../../useAxiosMutate';\nimport { LoadingIndicator } from '../../../UI/loading/LoadingIndicator';\nimport { ConfigService } from '../../../configService';\n\nexport function OutlookCallback() {\n    const location = useLocation();\n    useEffect(() => {\n        const fetchData = async () => {\n            const urlParams = new URLSearchParams(location.search);\n            const code = urlParams.get('code');\n            const token = urlParams.get('outlookAccessToken');\n\n            if (code) {\n                await exchangeCodeForToken(code);\n                window.opener.postMessage('loginSuccess', '*');\n            } else if (token) {\n                localStorage.setItem('outlookAccessToken', token);\n            }\n        };\n\n        fetchData();\n    }, [location]);\n\n\n    function addSecondsToCurrentTimeUnix(seconds) {\n        return Date.now() + seconds * 1000;\n    }\n\n\n    const exchangeCodeForToken = async (code) => {\n        try {\n            if (!ConfigService.integrationV2ApiUrl) {\n                throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n            }\n            if (!ConfigService.config.UNITY_URL) {\n                throw new Error('REACT_APP_UNITY_URL is undefined')\n            }\n            const response = await apiMutate(\n                ConfigService.integrationV2ApiUrl,\n                `OutlookIntegrationAccessToken/getAccessToken`,\n                {\n                    method: \"post\",\n                    data: {\n                        option: \"code\",\n                        value: code,\n                        redirectUri: ConfigService.config.UNITY_URL + \"/aad_redirect\"\n                    }\n                }\n            )\n\n            const data = await response.data\n\n            data.accessToken ? localStorage.setItem('outlookAccessToken', data.accessToken) : null;\n            data.refreshToken ? localStorage.setItem('outlookRefreshToken', data.refreshToken) : null\n            data.expiresIn ? localStorage.setItem('outlookExpiresAt', addSecondsToCurrentTimeUnix(data.expiresIn)) : null;\n            window.close();\n        } catch (error) {\n            console.error('Error exchanging code for token', error);\n        }\n    };\n\n    return (\n        <>\n            <LoadingIndicator />\n        </>\n    );\n}\n\n"],"mappings":";;;;;;AAMA,SAAgBM,kBAAkB;CAC9B,MAAMC,WAAWL,aAAa;AAC9BD,iBAAgB;EACZ,MAAMO,YAAY,YAAY;GAC1B,MAAMC,YAAY,IAAIC,gBAAgBH,SAASI,OAAO;GACtD,MAAMC,OAAOH,UAAUI,IAAI,OAAO;GAClC,MAAMC,QAAQL,UAAUI,IAAI,qBAAqB;AAEjD,OAAID,MAAM;AACN,UAAMG,qBAAqBH,KAAK;AAChCI,WAAOC,OAAOC,YAAY,gBAAgB,IAAI;cACvCJ,MACPK,cAAaC,QAAQ,sBAAsBN,MAAM;;AAIzDN,aAAW;IACZ,CAACD,SAAS,CAAC;CAGd,SAASc,4BAA4BC,SAAS;AAC1C,SAAOC,KAAKC,KAAK,GAAGF,UAAU;;CAIlC,MAAMP,uBAAuB,OAAOH,WAAS;AACzC,MAAI;AACA,OAAI,CAACP,cAAcoB,oBACf,OAAM,IAAIC,MAAM,iDAAiD;AAErE,OAAI,CAACrB,cAAcsB,OAAOC,UACtB,OAAM,IAAIF,MAAM,mCAAmC;GAevD,MAAMK,OAAO,OAbI,MAAM5B,UACnBE,cAAcoB,qBACd,gDACA;IACIK,QAAQ;IACRC,MAAM;KACFC,QAAQ;KACRC,OAAOrB;KACPsB,aAAa7B,cAAcsB,OAAOC,YAAY;KAClD;IAER,CAAC,EAE2BG;AAE5BA,QAAKI,eAAchB,aAAaC,QAAQ,sBAAsBW,KAAKI,YAAY;AAC/EJ,QAAKK,gBAAejB,aAAaC,QAAQ,uBAAuBW,KAAKK,aAAa;AAClFL,QAAKM,aAAYlB,aAAaC,QAAQ,oBAAoBC,4BAA4BU,KAAKM,UAAU,CAAC;AACtGrB,UAAOsB,OAAO;WACTC,OAAO;AACZC,WAAQD,MAAM,mCAAmCA,MAAM;;;AAI/D,QACI,sBAAA,cAAA,MAAA,UAAA,MACI,sBAAA,cAAC,kBAAA,KAAgB,CAClB"}