{"version":3,"sources":["lib/message.js","actions/userActions.js","actions/authActions.js","lib/encrypt.js","lib/billing.js","lib/services.js","actions/rootActions.js","actions/householdActions.js","lib/pipeline.js","resources/Strings.js","actions/billingActions.js","actions/servicesActions.js"],"names":["__webpack_require__","d","__webpack_exports__","getErrorMessage","getStatus","_resources_Strings__WEBPACK_IMPORTED_MODULE_0__","code","fnName","strings","errorMessage","error500code","authenticate400","authenticateStepTwo400","authenticateStepThree0","authenticateStepThree400","recoverMessage","usernameNotFound","badCode","usernameSent","emailNotFound","systemError","updatePassword401","updateChildPassword400","addChildUser406","addChildUser412","checkHtEmail404","registerCRM","accountWrong","fSecureError","error","response","status","getUserAccount","getUserAccountSuccess","getUserAccountFailure","updateAccount","getUserSuccess","getUserFailure","updateUserPipeline","updateEmailPipeline","updateUser","updatePassword","resetState","clearError","updateChildPassword","getParentUser","getPaperlessDispatchMethod","setPaperlessDispatchMethod","updateChildBillingInfo","switchCustomer","updateUserThirdPartyData","getUserThirdPartyData","axios__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_0___default","n","_lib_message__WEBPACK_IMPORTED_MODULE_1__","_lib_pipeline__WEBPACK_IMPORTED_MODULE_2__","_resources_Strings__WEBPACK_IMPORTED_MODULE_3__","_authActions__WEBPACK_IMPORTED_MODULE_4__","_servicesActions__WEBPACK_IMPORTED_MODULE_5__","_billingActions__WEBPACK_IMPORTED_MODULE_6__","id","dispatch","getState","getUserAccountStarted","axios","get","process","headers","Authorization","auth","uToken","then","data","accountNumber","authActions","catch","type","account","userAccountInfo","successCallbackFn","arguments","length","undefined","updateAccountStarted","put","Content-Type","updateAccountSuccess","updateAccountFailure","user","updateHtEmail","updateUserFailure","errorCallabckFn","htEmail","htEmailPassword","message","authMessages","emptyHtEmailPassword","stopPipeline","emptyHtEmail","goToNextPipelineStep","userMessages","accountNumberNull","accountNull","updateEmailaddress","email","updateUserStarted","userId","updateUserSuccess","updatePasswordStarted","password","username","newPassword","patch","updatePasswordSuccess","updatePasswordFailure","err","getParentUserStarted","getParentUserSuccess","getParentUserFailure","payload","post","updateChildBillingInfoSuccess","customerId","switchCustomerStarted","servicesActions","getInvoiceInfoByCustomerId","switchCustomerSuccess","userThirdPartyInfo","updateUserThirdPartyDataStarted","updateUserThirdPartyDataSuccess","updateUserThirdPartyDataFailure","userThirdPartyData","getUserThirdPartyDataStarted","getUserThirdPartyDataSuccess","getUserThirdPartyDataFailure","authenticateIDP","credentials","redirectInfo","cookies","concat","token","set","t","setToken","authenticateStepTwo","remove","SSOCookie","Name","authFailure","authenticate","authStarted","pathname","userName","toLowerCase","actionCreater","clearNotRegUser","authenticateStepThree","authSuccess","setNotRegUser","push","userInfo","registerCRMSuccess","flag","isAuthenticated","authReset","userRegistration","regInfo","history","mode","regStarted","regPayload","paperless","customerType","serviceZip","TvPaComplianceFlag","tvPaComplianceFlag","trim","regSuccess","timerId","setTimeout","clearInterval","regFailure","msg","notRegUserRegistration","authLogout","rootActionCreater","registerCrmPipeline","checkAccount","registerCRMStarted","newAccount","Object","C_az_build_agent_work_16_s_src_WebCustomer_ClientApp_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","newUserInfo","registerCRMFailure","checkAccountStarted","head","checkAccountSuccess","checkAccountFailure","checkHtEmail","pswd","checkHtEmailStarted","checkEmail","EmailAddress","EmailPassword","AccountNumber","console","log","checkHtEmailFailure","Promise","setAdfsIdToken","getTotalBalance","getEarliestDueDate","getFormatedDate","invoices","Array","isArray","Number","parseFloat","reduce","total","invoice","BalanceDue","toFixed","earliestDueDate","forEach","currentinvoiceDueDate","Date","InvoiceDueDate","date","billingLib","monthJan","monthFeb","monthMar","monthApr","monthMay","monthJune","monthJuly","monthAug","monthSept","monthOct","monthNov","monthDec","getMonth","getDate","getFullYear","ServicesId","TV_ID","HSI_ID","HTEMAIL_ID","HOMEPHONE_ID","FSECURE_ID","HTSTATSPORTAL_ID","BusinessServices","serviceId","title","services","busEmail","url","busVoicemail","isContainCrmId","ids","products","i","_ret","arrayIds","split","includes","componentId","v","elements","filter","element","elementId","addSerivce","serviceTitle","htEmailService","isSerivceExist","isExist","s","globalResetState","_userActions__WEBPACK_IMPORTED_MODULE_0__","_billingActions__WEBPACK_IMPORTED_MODULE_1__","_servicesActions__WEBPACK_IMPORTED_MODULE_2__","_authActions__WEBPACK_IMPORTED_MODULE_3__","_householdActions__WEBPACK_IMPORTED_MODULE_4__","userActionCreater","billingActionsCreater","serviceActionsCreater","authActionsCreater","householdActionsCreater","getChildUsers","updateChildUser","deleteChildUser","addChildUser","getTVRatings","getMovieRatings","getChildUserStarted","getChildUserSuccess","getChildUserFailure","childrens","updateChildUserStarted","updateChildUserSuccess","updateChildUserFailure","deleteChildUserStarted","delete","deleteChildUserSuccess","deleteChildUserFailure","addChildUserStarted","newUser","parentUser","parentalControlEnabled","enabled","userRoles","parentId","firstName","lastName","parentalControlTV","parentalControlMovie","parentUsername","addChildUserFailure","getTVRatingsStarted","getTVRatingsSuccess","getTVRatingsFailure","ratings","getMovieRatingsStarted","getMovieRatingsSuccess","getMovieRatingsFailure","resolve","react_localization__WEBPACK_IMPORTED_MODULE_0__","LocalizedStrings","en","loading","closedAccMsg","forgotPassword","userNameRequired","passwordReset","description","inputLabel","submit","dontRemember","clickHere","backToLogin","forgotUsername","emailNameRequired","infoBanner","nowYou","text1","text2","text3","text4","text5","mobileAppText","youCan","topBanner","optionalFields","inputHtEmailLabel","inputHtEmailPlaceholder","inputHtEmailAppendText","inputHtEmailPswdLabel","inputHtEmailPswdPlaceholder","header","optionText1","optionText2","accountRequired","accountLengthError","welcome","text","inputPlaceholder","buttonText","registration","termsRequired","accountNumberValidation","zipValidation","usernameValidation","emailValidation","passwordValidation","confirmPasswordValidation","htEmailValidation","wirelessPhoneNumberValidation","pinValidation","fillThis","optional","optionalText","backText","resViewSelect","busViewSelect","resetFormButton","tvpaComplianceText","registrationNoRegUser","requiredFields","accountLabel","accountTooltip","zipLabel","zipTooltip","busZipTooltip","usernameLabel","usernameTooltip","emailLabel","emailTooltip","passwordLabel","passwordTooltip","confirmPasswordLabel","resetPassword","passwordRequired","confirmPassword","passwordsMustMatch","inputPasswordLabel","inputPasswordPlaceholder","inputConfirmLabel","inputConfirmPlaceholder","signIn","nameRequired","uumaxTokenError","noTokenError","userNameLabel","userNamePlaceholder","passwordPlaceholder","rememberMe","submitText","register","or","adminSignIn","terms","links","termsOf","privacy","verifyCode","codeRequired","inputCodeLabel","inputCodePlaceholder","forgotPasswordText","again","back","billingAccount","nameLabel","billingAddress","billingBalance","yourBalance","billingError","unableToRegister","billingLinks","payBill","billingPayment","payBy","billingPeriod","daysPastDue","daysLeft","billingSummary","billingTabs","recent","open","closed","payments","receipts","oneTimePayment","payment","autopay","scheduled","recurring","payByText","historicalData","recentTitle","openTitle","closedTitle","paperlessTitle","paymentsTitle","receiptsTitle","oneTimePaymentTitle","paymentTitle","autopayTitle","scheduledTitle","recurringTitle","payByTextTitle","billingHistoricalData","radioLabel1","radioLabel2","startLabel","endLabel","pressSearch","noReports","tableTh0","tableTh1","tableTh2","limitRecordsText","errorPublicView","carousel","noAds","previous","next","dashboard","servicesHeader","servicesUpgradebtnText","addNewChildUser","deleteConfirmation","modalTitle","question","buttonClose","buttonDelete","editUserInfoBox","closeXLabel","firstNameLabel","firstNamePlaceholder","lastNameLabel","lastNamePlaceholder","emailPlaceholder","adminLabel","tvRatingLabel","movieRatingLabel","buttonSave","primaryUser","primaryUserNameLabel","householdProfiles","topText","secondText","householdUser","editPassword","yes","no","householdUsersList","noUsers","modalAddForm","required","emptyTVRating","emptyMovieRating","modalEditPwrdForm","currentPasswordRequired","newPasswordRequired","confirmNewPasswordRequired","mustMatch","currentPasswordLabel","currentPasswordPlaceholder","newPasswordLabel","newPasswordPlaceholder","confirmNewPasswordLabel","confirmNewPasswordPlaceholder","buttonSubmit","successMessage","noRating","defaultValue","headerLeftLinks","myHt","myAccount","watchTV","headerRightLinks","contact","signOut","navBar","ariaLabel","dashboardLink","profileLink","billingLink","servicesLink","householdLink","helpandsupportLink","address","notSet","profileAddress","billingTitle","noteRes","noteNoRes","profileCard","accountTitle","nameTitle","nicknameTitle","serviceAddressTitle","zipCodeTitle","profileEmail","editEmail","notValid","labelText","placeholder","editPhone","editHtEmail","pswdLabelText","pswdPlaceholder","addBtn","editWireless","phoneNotValid","pinNotValid","phoneLabelText","phonePlaceholder","pinLabelText","pinPlaceholder","fsecureModal","updateTitle","updateSuccessMessage","updateEmailLabelText","updateEmailPlaceholder","editNickname","editZipCode","profileHouseholdProfiles","profilePassword","profilePhone","wirelessPhone","pinHeader","bundleCard","alt","collapseButton","showMore","showLess","complexServiceHeader","buttonSupport","buttonDvr","emailSupport","manageEmailAccount","caPortalService","complexServicesList","noServices","emptyService","orderNowLink","servicesList","yourServices","yS","s3","serviceSummary","viewMore","supportTabs","check","articles","checkStatusTab","info","supportIframe","supportRequestTab","billingDescibtion","productsTitle","productsDescibtion","technicalTitle","technicalDescibtion","movingTitle","movingDescibtion","otherTitle","otherDescibtion","forYourSafety","buttonBack","appSettingsError","accountTypeError","systemErrorType","resSupportPhone","busSupportPhone","usernameHasBeenSent","fullName","securityTitle","wirelessTitle","htEmailTitle","busWireless","actionBox","dvrBold","dvrDescr","manageDeviceBold","manageDeviceDescr","payPerViewDescr","espnBold","espnDescr","espnBtnText","customerReferralHeaderText","customerReferralBold","customerReferralDescr","customerReferralBtnText","editWirelessBold","editWirelessDescr","editHtemailBold","editHtemailDescr","htemailInboxBold","htemailInboxDescr","emailSupportBold","emailSupportDescr","learnMoreSecurityDescr","learnMoreSecurityBold","learnMoreSecurityBtnText","manageSecurityDescr","manageSecurityBold","manageSecurityBtnText","updateSecurityDescr","updateSecurityBold","updateSecurityBtnText","resendSecurityDescr","resendSecurityBold","resendSecurityBtnText","resendFSecureEmail","receiptHistoryMessage","paymentHistoryMessage","payNowMessage","supportArticles","h2","p","linkLabel","IEEdgeFFDisplayIframe","supportTicketMessage","firstNameValidation","lastNameValidation","phoneNumberValidation","selectMessage","selectPriority","checkedMessage","customerName","createNewSupportTicketBtnLabel","contactPhoneNumber","accountPhoneNumber","customerAccountNumber","preferredMethodofContact","preferredTimeofContact","requestDetails","forwhichservices","supportTicketTitle","whatDoYouNeedHelpWith","priority","attachedScreenshot","initBilling","stopSessionKeepAlive","selectTab","resetReceiptHistoryState","getHistoricalData","removeHistoricalData","getReceiptHistoryData","_userActions__WEBPACK_IMPORTED_MODULE_1__","_lib_message__WEBPACK_IMPORTED_MODULE_3__","_resources_Strings__WEBPACK_IMPORTED_MODULE_5__","getRat","getRatStarted","rat","getRatSuccess","getCustomerGUID","customerGuid","billing","getInvoiceInfo","getCustomerGUIDFailure","startSessionKeepAlive","registerUserInIC","getRatFailure","getCustomerGUIDStarted","customerguid","getCustomerGUIDSuccess","guid","getInvoiceInfoStarted","getInvoiceInfoSuccess","getInvoiceInfoFailure","endRemoteSessionStarted","endRemoteSessionSuccess","endRemoteSessionFailure","keepRemoteSessionAlive","keepRemoteSessionAliveStarted","remoteAuthenticationToken","keepRemoteSessionAliveSuccess","keepRemoteSessionAliveFailure","sessionTimer","setInterval","X-Requested-With","removeRat","tabIndex","registerUserInICStarted","registerUserInICSuccess","registerUserInICFailure","updateEmailStarted","updateEmailSuccess","updateEmailFailure","startDate","endDate","statementType","getHistoricalDataStarted","SortCriteria","NumInvoices","SearchType","getHistoricalDataSuccess","getHistoricalDataFailure","getReceiptHistoryStarted","getReceiptHistorySuccess","getReceiptHistoryFailure","receiptData","getServices","switchServices","getBusinessServices","getAllAds","getDvrProductIds","getManageUrl","updateFSecureEmail","getCookie","_lib_services__WEBPACK_IMPORTED_MODULE_1__","_resources_Strings__WEBPACK_IMPORTED_MODULE_2__","getServicesStarted","setAaisAddressId","aaisAddressId","result","setServiceSecurityExist","showHtEmail","getServicesSuccess","setLocations","getServicesFailure","index","allServices","service","state","bizServices","isCAPC","capcService","getAdsStarted","getAdsSuccess","getAdsFailure","ads","getDvrProductIdsStarted","getDvrProductIdsSuccess","getDvrProductIdsFailure","getManageUrlStarted","getManageUrlSuccess","getManageUrlFailure","updateFSecureEmailStarted","emailBase64","btoa","updateFSecureEmailSuccess","updateFSecureEmailFailure","resendFSecureEmailStarted","resendFSecureEmailSuccess","resendFSecureEmailFailure"],"mappings":"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","file":"static/js/2.22fbe4f4.chunk.js","sourcesContent":["import { strings } from \"../resources/Strings\";\r\n\r\nexport const getErrorMessage = (code, fnName) => {\r\n if (code === null) return strings.errorMessage.error500code;\r\n switch (fnName) {\r\n case \"authenticate\":\r\n if (code > 200 && code < 500) {\r\n return strings.errorMessage.authenticate400;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n\r\n break;\r\n case \"authenticateStepTwo\":\r\n if (code > 200 && code < 500) {\r\n return strings.errorMessage.authenticateStepTwo400;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n\r\n break;\r\n case \"authenticateStepThree\":\r\n if (code === 0) {\r\n return strings.errorMessage.authenticateStepThree0;\r\n }\r\n if (code > 200 && code < 500) {\r\n return strings.errorMessage.authenticateStepThree400;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"getRat\":\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"forgotPassword\":\r\n if (code === 404) {\r\n return strings.recoverMessage.usernameNotFound;\r\n } else {\r\n return strings.errorMessage.error500code;\r\n }\r\n case \"verifyForgotPassword\":\r\n if (code === 409) {\r\n return strings.recoverMessage.badCode;\r\n } else {\r\n return strings.errorMessage.error500code;\r\n }\r\n case \"forgotUsername\":\r\n if (code === 0) {\r\n return strings.recoverMessage.usernameSent;\r\n }\r\n if (code >= 400 && code < 500) {\r\n return strings.recoverMessage.emailNotFound;\r\n }\r\n if (code >= 500) {\r\n return strings.recoverMessage.systemError;\r\n }\r\n break;\r\n case \"updatePassword\":\r\n if (code === 401) {\r\n return strings.errorMessage.updatePassword401;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"updateChildPassword\":\r\n if (code >= 400 && code < 500) {\r\n return strings.errorMessage.updateChildPassword400;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"addChildUser\":\r\n if (code === 406) {\r\n return strings.errorMessage.addChildUser406;\r\n }\r\n if (code === 412) {\r\n return strings.errorMessage.addChildUser412;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"addHelpAndSupport\":\r\n // if (code === 406) {\r\n // return strings.errorMessage.addChildUser406;\r\n // }\r\n // if (code === 412) {\r\n // return strings.errorMessage.addChildUser412;\r\n // }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"checkHtEmail\":\r\n if (code === 404) {\r\n return strings.errorMessage.checkHtEmail404;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"registerCRM\":\r\n if (code >= 400 && code < 500) {\r\n return strings.registerCRM.accountWrong;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"checkAccount\":\r\n if (code >= 400 && code < 500) {\r\n return strings.registerCRM.accountWrong;\r\n }\r\n if (code >= 500) {\r\n return strings.errorMessage.error500code;\r\n }\r\n break;\r\n case \"updateFSecureEmail\":\r\n if (code >= 400 || code <= 404) {\r\n return strings.errorMessage.fSecureError;\r\n }\r\n return strings.errorMessage.error500code;\r\n\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport const getStatus = error => {\r\n if (!error) {\r\n return 500;\r\n } else {\r\n if (!error.response) {\r\n return 500;\r\n } else {\r\n if (!error.response.status) {\r\n return 500;\r\n } else {\r\n return error.response.status;\r\n }\r\n }\r\n }\r\n};\r\n","import axios from \"axios\";\r\nimport { getErrorMessage } from \"../lib/message\";\r\nimport { stopPipeline, goToNextPipelineStep } from \"../lib/pipeline\";\r\nimport { strings } from \"../resources/Strings\";\r\nimport * as authActions from \"./authActions\";\r\nimport * as servicesActions from \"./servicesActions\";\r\nimport {\r\n updateEmailaddress,\r\n getInvoiceInfoByCustomerId\r\n} from \"./billingActions\";\r\n\r\n// Get User Account Info\r\nexport const getUserAccount = id => {\r\n return (dispatch, getState) => {\r\n dispatch(getUserAccountStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/account/\" + id, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n if (response.data.accountNumber) {\r\n dispatch(authActions.registerCRMSuccess());\r\n }\r\n dispatch(getUserAccountSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getUserAccountFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getUserAccountStarted = () => ({\r\n type: \"GET_ACCOUNT_STARTED\"\r\n});\r\n\r\nexport const getUserAccountSuccess = account => ({\r\n type: \"GET_ACCOUNT_SUCCESS\",\r\n userAccountInfo: account\r\n});\r\n\r\nexport const getUserAccountFailure = error => ({\r\n type: \"GET_ACCOUNT_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Update account\r\nexport const updateAccount = (account, successCallbackFn = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(updateAccountStarted());\r\n\r\n return axios\r\n .put(process.env.REACT_APP_API + \"/account\", account, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n // response.data do not contain updated account object\r\n dispatch(updateAccountSuccess(account));\r\n if (typeof successCallbackFn === \"function\") {\r\n successCallbackFn();\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(updateAccountFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updateAccountStarted = () => ({\r\n type: \"UPDATE_ACCOUNT_STARTED\"\r\n});\r\n\r\nexport const updateAccountSuccess = account => ({\r\n type: \"UPDATE_ACCOUNT_SUCCESS\",\r\n account: account\r\n});\r\n\r\nexport const updateAccountFailure = error => ({\r\n type: \"UPDATE_ACCOUNT_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Get User Info\r\nexport const getUser = (id, usePT = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(getUserStarted());\r\n\r\n let authTokenString = \"\";\r\n if (usePT) {\r\n authTokenString = \"UToken eb:\" + process.env.REACT_APP_PT;\r\n } else {\r\n authTokenString = \"UToken 1a:\" + getState().auth.uToken;\r\n }\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/user/\" + id, {\r\n headers: {\r\n Authorization: authTokenString\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getUserSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getUserStarted = () => ({\r\n type: \"GET_USER_STARTED\"\r\n});\r\n\r\nexport const getUserSuccess = user => ({\r\n type: \"GET_USER_SUCCESS\",\r\n user: user\r\n});\r\n\r\nexport const getUserFailure = error => ({\r\n type: \"GET_USER_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const updateUserPipeline = (user, successCallbackFn = null) => {\r\n return dispatch => {\r\n dispatch(updateHtEmail(user, updateUserFailure)).then(() => {\r\n dispatch(updateUser(user, successCallbackFn));\r\n });\r\n };\r\n};\r\n\r\nexport const updateHtEmail = (user, errorCallabckFn) => {\r\n return (dispatch, getState) => {\r\n const account = getState().user.account;\r\n if (account) {\r\n if (account.accountNumber) {\r\n if (user.htEmail) {\r\n if (user.htEmailPassword) {\r\n return dispatch(\r\n authActions.checkHtEmail(\r\n user.htEmail,\r\n user.htEmailPassword,\r\n account.accountNumber,\r\n errorCallabckFn\r\n )\r\n );\r\n } else {\r\n let error = {\r\n message: strings.authMessages.emptyHtEmailPassword\r\n };\r\n dispatch(errorCallabckFn(error));\r\n return stopPipeline();\r\n }\r\n } else {\r\n if (user.htEmailPassword) {\r\n let error = {\r\n message: strings.authMessages.emptyHtEmail\r\n };\r\n dispatch(errorCallabckFn(error));\r\n return stopPipeline();\r\n } else {\r\n //going to next step of pipeline\r\n return goToNextPipelineStep();\r\n }\r\n }\r\n } else {\r\n // account number is null\r\n let error = {\r\n message: strings.userMessages.accountNumberNull\r\n };\r\n dispatch(errorCallabckFn(error));\r\n return stopPipeline();\r\n }\r\n } else {\r\n // account info is null\r\n let error = {\r\n message: strings.userMessages.accountNull\r\n };\r\n dispatch(errorCallabckFn(error));\r\n return stopPipeline();\r\n }\r\n };\r\n};\r\n\r\nexport const updateEmailPipeline = (user, successCallbackFn = null) => {\r\n return dispatch => {\r\n dispatch(updateUser(user, successCallbackFn)).then(() => {\r\n dispatch(updateEmailaddress(user.email));\r\n });\r\n };\r\n};\r\n\r\n// Update actions\r\nexport const updateUser = (user, successCallbackFn = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(updateUserStarted());\r\n\r\n return axios\r\n .put(process.env.REACT_APP_API + \"/user/\" + user.userId, user, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n // response.data contain updated user object\r\n dispatch(updateUserSuccess(response.data));\r\n if (typeof successCallbackFn === \"function\") {\r\n successCallbackFn();\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(updateUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updateUserStarted = () => ({\r\n type: \"UPDATE_USER_STARTED\"\r\n});\r\n\r\nexport const updateUserSuccess = user => ({\r\n type: \"UPDATE_USER_SUCCESS\",\r\n user: user\r\n});\r\n\r\nexport const updateUserFailure = error => ({\r\n type: \"UPDATE_USER_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Update user password\r\nexport const updatePassword = (user, successCallbackFn) => {\r\n return (dispatch, getState) => {\r\n dispatch(updatePasswordStarted());\r\n\r\n const password = {\r\n username: user.username,\r\n password: user.password,\r\n newPassword: user.newPassword\r\n };\r\n\r\n return axios\r\n .patch(process.env.REACT_APP_API + \"/user\", password, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n successCallbackFn();\r\n dispatch(updatePasswordSuccess());\r\n })\r\n .catch(error => {\r\n if (error.response && error.response.data) {\r\n dispatch(\r\n updatePasswordFailure({ message: error.response.data.message })\r\n );\r\n } else {\r\n let err = {\r\n message: getErrorMessage(error.response.status, \"updatePassword\")\r\n };\r\n dispatch(updatePasswordFailure(err));\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const updatePasswordStarted = () => ({\r\n type: \"UPDATE_PASSWORD_STARTED\"\r\n});\r\n\r\nexport const updatePasswordSuccess = () => ({\r\n type: \"UPDATE_PASSWORD_SUCCESS\"\r\n});\r\n\r\nexport const updatePasswordFailure = error => ({\r\n type: \"UPDATE_PASSWORD_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const resetState = () => ({\r\n type: \"USER_RESET_STATE\"\r\n});\r\n\r\nexport const clearError = () => ({\r\n type: \"USER_CLEAR_ERROR\"\r\n});\r\n\r\nexport const updateChildPassword = (user, successCallbackFn) => {\r\n return (dispatch, getState) => {\r\n dispatch(updatePasswordStarted());\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API + \"/user/resetpassword\",\r\n { username: user.username, password: user.newPassword },\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n successCallbackFn();\r\n dispatch(updatePasswordSuccess());\r\n })\r\n .catch(error => {\r\n if (error.response && error.response.data) {\r\n dispatch(\r\n updatePasswordFailure({ message: error.response.data.message })\r\n );\r\n } else {\r\n let err = {\r\n message: getErrorMessage(\r\n error.response.status,\r\n \"updateChildPassword\"\r\n )\r\n };\r\n dispatch(updatePasswordFailure(err));\r\n }\r\n });\r\n };\r\n};\r\n\r\n// Get Parent User Info\r\nexport const getParentUser = id => {\r\n return (dispatch, getState) => {\r\n dispatch(getParentUserStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/user/\" + id, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getParentUserSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getParentUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getPaperlessDispatchMethod = (accountNumber) => {\r\n\r\n return (dispatch, getState) => {\r\n dispatch({ type: \"GET_PAPERLESS_BILLING_STARTED\" });\r\n return axios.get(process.env.REACT_APP_API + \"/account/geteBillStatus/\" + accountNumber, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch({\r\n type: \"GET_PAPERLESS_BILLING_SUCCESS\",\r\n payload: response.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: \"GET_PAPERLESS_BILLING_FAILURE\",\r\n payload: error,\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const setPaperlessDispatchMethod = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({ type: \"SET_PAPERLESS_BILLING_STARTED\" });\r\n return axios.post(process.env.REACT_APP_API + \"/account/seteBillStatus/\" + data.accountNumber + '/' + data.status,\r\n null,\r\n {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch({\r\n type: \"SET_PAPERLESS_BILLING_SUCCESS\",\r\n payload: response.data,\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: \"SET_PAPERLESS_BILLING_FAILURE\",\r\n payload: error,\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const getParentUserStarted = () => ({\r\n type: \"GET_PARENT_USER_STARTED\"\r\n});\r\n\r\nexport const getParentUserSuccess = user => ({\r\n type: \"GET_PARENT_USER_SUCCESS\",\r\n user: user\r\n});\r\n\r\nexport const getParentUserFailure = error => ({\r\n type: \"GET_PARENT_USER_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const updateChildBillingInfo = () => {\r\n return dispatch => {\r\n dispatch(updateChildBillingInfoSuccess());\r\n return goToNextPipelineStep();\r\n };\r\n};\r\n\r\nexport const updateChildBillingInfoSuccess = () => ({\r\n type: \"UPDATE_BILLING_INFO\"\r\n});\r\n\r\n// Switch customer\r\nexport const switchCustomer = customerId => {\r\n return dispatch => {\r\n dispatch(switchCustomerStarted());\r\n\r\n dispatch(getUserAccount(customerId));\r\n dispatch(servicesActions.getServices(customerId));\r\n dispatch(getInvoiceInfoByCustomerId(customerId));\r\n\r\n dispatch(switchCustomerSuccess());\r\n };\r\n};\r\n\r\nexport const switchCustomerStarted = () => ({\r\n type: \"SWITCH_CUSTOMER_STARTED\"\r\n});\r\n\r\nexport const switchCustomerSuccess = () => ({\r\n type: \"SWITCH_CUSTOMER_SUCCESS\"\r\n});\r\n\r\nexport const switchCustomerFailure = error => ({\r\n type: \"SWITCH_CUSTOMER_FAILURE\",\r\n error: error\r\n});\r\n// Update UserThirdPartyData actions\r\nexport const updateUserThirdPartyData = (userThirdPartyInfo, successCallbackFn = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(updateUserThirdPartyDataStarted());\r\n\r\n return axios\r\n .put(process.env.REACT_APP_API + \"/user/updateThirdPartyData/\" , userThirdPartyInfo, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n // response.data contain updated user object\r\n dispatch(updateUserThirdPartyDataSuccess(response.data));\r\n if (typeof successCallbackFn === \"function\") {\r\n successCallbackFn();\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(updateUserThirdPartyDataFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updateUserThirdPartyDataStarted = () => ({\r\n type: \"UPDATE_USER_THIRD_PARTY_DATA_STARTED\"\r\n});\r\n\r\nexport const updateUserThirdPartyDataSuccess = userThirdPartyData => ({\r\n type: \"UPDATE_USER_THIRD_PARTY_DATA_SUCCESS\",\r\n userThirdPartyData: userThirdPartyData\r\n});\r\n\r\nexport const updateUserThirdPartyDataFailure = error => ({\r\n type: \"UPDATE_USER_THIRD_PARTY_DATA_FAILURE\",\r\n error: error\r\n});\r\n// get UserThirdPartyData actions\r\nexport const getUserThirdPartyData = (accountNumber, successCallbackFn = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(getUserThirdPartyDataStarted());\r\n\r\n return axios \r\n .get(process.env.REACT_APP_API + \"/user/getUserThirdPartyData/\"+accountNumber,{\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n // response.data contain updated user object\r\n dispatch(getUserThirdPartyDataSuccess(response.data));\r\n if (typeof successCallbackFn === \"function\") {\r\n successCallbackFn();\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(getUserThirdPartyDataFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getUserThirdPartyDataStarted = () => ({\r\n type: \"GET_USER_THIRD_PARTY_DATA_STARTED\"\r\n});\r\n\r\nexport const getUserThirdPartyDataSuccess = userThirdPartyData => ({\r\n type: \"GET_USER_THIRD_PARTY_DATA_SUCCESS\",\r\n userThirdPartyData: userThirdPartyData\r\n});\r\n\r\nexport const getUserThirdPartyDataFailure = error => ({\r\n type: \"GET_USER_THIRD_PARTY_DATA_FAILURE\",\r\n error: error\r\n});","import axios from \"axios\";\r\n\r\nimport * as actionCreater from \"./userActions\";\r\nimport * as servicesActions from \"./servicesActions\";\r\nimport * as rootActionCreater from \"./rootActions\";\r\nimport { getErrorMessage, getStatus } from \"../lib/message\";\r\nimport { stopPipeline, goToNextPipelineStep } from \"../lib/pipeline\";\r\nimport { strings } from \"../resources/Strings\";\r\nimport { SSOCookie } from \"../lib/encrypt\";\r\n\r\n// Get User Token request token_1a from local backend\r\nexport const authenticateIDP = (credentials, redirectInfo, cookies) => {\r\n return (dispatch, getState) => {\r\n return axios\r\n .get(process.env.REACT_APP_UUMAX + \"/auth/getusertoken\", {\r\n headers: {\r\n Authorization: `Bearer ${credentials.token}`\r\n }\r\n })\r\n .then((response) => {\r\n // store token for after refresh actions\r\n cookies.set(\"token_1a\", { t: response.data });\r\n\r\n dispatch(setToken(response.data));\r\n dispatch(authenticateStepTwo(credentials, redirectInfo, null, cookies));\r\n })\r\n .catch((error) => {\r\n cookies.remove(SSOCookie.Name);\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"authenticate\")\r\n };\r\n dispatch(authFailure(err));\r\n });\r\n };\r\n};\r\n\r\n/* Authentication actions */\r\nexport const authenticate = (credentials, redirectInfo, cookies) => {\r\n return (dispatch) => {\r\n dispatch(authStarted());\r\n\r\n return axios\r\n .post(process.env.REACT_APP_API + \"/auth\", credentials, {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n })\r\n .then((response) => {\r\n // store token for after refresh actions\r\n cookies.set(\"token_1a\", { t: response.data });\r\n\r\n dispatch(setToken(response.data));\r\n\r\n dispatch(authenticateStepTwo(credentials, redirectInfo, null, cookies));\r\n })\r\n .catch((error) => {\r\n cookies.remove(SSOCookie.Name);\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"authenticate\")\r\n };\r\n dispatch(authFailure(err));\r\n });\r\n };\r\n};\r\n\r\nexport const authenticateStepTwo = (\r\n credentials,\r\n redirectInfo,\r\n pathname = null,\r\n cookies = null\r\n) => {\r\n return (dispatch, getState) => {\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API +\r\n \"/user/username/\" +\r\n credentials.userName.toLowerCase(),\r\n {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(actionCreater.getUserSuccess(response.data));\r\n // only go to next step if customerID exists\r\n if (response.data.customerId && response.data.customerId > 0) {\r\n dispatch(clearNotRegUser());\r\n dispatch(\r\n authenticateStepThree(\r\n response.data,\r\n redirectInfo,\r\n pathname,\r\n cookies\r\n )\r\n );\r\n } else {\r\n dispatch(authSuccess(true));\r\n dispatch(setNotRegUser());\r\n redirectInfo.push(\"/notRegisteredUser\");\r\n }\r\n })\r\n .catch((error) => {\r\n cookies.remove(SSOCookie.Name);\r\n let err = {\r\n message: getErrorMessage(error.response.status, \"authenticateStepTwo\")\r\n };\r\n dispatch(authFailure(err));\r\n dispatch(actionCreater.getUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const authenticateStepThree = (\r\n userInfo,\r\n redirectInfo,\r\n pathname = null,\r\n cookies = null\r\n) => {\r\n return (dispatch, getState) => {\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/account/\" + userInfo.customerId, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then((response) => {\r\n dispatch(authSuccess(true));\r\n dispatch(actionCreater.getUserAccountSuccess(response.data));\r\n if (response.data.accountNumber) {\r\n // if account number exist we set view to usual/full\r\n dispatch(registerCRMSuccess());\r\n\r\n //get cookie for services as dvr\r\n dispatch(\r\n servicesActions.getCookie(response.data.accountNumber, cookies)\r\n );\r\n } // otherwise will shown view NoCRM\r\n\r\n redirectInfo.push(pathname ? pathname : \"/\");\r\n })\r\n .catch((error) => {\r\n cookies.remove(SSOCookie.Name);\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"authenticateStepThree\")\r\n };\r\n dispatch(authFailure(err));\r\n dispatch(actionCreater.getUserAccountFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const authStarted = () => ({\r\n type: \"AUTHENTICATE_STARTED\"\r\n});\r\n\r\nexport const authSuccess = (flag) => ({\r\n type: \"AUTHENTICATE_SUCCESS\",\r\n isAuthenticated: flag\r\n});\r\n\r\nexport const authFailure = (error) => ({\r\n type: \"AUTHENTICATE_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const authReset = () => ({\r\n type: \"AUTH_ERROR_RESET\"\r\n});\r\n\r\nexport const setNotRegUser = () => ({\r\n type: \"SET_NOT_REG_USER\"\r\n});\r\n\r\nexport const clearNotRegUser = () => ({\r\n type: \"CLEAR_NOT_REG_USER\"\r\n});\r\n\r\n/* Registration actions */\r\nexport const userRegistration = (regInfo, history, mode) => {\r\n return (dispatch) => {\r\n dispatch(regStarted());\r\n const regPayload = {\r\n username: regInfo.username,\r\n email: regInfo.email,\r\n password: regInfo.password,\r\n paperless: regInfo.paperless,\r\n htEmail: regInfo.htEmail,\r\n htEmailPassword: regInfo.htEmailPassword,\r\n accountNumber: regInfo.accountNumber,\r\n customerType: regInfo.customerType,\r\n serviceZip: regInfo.serviceZip,\r\n TvPaComplianceFlag: regInfo.tvPaComplianceFlag\r\n };\r\n\r\n return axios\r\n .post(process.env.REACT_APP_API + \"/user/reg\", regPayload, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n })\r\n .then((response) => {\r\n // send success action\r\n if (\r\n response.data &&\r\n response.data.message &&\r\n response.data.message.trim().length > 0\r\n ) {\r\n dispatch(regSuccess({ message: response.data.message }));\r\n } else {\r\n dispatch(regSuccess({ message: strings.authMessages.regSuccess }));\r\n }\r\n\r\n // last step on sucess is to redirect to login form\r\n if (mode === \"customer\") {\r\n let timerId = setTimeout(() => {\r\n clearInterval(timerId);\r\n // redirect to signin page\r\n history.push(\"/signin\");\r\n }, 3000);\r\n }\r\n })\r\n .catch((error) => {\r\n if (\r\n error.response &&\r\n error.response.data &&\r\n error.response.data.message &&\r\n error.response.data.message.trim().length > 0\r\n ) {\r\n dispatch(regFailure({ message: error.response.data.message }));\r\n } else {\r\n dispatch(regFailure(error));\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const regStarted = () => ({\r\n type: \"REGISTRATION_STARTED\"\r\n});\r\n\r\nexport const regSuccess = (msg) => ({\r\n type: \"REGISTRATION_SUCCESS\",\r\n msg: msg\r\n});\r\n\r\nexport const regFailure = (error) => ({\r\n type: \"REGISTRATION_FAILURE\",\r\n error: error\r\n});\r\n\r\n/* Registration actions */\r\nexport const notRegUserRegistration = (regInfo, history, cookies, pathname) => {\r\n return (dispatch, getState) => {\r\n dispatch(regStarted());\r\n const regPayload = {\r\n username: regInfo.username,\r\n userId: regInfo.userId,\r\n email: regInfo.email,\r\n password: regInfo.password,\r\n paperless: regInfo.paperless,\r\n htEmail: regInfo.htEmail,\r\n htEmailPassword: regInfo.htEmailPassword,\r\n accountNumber: regInfo.accountNumber,\r\n customerType: regInfo.customerType,\r\n serviceZip: regInfo.serviceZip,\r\n TvPaComplianceFlag: regInfo.tvPaComplianceFlag\r\n };\r\n\r\n return axios\r\n .post(process.env.REACT_APP_API + \"/user/regNotRegUser\", regPayload, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then((response) => {\r\n // send success action\r\n if (\r\n response.data &&\r\n response.data.message &&\r\n response.data.message.trim().length > 0\r\n ) {\r\n dispatch(regSuccess({ message: response.data.message }));\r\n } else {\r\n dispatch(regSuccess({ message: strings.authMessages.regSuccess }));\r\n }\r\n\r\n // last step on sucess is to redirect to login form\r\n\r\n // last step on sucess is to redirect to login form\r\n\r\n let timerId = setTimeout(() => {\r\n clearInterval(timerId);\r\n\r\n dispatch(authLogout());\r\n dispatch(rootActionCreater.globalResetState());\r\n // redirect to signin page\r\n history.push(\"/signin\");\r\n }, 3000);\r\n\r\n // to change to go to dashboard used but the regNotRegUser method need to update the token and add customer id and account number\r\n // const credentials = {\r\n // userName: regInfo.username,\r\n // userId: regInfo.userId,\r\n // email: regInfo.email,\r\n // password: regInfo.password,\r\n // paperless: regInfo.paperless,\r\n // htEmail: regInfo.htEmail,\r\n // htEmailPassword: regInfo.htEmailPassword,\r\n // accountNumber: regInfo.accountNumber,\r\n // customerType: regInfo.customerType,\r\n // serviceZip: regInfo.serviceZip,\r\n // TvPaComplianceFlag: regInfo.tvPaComplianceFlag\r\n // };\r\n\r\n // let timerId = setTimeout(\r\n // () => {\r\n // clearInterval(timerId);\r\n // // redirect to to dashboard\r\n // dispatch(\r\n // authenticateStepTwo(credentials, history, pathname, cookies)\r\n // );\r\n // },\r\n // 3000,\r\n // credentials,\r\n // history,\r\n // pathname,\r\n // cookies\r\n // );\r\n })\r\n .catch((error) => {\r\n if (\r\n error.response &&\r\n error.response.data &&\r\n error.response.data.message &&\r\n error.response.data.message.trim().length > 0\r\n ) {\r\n dispatch(regFailure({ message: error.response.data.message }));\r\n } else {\r\n dispatch(regFailure(error));\r\n }\r\n });\r\n };\r\n};\r\n\r\n/* Register CRM actions */\r\nexport const registerCrmPipeline = (accountNumber) => {\r\n return (dispatch) => {\r\n dispatch(checkAccount(accountNumber)).then(() => {\r\n dispatch(registerCRM(accountNumber));\r\n });\r\n };\r\n};\r\n\r\nexport const registerCRM = (accountNumber) => {\r\n return (dispatch, getState) => {\r\n dispatch(registerCRMStarted());\r\n\r\n const newAccount = {\r\n ...getState().user.account,\r\n accountNumber: accountNumber\r\n };\r\n\r\n return axios\r\n .put(process.env.REACT_APP_API + \"/account\", newAccount, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n })\r\n .then((response) => {\r\n // response.data contain updated account object\r\n dispatch(actionCreater.getUserAccountSuccess(response.data));\r\n\r\n // update user date with new custometId from account object\r\n const newUserInfo = {\r\n ...getState().user.userInfo,\r\n customerId: response.data.customerId\r\n };\r\n\r\n // update user with new user info\r\n dispatch(actionCreater.updateUser(newUserInfo));\r\n\r\n dispatch(registerCRMSuccess());\r\n })\r\n .catch((error) => {\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"registerCRM\")\r\n };\r\n dispatch(registerCRMFailure(err));\r\n });\r\n };\r\n};\r\n\r\nexport const registerCRMStarted = () => ({\r\n type: \"REGISTER_CRM_STARTED\"\r\n});\r\n\r\nexport const registerCRMSuccess = () => ({\r\n type: \"REGISTER_CRM_SUCCESS\"\r\n});\r\n\r\nexport const registerCRMFailure = (error) => ({\r\n type: \"REGISTER_CRM_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const checkAccount = (accountNumber) => {\r\n return (dispatch, getState) => {\r\n dispatch(checkAccountStarted());\r\n\r\n return axios\r\n .head(\r\n process.env.REACT_APP_API +\r\n \"/account/check/\" +\r\n accountNumber +\r\n \"/\" +\r\n getState().user.account.serviceZip,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(checkAccountSuccess());\r\n return goToNextPipelineStep();\r\n })\r\n .catch((error) => {\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"checkAccount\")\r\n };\r\n dispatch(checkAccountFailure(err));\r\n return stopPipeline();\r\n });\r\n };\r\n};\r\n\r\nexport const checkAccountStarted = () => ({\r\n type: \"CHECK_ACCOUNT_STARTED\"\r\n});\r\n\r\nexport const checkAccountSuccess = () => ({\r\n type: \"CHECK_ACCOUNT_SUCCESS\"\r\n});\r\n\r\nexport const checkAccountFailure = (error) => ({\r\n type: \"CHECK_ACCOUNT_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const resetState = () => ({\r\n type: \"AUTH_RESET_STATE\"\r\n});\r\n\r\nexport const checkHtEmail = (\r\n email,\r\n pswd,\r\n accountNumber,\r\n errorCallabckFn = null\r\n) => {\r\n return (dispatch) => {\r\n dispatch(checkHtEmailStarted());\r\n\r\n const checkEmail = {\r\n EmailAddress: email,\r\n EmailPassword: pswd,\r\n AccountNumber: accountNumber\r\n };\r\n\r\n return axios\r\n .post(\r\n process.env.REACT_APP_UUMAX + \"/htemail/checkpassword\",\r\n checkEmail,\r\n {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n }\r\n )\r\n .then((response) => {\r\n console.log(response);\r\n })\r\n .catch((error) => {\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"checkHtEmail\")\r\n };\r\n\r\n if (typeof errorCallabckFn === \"function\") {\r\n dispatch(errorCallabckFn(err));\r\n }\r\n dispatch(checkHtEmailFailure(err));\r\n // interrupt of the going to the next registration step\r\n return new Promise(() => {});\r\n });\r\n };\r\n};\r\n\r\nexport const checkHtEmailStarted = () => ({\r\n type: \"CHECK_HT_EMAIL_STARTED\"\r\n});\r\n\r\nexport const checkHtEmailSuccess = () => ({\r\n type: \"CHECK_HT_EMAIL_SUCCESS\"\r\n});\r\n\r\nexport const checkHtEmailFailure = (error) => ({\r\n type: \"CHECK_HT_EMAIL_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const setToken = (token) => ({\r\n type: \"SET_TOKEN\",\r\n token: token\r\n});\r\n\r\nexport const setAdfsIdToken = (token) => ({\r\n type: \"SET_ADFS_ID_TOKEN\",\r\n token: token\r\n});\r\n\r\nexport const authLogout = () => {\r\n return (dispatch, getState) => {\r\n const username = getState().user.userInfo.username;\r\n\r\n return axios\r\n .post(process.env.REACT_APP_API + \"/auth/logout/\" + username, null, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then((response) => {})\r\n .catch((error) => {});\r\n };\r\n};\r\n","export const SSOCookie = {\r\n Name: \"9A2EA1AFC009\"\r\n};\r\n","import { strings } from \"../resources/Strings\";\r\n\r\nexport const getTotalBalance = invoices => {\r\n return Array.isArray(invoices) && invoices.length\r\n ? Number.parseFloat(\r\n invoices.reduce((total, invoice) => {\r\n return total + invoice.BalanceDue;\r\n }, 0)\r\n ).toFixed(2)\r\n : \"0\";\r\n};\r\n\r\nexport const getEarliestDueDate = invoices => {\r\n let earliestDueDate = null;\r\n if (Array.isArray(invoices) && invoices.length) {\r\n invoices.forEach(invoice => {\r\n const currentinvoiceDueDate = new Date(invoice.InvoiceDueDate);\r\n\r\n if (earliestDueDate) {\r\n if (currentinvoiceDueDate < earliestDueDate) {\r\n earliestDueDate = currentinvoiceDueDate;\r\n }\r\n } else {\r\n earliestDueDate = currentinvoiceDueDate;\r\n }\r\n });\r\n return earliestDueDate;\r\n }\r\n return null;\r\n};\r\n\r\nexport const getEarliestInvoiceDate = invoices => {\r\n // earliestDueDate used as criteria as required\r\n let earliestDueDate = null;\r\n let invoiceDate = null;\r\n if (Array.isArray(invoices) && invoices.length) {\r\n invoices.forEach(invoice => {\r\n const currentInvoiceDueDate = new Date(invoice.InvoiceDueDate);\r\n const currentInvoiceDate = new Date(invoice.InvoiceDate);\r\n\r\n if (earliestDueDate) {\r\n if (currentInvoiceDueDate < earliestDueDate) {\r\n earliestDueDate = currentInvoiceDueDate;\r\n invoiceDate = currentInvoiceDate;\r\n }\r\n } else {\r\n earliestDueDate = currentInvoiceDueDate;\r\n invoiceDate = currentInvoiceDate;\r\n }\r\n });\r\n return invoiceDate;\r\n }\r\n return null;\r\n};\r\n\r\nexport const getFormatedDate = date => {\r\n const monthNames = [\r\n strings.billingLib.monthJan,\r\n strings.billingLib.monthFeb,\r\n strings.billingLib.monthMar,\r\n strings.billingLib.monthApr,\r\n strings.billingLib.monthMay,\r\n strings.billingLib.monthJune,\r\n strings.billingLib.monthJuly,\r\n strings.billingLib.monthAug,\r\n strings.billingLib.monthSept,\r\n strings.billingLib.monthOct,\r\n strings.billingLib.monthNov,\r\n strings.billingLib.monthDec\r\n ];\r\n return (\r\n monthNames[date.getMonth()] +\r\n \" \" +\r\n date.getDate() +\r\n \", \" +\r\n date.getFullYear()\r\n );\r\n};\r\n\r\nexport const getDaysInMonth = (month, year) => {\r\n return new Date(year, month, 0).getDate();\r\n};\r\n\r\nexport const getDiffDays = (date1, date2) => {\r\n const timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n return Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n};\r\n","import { strings } from \"../resources/Strings\";\r\n\r\nexport const ServicesId = {\r\n TV_ID: 2,\r\n HSI_ID: 3,\r\n HTEMAIL_ID: 5,\r\n HOMEPHONE_ID: 6,\r\n FSECURE_ID: 9,\r\n HTSTATSPORTAL_ID: 999\r\n};\r\n\r\nexport const BusinessServices = [\r\n {\r\n serviceId: 5,\r\n title: strings.services.busEmail,\r\n url: \"https://webmail.hawaiiantel.net/\"\r\n },\r\n {\r\n serviceId: 6,\r\n title: strings.services.busVoicemail,\r\n url: \"http://vm.hawaiiantel.com/\"\r\n }\r\n];\r\n\r\nexport const getProductsOnly = products => {\r\n return products.filter(product => product.isAddon === false);\r\n};\r\n\r\nexport const getAddonsOnly = products => {\r\n return products.filter(product => product.isAddon === true);\r\n};\r\n\r\nexport const getOrderedProducts = products => {\r\n const productsOnly = getProductsOnly(products);\r\n const addonsOnly = getAddonsOnly(products);\r\n return [...productsOnly, ...addonsOnly];\r\n};\r\n\r\nexport const isContainCrmId = (ids, products) => {\r\n if (ids) {\r\n let arrayIds = ids.split(\";\");\r\n\r\n for (var i = 0; i < products.length; i++) {\r\n if (arrayIds.includes(products[i].componentId)) {\r\n return true;\r\n }\r\n\r\n let matchElements = products[i].elements.filter(element =>\r\n arrayIds.includes(element.elementId)\r\n );\r\n\r\n if (matchElements.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const addSerivce = (services, serviceId, serviceTitle) => {\r\n const htEmailService = {\r\n serviceId: serviceId,\r\n title: serviceTitle,\r\n products: []\r\n };\r\n services.push(htEmailService);\r\n return services;\r\n};\r\n\r\nexport const isSerivceExist = (services, serviceId) => {\r\n let isExist = false;\r\n services.forEach(s => {\r\n if (s.serviceId === serviceId) {\r\n isExist = true;\r\n }\r\n });\r\n return isExist;\r\n};\r\n","import * as userActionCreater from \"./userActions\";\r\nimport * as billingActionsCreater from \"./billingActions\";\r\nimport * as serviceActionsCreater from \"./servicesActions\";\r\nimport * as authActionsCreater from \"./authActions\";\r\nimport * as householdActionsCreater from \"./householdActions\";\r\n\r\nexport const globalResetState = () => {\r\n return dispatch => {\r\n dispatch(userActionCreater.resetState());\r\n dispatch(billingActionsCreater.resetState());\r\n dispatch(serviceActionsCreater.resetState());\r\n dispatch(authActionsCreater.resetState());\r\n dispatch(householdActionsCreater.resetState());\r\n };\r\n};\r\n","import axios from \"axios\";\r\nimport { getErrorMessage } from \"../lib/message\";\r\n\r\nexport const getChildUsers = id => {\r\n return (dispatch, getState) => {\r\n dispatch(getChildUserStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/user/children/\" + id, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getChildUserSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getChildUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getChildUserStarted = () => ({\r\n type: \"GET_CHILD_STARTED\"\r\n});\r\n\r\nexport const getChildUserSuccess = childrens => ({\r\n type: \"GET_CHILD_SUCCESS\",\r\n childrens: childrens\r\n});\r\n\r\nexport const getChildUserFailure = error => ({\r\n type: \"GET_CHILD_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Update actions\r\nexport const updateChildUser = user => {\r\n return (dispatch, getState) => {\r\n dispatch(updateChildUserStarted());\r\n\r\n return axios\r\n .put(process.env.REACT_APP_API + \"/user/\" + user.userId, user, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(updateChildUserSuccess(user));\r\n })\r\n .catch(error => {\r\n dispatch(updateChildUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updateChildUserStarted = () => ({\r\n type: \"UPDATE_CHILD_STARTED\"\r\n});\r\n\r\nexport const updateChildUserSuccess = user => ({\r\n type: \"UPDATE_CHILD_SUCCESS\",\r\n user: user\r\n});\r\n\r\nexport const updateChildUserFailure = error => ({\r\n type: \"UPDATE_CHILD_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Delete actions\r\nexport const deleteChildUser = user => {\r\n return (dispatch, getState) => {\r\n dispatch(deleteChildUserStarted());\r\n\r\n return axios\r\n .delete(process.env.REACT_APP_API + \"/user/\" + user.username, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(deleteChildUserSuccess(user.userId));\r\n })\r\n .catch(error => {\r\n dispatch(deleteChildUserFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const deleteChildUserStarted = () => ({\r\n type: \"DELETE_CHILD_STARTED\"\r\n});\r\n\r\nexport const deleteChildUserSuccess = id => ({\r\n type: \"DELETE_CHILD_SUCCESS\",\r\n id: id\r\n});\r\n\r\nexport const deleteChildUserFailure = error => ({\r\n type: \"DELETE_CHILD_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Add actions\r\nexport const addChildUser = (user, successCallbackFn) => {\r\n return (dispatch, getState) => {\r\n dispatch(addChildUserStarted());\r\n\r\n const newUser = {\r\n customerId: user.parentUser.customerId,\r\n username: user.username.toLowerCase(),\r\n email: user.email,\r\n parentalControlEnabled: true,\r\n enabled: true,\r\n userRoles: user.userRoles,\r\n parentId: user.parentUser.userId,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n parentalControlTV: user.parentalControlTV,\r\n parentalControlMovie: user.parentalControlMovie,\r\n password: user.password,\r\n parentUsername: getState().user.userInfo.username\r\n };\r\n\r\n return axios\r\n .post(process.env.REACT_APP_API + \"/user\", newUser, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getChildUsers(user.parentUser.userId));\r\n successCallbackFn();\r\n })\r\n .catch(error => {\r\n let err = {\r\n message: getErrorMessage(\r\n error.response ? error.response.status : null,\r\n \"addChildUser\"\r\n )\r\n };\r\n dispatch(addChildUserFailure(err));\r\n });\r\n };\r\n};\r\n\r\nexport const addChildUserStarted = () => ({\r\n type: \"ADD_CHILD_STARTED\"\r\n});\r\n\r\nexport const addChildUserSuccess = user => ({\r\n type: \"ADD_CHILD_SUCCESS\",\r\n user: user\r\n});\r\n\r\nexport const addChildUserFailure = error => ({\r\n type: \"ADD_CHILD_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Get TV ratings\r\nexport const getTVRatings = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getTVRatingsStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/user/parentalcontrols/TV\", {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getTVRatingsSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getTVRatingsFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getTVRatingsStarted = () => ({\r\n type: \"GET_TV_RATINGS_STARTED\"\r\n});\r\n\r\nexport const getTVRatingsSuccess = ratings => ({\r\n type: \"GET_TV_RATINGS_SUCCESS\",\r\n ratings: ratings\r\n});\r\n\r\nexport const getTVRatingsFailure = error => ({\r\n type: \"GET_TV_RATINGS_FAILURE\",\r\n error: error\r\n});\r\n\r\n// Get Movie ratings\r\nexport const getMovieRatings = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getMovieRatingsStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/user/parentalcontrols/movie\", {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getMovieRatingsSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getMovieRatingsFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getMovieRatingsStarted = () => ({\r\n type: \"GET_MOVIE_RATINGS_STARTED\"\r\n});\r\n\r\nexport const getMovieRatingsSuccess = ratings => ({\r\n type: \"GET_MOVIE_RATINGS_SUCCESS\",\r\n ratings: ratings\r\n});\r\n\r\nexport const getMovieRatingsFailure = error => ({\r\n type: \"GET_MOVIE_RATINGS_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const resetState = () => ({\r\n type: \"HOUSEHOLD_RESET_STATE\"\r\n});\r\n\r\nexport const clearError = () => ({\r\n type: \"HOUSEHOLD_CLEAR_ERROR\"\r\n});\r\n","export const stopPipeline = () => {\r\n return new Promise(() => {});\r\n};\r\n\r\nexport const goToNextPipelineStep = (data = null) => {\r\n return new Promise(resolve => {\r\n resolve(data);\r\n });\r\n};\r\n","import LocalizedStrings from \"react-localization\";\r\n\r\nexport const strings = new LocalizedStrings({\r\n en: {\r\n loading: \"Loading...\",\r\n closedAccMsg:\r\n \"Your account is closed, but you are still able to pay your bills online\",\r\n forgotPassword: {\r\n userNameRequired: \"Username is required.\",\r\n passwordReset: \"Password reset\",\r\n description:\r\n \"Enter your username, using registered email we'll send you message with recovery code. So you can reset password.\",\r\n inputLabel: \"Username\",\r\n submit: \"Submit\",\r\n dontRemember: \"If you don't remember your Username,\\n {0}.\",\r\n clickHere: \"click here\",\r\n backToLogin: \"Back to Login\",\r\n },\r\n forgotUsername: {\r\n emailNameRequired: \"Email is required.\",\r\n forgotUsername: \"Forgot Your Username?\",\r\n description:\r\n \"Please enter the email address associated with your Hawaiian Telcom account. We'll send you an email containing your Username.\",\r\n inputLabel: \"Email\",\r\n submit: \"Submit\",\r\n dontRemember: \"If you don't remember your Password,\\n {0}.\",\r\n clickHere: \"click here\",\r\n backToLogin: \"Back to Login\",\r\n },\r\n infoBanner: {\r\n nowYou: \"Manage all your Hawaiian Telcom services in one place.\",\r\n text1: \"View all your services on one page\",\r\n text2: \"Check hawaiiantel.net email accounts\",\r\n text3: \"Submit support inquiries\",\r\n text4: \"Request upgrades to TV service\",\r\n text5: \"View bill online and make payments\",\r\n mobileAppText: \"HT My Account\",\r\n youCan:\r\n \"To access your account from your mobile device, download the {0} mobile app from The Apple App Store or Google Play Store.\",\r\n },\r\n topBanner: {\r\n text1: \"Welcome to\",\r\n text2: \"My Account\",\r\n text3: \"\",\r\n },\r\n optionalFields: {\r\n inputHtEmailLabel: \"@hawaiiantel.net Email Address\",\r\n inputHtEmailPlaceholder: \"Email Address\",\r\n inputHtEmailAppendText: \"@hawaiiantel.net\",\r\n inputHtEmailPswdLabel: \"Email Password\",\r\n inputHtEmailPswdPlaceholder: \"Email Password\",\r\n },\r\n paperless: {\r\n header: \"Billing Preference:\",\r\n optionText1: \"Paper Bill\",\r\n optionText2: \"Paperless Bill\",\r\n },\r\n registerCRM: {\r\n accountRequired: \"Account number required.\",\r\n accountLengthError: \"Account number must contain 15 digit.\",\r\n accountWrong:\r\n \"Your Account Number doesn't match our records. Please try again.\",\r\n welcome: \"Welcome {0}!\",\r\n header: \"Please enter your account number\",\r\n text:\r\n \"Your 15 digit account number can be found on you order confirmation email or at the top of your monthly statement.\",\r\n inputPlaceholder: \"Account number\",\r\n buttonText: \"Register\",\r\n },\r\n registration: {\r\n termsRequired: \"You must accept Terms of Service and Privacy Policy.\",\r\n accountNumberValidation:\r\n \"Your Account Number doesn't match our records. Please try again.\",\r\n zipValidation:\r\n \"Your Zip Code doesn't match our records. Please try again.\",\r\n usernameValidation:\r\n \"Username must contain between 8 to 20 characters and cannot contain the following symbols: /[]:;|=,+*?<>@.\",\r\n emailValidation: \"Enter your full email address, including the '@'.\",\r\n passwordValidation:\r\n \"Password doesn't meet complexity strength. Password must not contain your username (entire or partial). Passwords must contain characters from 3 of the following 4 categories: 1) Uppercase characters; 2) Lowercase characters; 3) A number 0 through 9; 4) Nonalphanumeric characters: ~!@#$%^&*_-+=|(){}[]:;,.?/.\",\r\n confirmPasswordValidation:\r\n \"These passwords don't match. Please try again.\",\r\n htEmailValidation:\r\n \"Please enter you Email address username only, without domain.\",\r\n wirelessPhoneNumberValidation:\r\n \"Your Phone doesn't match our records. Please try again.\",\r\n pinValidation: \"Your Pin doesn't match our records. Please try again.\",\r\n fillThis: \"Please fill this out\",\r\n header: \"Register your Hawaiian Telcom Account.\",\r\n optional: \"Optional Step:\",\r\n optionalText:\r\n \"Register your Hawaiian Telcom services to activate additional features.\",\r\n buttonText: \"Submit\",\r\n backText: \"Back to Login\",\r\n resViewSelect: \"Residential\",\r\n busViewSelect: \"Business\",\r\n resetFormButton: \"Reset Form\",\r\n tvpaComplianceText: \"I agree to receive my Annual TV Notice via Email\",\r\n },\r\n registrationNoRegUser: {\r\n termsRequired: \"You must accept Terms of Service and Privacy Policy.\",\r\n accountNumberValidation:\r\n \"Your Account Number doesn't match our records. Please try again.\",\r\n zipValidation:\r\n \"Your Zip Code doesn't match our records. Please try again.\",\r\n passwordValidation:\r\n \"Password doesn't meet complexity strength. Password must not contain your username (entire or partial). Passwords must contain characters from 3 of the following 4 categories: 1) Uppercase characters; 2) Lowercase characters; 3) A number 0 through 9; 4) Nonalphanumeric characters: ~!@#$%^&*_-+=|(){}[]:;,.?/.\",\r\n confirmPasswordValidation:\r\n \"These passwords don't match. Please try again.\",\r\n htEmailValidation:\r\n \"Please enter you Email address username only, without domain.\",\r\n wirelessPhoneNumberValidation:\r\n \"Your Phone doesn't match our records. Please try again.\",\r\n pinValidation: \"Your Pin doesn't match our records. Please try again.\",\r\n fillThis: \"Please fill this out\",\r\n header: \"register your Hawaiian Telcom Account.\",\r\n optional: \"Optional Step:\",\r\n optionalText:\r\n \"Register your Hawaiian Telcom services to activate additional features.\",\r\n buttonText: \"Submit\",\r\n backText: \"Back to Login\",\r\n resViewSelect: \"Residential\",\r\n busViewSelect: \"Business\",\r\n resetFormButton: \"Reset Form\",\r\n tvpaComplianceText: \"I agree to receive my Annual TV Notice via Email\",\r\n },\r\n requiredFields: {\r\n accountLabel: \"Account number\",\r\n accountTooltip:\r\n \"Your 15 digit Account Number can be found at the top of your Hawaiian Telcom monthly statement.\",\r\n zipLabel: \"Zip code\",\r\n zipTooltip:\r\n \"Your Service Zip Code is the zip code of the physical address where you receive Hawaiian Telcom Service.\",\r\n busZipTooltip:\r\n \"Your Billing Zip Code is the zip code of the address where you receive your Hawaiian Telcom billing statements.\",\r\n usernameLabel: \"User Name\",\r\n usernameTooltip:\r\n \"Use at least 8 characters. You can use letters, numbers, and underscores.\",\r\n emailLabel: \"Email\",\r\n emailTooltip:\r\n \"We'll use the email address for things like managing your account and password, and sending you important information regarding your services.\",\r\n passwordLabel: \"Password\",\r\n passwordTooltip:\r\n \"Passwords must not contain the user's username (entire or partial). Passwords must contain characters from three of the following four categories: 1) Uppercase characters. 2) Lowercase characters. 3) A number 0 through 9. 4) Nonalphanumeric characters: ~!@#$%^&*_-+=`|(){}[]:;,.?/\",\r\n confirmPasswordLabel: \"Confirm Password\",\r\n },\r\n resetPassword: {\r\n passwordRequired: \"New password required.\",\r\n confirmPassword: \"Confirm new password required.\",\r\n passwordsMustMatch: \"Passwords must match.\",\r\n header: \"Password reset\",\r\n inputPasswordLabel: \"New Password\",\r\n inputPasswordPlaceholder: \"New Password\",\r\n inputConfirmLabel: \"Confirm New Password\",\r\n inputConfirmPlaceholder: \"Confirm New Password\",\r\n backText: \"Back to Login\",\r\n },\r\n signIn: {\r\n nameRequired: \"User Name required.\",\r\n passwordRequired: \"Password required.\",\r\n uumaxTokenError: \"Bad token\",\r\n noTokenError: \"No token\",\r\n header: \"Sign In\",\r\n userNameLabel: \"Username\",\r\n userNamePlaceholder: \"Username\",\r\n passwordLabel: \"Password\",\r\n passwordPlaceholder: \"Password\",\r\n rememberMe: \"Remember Me\",\r\n submitText: \"Sign In\",\r\n forgotPassword: \"Forgot Password\",\r\n forgotUsername: \"Forgot Username\",\r\n register: \"Register Now\",\r\n or: \"Or {0} to get started.\",\r\n },\r\n\r\n adminSignIn: {\r\n nameRequired: \"User Name required.\",\r\n passwordRequired: \"Password required.\",\r\n uumaxTokenError: \"Bad token\",\r\n noTokenError: \"No token\",\r\n header: \"Sign in as user\",\r\n userNameLabel: \"User Name\",\r\n userNamePlaceholder: \"User name\",\r\n passwordLabel: \"Password\",\r\n passwordPlaceholder: \"Password\",\r\n rememberMe: \"Remember me\",\r\n submitText: \"Sign In\",\r\n forgotPassword: \"I forgot my password\",\r\n forgotUsername: \"I forgot my username\",\r\n register: \"Register my account\",\r\n },\r\n terms: {\r\n links: \"I agree to the Hawaiian Telcom {0} and {1}\",\r\n termsOf: \"Terms of Service\",\r\n privacy: \"Privacy Policy\",\r\n },\r\n verifyCode: {\r\n codeRequired: \"Code is required.\",\r\n header: \"Verify Code\",\r\n text:\r\n \"A message was sent to you {0} Please check your email and follow the instructions.\",\r\n inputCodeLabel: \"Code\",\r\n inputCodePlaceholder: \"Code\",\r\n buttonText: \"Submit\",\r\n or: \"or\",\r\n forgotPasswordText: \"I haven't received Recovery Code\",\r\n again: \"Start recovery again\",\r\n forgotUsername: \"If you don't remember your Username,\",\r\n clickHere: \"click here\",\r\n back: \"Back to Login\",\r\n },\r\n billingAccount: {\r\n header: \"Account\",\r\n accountLabel: \"Account Number:\",\r\n nameLabel: \"Customer Name:\",\r\n },\r\n billingAddress: { header: \"Billing Address\" },\r\n billingBalance: { yourBalance: \"Your Current Balance\" },\r\n billingError: {\r\n header: \"Billing\",\r\n unableToRegister:\r\n \"Unable to register on Invoice Cloud.\\nPlease contact support.\",\r\n },\r\n billingLinks: {\r\n payBill: \"View & Pay Bill\",\r\n history: \"View Billing History\",\r\n },\r\n billingPayment: {\r\n payBy: \"Pay by {0}\",\r\n buttonText: \"View & Pay Bill\",\r\n },\r\n billingPeriod: {\r\n daysPastDue: \"Days Past Due\",\r\n daysLeft: \"Days Left\",\r\n },\r\n billingSummary: { header: \"Billing\" },\r\n billingTabs: {\r\n recent: \"Recent{0}Bills\",\r\n open: \"Open{0}Bills\",\r\n closed: \"Closed{0}Bills\",\r\n paperless: \"Paperless Billing\",\r\n payments: \"Payment History\",\r\n receipts: \"Receipt History\", \r\n oneTimePayment: \"Pay Now\",\r\n payment: \"Payment Methods\",\r\n autopay: \"AutoPay\",\r\n scheduled: \"Scheduled{0}Payments\",\r\n recurring: \"Recurring{0}Payments\",\r\n payByText: \"Pay By{0}Text\",\r\n historicalData: \"Invoices\",\r\n recentTitle: \"Recent Bills\",\r\n openTitle: \"Open Bills\",\r\n closedTitle: \"Closed Bills\",\r\n paperlessTitle: \"Paperless Setting\",\r\n paymentsTitle: \"Payments\",\r\n receiptsTitle: \"Receipt History\", \r\n oneTimePaymentTitle: \"Make One-Time Payment\",\r\n paymentTitle: \"Payment Methods\",\r\n autopayTitle: \"Autopay\",\r\n scheduledTitle: \"Scheduled Payments\",\r\n recurringTitle: \"Recurring Payments\",\r\n payByTextTitle: \"Pay By Text\",\r\n },\r\n billingHistoricalData: {\r\n radioLabel1: \"Invoice\",\r\n radioLabel2: \"Late Notice\",\r\n startLabel: \"Start Date\",\r\n endLabel: \"End Date\",\r\n buttonText: \"Search\",\r\n pressSearch: \"Press Search to see reports\",\r\n noReports: \"No reports\",\r\n tableTh0: \"#\",\r\n tableTh1: \"Bill Date\",\r\n tableTh2: \"Document ID\",\r\n limitRecordsText:\r\n \"Please note that only up to 100 records are displayed. Please narrow your filter criteria to see other records.\",\r\n errorPublicView: {\r\n header: \"View Invoices\",\r\n msg: \"The account does not exist or is not a valid format.\",\r\n },\r\n },\r\n carousel: {\r\n noAds: \"No Ads\",\r\n previous: \"Previous\",\r\n next: \"Next\",\r\n },\r\n dashboard: {\r\n servicesHeader: \"Services\",\r\n servicesUpgradebtnText: \"Upgrade\",\r\n },\r\n addNewChildUser: {\r\n buttonText: \"Add A User\",\r\n },\r\n deleteConfirmation: {\r\n modalTitle: \"Delete Child Account\",\r\n question: 'Are you sure you want to delete \"{0}\" account?',\r\n buttonClose: \"Close\",\r\n buttonDelete: \"Delete\",\r\n },\r\n editUserInfoBox: {\r\n modalTitle: \"Edit User Profile\",\r\n closeXLabel: \"Close\",\r\n firstNameLabel: \"First Name\",\r\n firstNamePlaceholder: \"First Name\",\r\n lastNameLabel: \"Last Name\",\r\n lastNamePlaceholder: \"Last Name\",\r\n userNameLabel: \"User Name\",\r\n userNamePlaceholder: \"User Name\",\r\n emailLabel: \"Email\",\r\n emailPlaceholder: \"Email\",\r\n adminLabel: \"Admin\",\r\n tvRatingLabel: \"TV Rating\",\r\n movieRatingLabel: \"Movie Rating\",\r\n buttonSave: \"Save\",\r\n },\r\n primaryUser: {\r\n header: \"Primary User\",\r\n accountLabel: \"Account number\",\r\n primaryUserNameLabel: \"Primary username\",\r\n },\r\n householdProfiles: {\r\n header: \"Manage Users\",\r\n topText:\r\n \"Create unique Users accounts for watching TV Everywhere for each member in your family. You can customize the TV Rating and Movie Ratings per account to manage what your family has access to.\",\r\n secondText:\r\n \"Accounts without Admin assigned will not have access to Billing Information, Pay Per View, or TV Device Management. Fioptics+ Parental Controls are managed in the Fioptics+ app.\",\r\n },\r\n householdUser: {\r\n emailLabel: \"Email\",\r\n adminLabel: \"Admin\",\r\n tvRatingLabel: \"TV Rating\",\r\n movieRatingLabel: \"Movie Rating\",\r\n editPassword: \"Change Password\",\r\n yes: \"yes\",\r\n no: \"no\",\r\n },\r\n householdUsersList: { noUsers: \"No Users\" },\r\n modalAddForm: {\r\n modalTitle: \"Add User Profile\",\r\n closeXLabel: \"Close\",\r\n firstNameLabel: \"First Name\",\r\n firstNamePlaceholder: \"First Name\",\r\n lastNameLabel: \"Last Name\",\r\n lastNamePlaceholder: \"Last Name\",\r\n userNameLabel: \"User Name\",\r\n userNamePlaceholder: \"User Name\",\r\n emailLabel: \"Email\",\r\n emailPlaceholder: \"Email\",\r\n adminLabel: \"Admin\",\r\n tvRatingLabel: \"TV Rating\",\r\n movieRatingLabel: \"Movie Rating\",\r\n buttonSave: \"Save\",\r\n passwordLabel: \"Password\",\r\n passwordPlaceholder: \"Password\",\r\n required: \"This is a required field.\",\r\n emptyTVRating: \"Please select a TV Rating.\",\r\n emptyMovieRating: \"Please select a Movie Rating.\",\r\n },\r\n modalEditPwrdForm: {\r\n currentPasswordRequired: \"Current password required.\",\r\n newPasswordRequired: \"New password required.\",\r\n confirmNewPasswordRequired: \"Confirm new password required.\",\r\n mustMatch: \"Passwords must match.\",\r\n modalTitle: \"Change password\",\r\n currentPasswordLabel: \"Current Password\",\r\n currentPasswordPlaceholder: \"Current Password\",\r\n newPasswordLabel: \"New Password\",\r\n newPasswordPlaceholder: \"New Password\",\r\n confirmNewPasswordLabel: \"Confirm New Password\",\r\n confirmNewPasswordPlaceholder: \"Confirm New Password\",\r\n buttonSubmit: \"Confirm\",\r\n successMessage: \"Password updated successfully.\",\r\n },\r\n parentalControlMovie: {\r\n noRating: \"No Rating\",\r\n defaultValue: \"Choose...\",\r\n },\r\n parentalControlTV: { noRating: \"No Rating\", defaultValue: \"Choose...\" },\r\n headerLeftLinks: {\r\n myHt: \"My HT\",\r\n myAccount: \"My Account\",\r\n watchTV: \"Watch TV\",\r\n },\r\n headerRightLinks: { contact: \"Contact Us\", signOut: \"Sign Out\" },\r\n navBar: {\r\n ariaLabel: \"Toggle navigation\",\r\n dashboardLink: \"Account Overview\",\r\n profileLink: \"Profile Settings\",\r\n billingLink: \"Billing\",\r\n servicesLink: \"Services\",\r\n householdLink: \"Manage Users\",\r\n helpandsupportLink: \"Help & Support\",\r\n // supportLink: \"Support Requests\",\r\n },\r\n address: { notSet: \"Not set\" },\r\n profileAddress: {\r\n header: \"Address\",\r\n serviceTitle: \"Service\",\r\n billingTitle: \"Billing\",\r\n noteRes:\r\n \"Please call us at 643-3456 to change your service or billing address.\",\r\n noteNoRes:\r\n \"Please call us at 643-4411 to change your service or billing address.\",\r\n },\r\n profileCard: {\r\n welcome: \"Welcome {0}!\",\r\n accountTitle: \"Account:\",\r\n nameTitle: \"User Name:\",\r\n nicknameTitle: \"Nickname:\",\r\n serviceAddressTitle: \"Service Address:\",\r\n zipCodeTitle: \"Zip Code\",\r\n },\r\n profileEmail: {\r\n header: \"Email\",\r\n },\r\n editEmail: {\r\n notValid: \"Email not valid\",\r\n modalTitle: \"Edit Primary Email\",\r\n successMessage: \"Email updated successfully.\",\r\n labelText: \"Primary Email\",\r\n placeholder: \"Primary Email\",\r\n },\r\n editPhone: {\r\n notValid: \"Phone not valid\",\r\n modalTitle: \"Edit Personal Phone\",\r\n successMessage: \"Phone updated successfully.\",\r\n labelText: \"Personal Phone\",\r\n placeholder: \"Personal Phone\",\r\n },\r\n editHtEmail: {\r\n notValid: \"HT.Net Email not valid\",\r\n modalTitle: \"Edit HT.Net Email\",\r\n successMessage: \"HT.Net Email updated successfully.\",\r\n labelText: \"HT.Net Email\",\r\n placeholder: \"HT.Net Email\",\r\n pswdLabelText: \"HT.Net Email password\",\r\n pswdPlaceholder: \"HT.Net Email password\",\r\n addBtn: \"Edit Linked Email\",\r\n htEmailValidation: \"Enter your full email address, including the '@'.\",\r\n },\r\n editWireless: {\r\n phoneNotValid: \"Phone is not valid\",\r\n pinNotValid: \"Pin is not valid\",\r\n modalTitle: \"Edit Wireless info\",\r\n successMessage: \"Wireless info updated successfully.\",\r\n phoneLabelText: \"Wireless Phone\",\r\n phonePlaceholder: \"Wireless Phone\",\r\n pinLabelText: \"Wireless Phone 4 digit PIN\",\r\n pinPlaceholder: \"Wireless Pin\",\r\n addBtn: \"Add Wireless Phone\",\r\n },\r\n fsecureModal: {\r\n updateTitle: \"Update Email Address\",\r\n updateSuccessMessage: \"Email address successfully updated\",\r\n updateEmailLabelText: \"Email Address\",\r\n updateEmailPlaceholder: \"Email Address\",\r\n },\r\n editNickname: {\r\n notValid: \"Nickname not valid\",\r\n modalTitle: \"Edit Nickname\",\r\n successMessage: \"Nickname updated successfully.\",\r\n labelText: \"Nickname\",\r\n placeholder: \"Nickname\",\r\n },\r\n editZipCode: {\r\n notValid: \"Zip Code not valid\",\r\n modalTitle: \"Edit Zip Code\",\r\n successMessage: \"Zip Code updated successfully.\",\r\n labelText: \"Zip Code\",\r\n placeholder: \"Zip Code\",\r\n },\r\n profileHouseholdProfiles: {\r\n header: \"Manage Users\",\r\n },\r\n profilePassword: { header: \"My Account Password\" },\r\n profilePhone: { header: \"Phone\" },\r\n wirelessPhone: { header: \"Wireless Phone\", pinHeader: \"Pin\" },\r\n bundleCard: { header: \"My Bundle\", alt: \"My Bundle placeholder\" },\r\n collapseButton: { showMore: \"Show Services\", showLess: \"Hide Services\" },\r\n complexServiceHeader: {\r\n buttonSupport: \"Submit Support Request\",\r\n buttonDvr: \"Program DVR\",\r\n emailSupport: \"Email Support\",\r\n manageEmailAccount: \"Manage Email Account\",\r\n },\r\n caPortalService: { title: \"HT Stats Portal\" },\r\n complexServicesList: {\r\n noServices: \"No services\",\r\n },\r\n emptyService: { orderNowLink: \"Order Now\" },\r\n servicesList: { noServices: \"No services yet\" },\r\n yourServices: { yS: \"Your {0} Services:\", s3: \"High-Speed Internet\" },\r\n serviceSummary: { viewMore: \"View More\" },\r\n supportTabs: {\r\n check: \"Check Status\",\r\n submit: \"Submit Support Request\",\r\n articles: \"Support Articles\",\r\n },\r\n checkStatusTab: {\r\n info: \"Info: Follow up on the status of your technical support request.\",\r\n title: \"Check Status\",\r\n },\r\n supportIframe: { title: \"Support Tickets\" },\r\n supportRequestTab: {\r\n billingTitle: \"Billing\",\r\n billingDescibtion:\r\n \"I have questions about my statement, payments, automatic bill pay or the status of changes.\",\r\n productsTitle: \"Products\",\r\n productsDescibtion:\r\n \"I want to learn about what products are available to me or have questions about current promotions.\",\r\n technicalTitle: \"Technical\",\r\n technicalDescibtion:\r\n \"My services are not working and I need help. For a status update on reported service issues, fill in the form to the right.\",\r\n movingTitle: \"Moving\",\r\n movingDescibtion:\r\n \"I'm moving and need to transfer or cancel my services.\",\r\n otherTitle: \"Other\",\r\n otherDescibtion:\r\n \"I would like to report a fallen pole or down cable lines.\\n {0}\",\r\n forYourSafety:\r\n \"For your safety, please DO NOT touch or move any downed line as it could be a power line and potentially dangerous.\",\r\n buttonBack: \"Back\",\r\n },\r\n billingLib: {\r\n monthJan: \"Jan\",\r\n monthFeb: \"Feb\",\r\n monthMar: \"Mar\",\r\n monthApr: \"Apr\",\r\n monthMay: \"May\",\r\n monthJune: \"June\",\r\n monthJuly: \"July\",\r\n monthAug: \"Aug\",\r\n monthSept: \"Sept\",\r\n monthOct: \"Oct\",\r\n monthNov: \"Nov\",\r\n monthDec: \"Dec\",\r\n },\r\n errorMessage: {\r\n authenticate400: \"User Name or Password is incorrect.\",\r\n error500code:\r\n \"Service unavailable. Please try again later or call support.\",\r\n authenticateStepTwo400: \"User not found.\",\r\n authenticateStepThree0: \"This account is not a residential account.\",\r\n authenticateStepThree400: \"Account not found.\",\r\n updatePassword401: \"Wrong current password\",\r\n addChildUser406:\r\n \"That email address is already in use, please enter a different email address.\",\r\n addChildUser412:\r\n \"That username is already in use, please enter a different username.\",\r\n updateChildPassword400:\r\n \"Password has not been updated. Please try again later or call support.\",\r\n checkHtEmail404: \"The password or account number is incorrect.\",\r\n fSecureError:\r\n \"An error has occurred, please contact customer service at 643-3456\",\r\n appSettingsError: \"Failed to load App settings.\",\r\n },\r\n authMessages: {\r\n regSuccess: \"Thank you. Registration success.\",\r\n emptyHtEmailPassword: \"Password for Hawaiian Email is missing.\",\r\n emptyHtEmail: \"Hawaiian Email is missing.\",\r\n accountTypeError:\r\n \"Account number and account type do not match. If you are registering a Business account, please select Business at the top of the form. If you are registering a Residential account, select Residential. \",\r\n systemError:\r\n \"Unexpected error has occurred. Please try again or contact Support at 643-3456.\",\r\n systemErrorType:\r\n \"Unexpected error has occurred. Please try again or contact Support at {0}.\",\r\n resSupportPhone: \"643-3456\",\r\n busSupportPhone: \"643-4411\",\r\n },\r\n userMessages: {\r\n accountNull: \"Account info is not found.\",\r\n accountNumberNull: \"Account number is not found.\",\r\n },\r\n recoverMessage: {\r\n usernameHasBeenSent:\r\n \"Your username has been sent to your email. Please check your email.\",\r\n usernameNotFound:\r\n \"Sorry, we can't find an account with that Username. Please try again.\",\r\n badCode: \"The recovery code doesn't match our records. Please try again.\",\r\n usernameSent:\r\n \"Your username has been sent to your email. Please check your email.\",\r\n emailNotFound:\r\n \"Sorry, we can't find an account with that Email. Please try again.\",\r\n systemError:\r\n \"Unexpected error has occurred. Please try again or contact Support at 643-3456.\",\r\n },\r\n fullName: {\r\n title: \"Full name:\",\r\n },\r\n services: {\r\n securityTitle: \"Internet Security\",\r\n wirelessTitle: \"Wireless\",\r\n htEmailTitle: \"@hawaiiantel.net Email\",\r\n busEmail: \"Check @hawaiiantel.net Email\",\r\n busVoicemail: \"Check Voicemail\",\r\n busWireless: \"Manage Wireless Account\",\r\n },\r\n actionBox: {\r\n dvrBold: \"Use Remote DVR\",\r\n dvrDescr:\r\n \"{0} to schedule and manage recordings on your Whole Home DVR from anywhere.\",\r\n manageDeviceBold: \"Manage your Tivo Devices\",\r\n manageDeviceDescr: \"Reboot Setup boxes, Reset Device Pin number and more\",\r\n payPerViewDescr: \"Order Shows, get events and more\",\r\n espnBold: \"Sign in to ESPN3\",\r\n espnDescr: \"{0} so you don’t miss a minute of the action.\",\r\n espnBtnText: \"Access ESPN3\",\r\n customerReferralHeaderText: \"Customer Referral Program\", \r\n customerReferralBold: \"\", \r\n customerReferralDescr: \"REFER & EARN with Hawaiian Telcom\", \r\n customerReferralBtnText: \"Get Started Today\",\r\n editWirelessBold: \"Edit your wireless phone\",\r\n editWirelessDescr:\r\n \"{0} in My Account so you can easily access your wireless account.\",\r\n editHtemailBold: \"Register or edit your @hawaiiantel.net email account\",\r\n editHtemailDescr: \"{0} in My Account so you can easily access emails.\",\r\n htemailInboxBold: \"Go to your inbox\",\r\n htemailInboxDescr:\r\n \"{0} View and send emails from your @hawaiiantel.net inbox.\",\r\n emailSupportBold: \"HT Email Support\",\r\n emailSupportDescr:\r\n \"{0} Here you will find answers to the most frequently asked questions about email.\",\r\n learnMoreSecurityDescr: \"{0} with Hawaiian Telecom SafeGuard.\",\r\n learnMoreSecurityBold: \"Protect your devices\",\r\n learnMoreSecurityBtnText: \"Learn More\",\r\n manageSecurityDescr: \"{0} and settings.\",\r\n manageSecurityBold: \"Manage your SafeGuard Accounts\",\r\n manageSecurityBtnText: \"Manage Accounts\",\r\n updateSecurityDescr: \"{0} associated with your SafeGuard account.\",\r\n updateSecurityBold: \"Update email address\",\r\n updateSecurityBtnText: \"Update Email Address\",\r\n resendSecurityDescr:\r\n \"{0} if you did not receive or cannot find the link to setup your SafeGuard Account.\",\r\n resendSecurityBold: \"Resend access email\",\r\n resendSecurityBtnText: \"Resend Access\",\r\n },\r\n resendFSecureEmail: {\r\n successMessage: \"Welcome email resent\",\r\n },\r\n receiptHistoryMessage: {\r\n text:\r\n \"Receipt history stores receipts for the past 12 months\",\r\n },\r\n paymentHistoryMessage: {\r\n text1:\r\n \"Payment History displays only AutoPay and One-time payments (online, phone, text) made in the last 24 months.\",\r\n },\r\n payNowMessage: {\r\n text: \"If you are an international account, please use zip code 99999\",\r\n },\r\n supportArticles: {\r\n h2: \"Get the most out of your Hawaiian Telcom service.\",\r\n p:\r\n \"Here you will find answers to the most frequently asked questions you may have about your services. Easily search for information, browse through our quick links or download full PDFs of support materials.\",\r\n linkLabel: \"Residential Support\",\r\n },\r\n IEEdgeFFDisplayIframe: {\r\n msg: \"If you do not see content try\",\r\n linkLabel: \"Open in new Tab\",\r\n },\r\n supportTicketMessage: {\r\n accountNumberValidation:\r\n \"Account Number is required.\",\r\n firstNameValidation:\r\n \"First name is required.\",\r\n lastNameValidation:\r\n \"Last name is required.\",\r\n phoneNumberValidation:\r\n \"Phone number is not valid.\",\r\n emailValidation: \"Enter your full email address, including the '@'.\",\r\n selectMessage:'Please select one.',\r\n selectPriority:'Please select one.',\r\n checkedMessage:'Please select at least one service.',\r\n firstName:'First Name:',\r\n customerName:'Customer Name:',\r\n createNewSupportTicketBtnLabel:'Create New Support Ticket',\r\n lastName:'Last Name:',\r\n contactPhoneNumber:'Contact Phone Number:',\r\n accountPhoneNumber:'Account Phone Number:',\r\n email:'Email:',\r\n customerAccountNumber:'Account Number:',\r\n preferredMethodofContact:'Preferred Method of Contact:',\r\n preferredTimeofContact:'Preferred Time of Contact:',\r\n requestDetails:'Request Details:',\r\n forwhichservices:'Which service(s)?',\r\n supportTicketTitle:'My Support Tickets',\r\n whatDoYouNeedHelpWith:'What do you need help with?:',\r\n priority:'Priority:',\r\n attachedScreenshot:'Attach file:'\r\n }\r\n },\r\n});\r\n","import axios from \"axios\";\r\nimport * as userActionCreater from \"./userActions\";\r\nimport { View } from \"../lib/user\";\r\nimport { getErrorMessage, getStatus } from \"../lib/message\";\r\nimport { getTotalBalance } from \"../lib/billing\";\r\nimport { strings } from \"../resources/Strings\";\r\n\r\nexport const initBilling = () => {\r\n return (dispatch, getState) => {\r\n const userInfo = getState().user.userInfo;\r\n\r\n if (\r\n userInfo.parentId && //child user\r\n userInfo.userRoles &&\r\n userInfo.userRoles.includes(1) //and admin\r\n ) {\r\n // get parent user info\r\n dispatch(userActionCreater.getParentUser(userInfo.parentId)).then(() => {\r\n // update child billingLoginId and billingLoginPassword with parent user creds\r\n dispatch(userActionCreater.updateChildBillingInfo()).then(() => {\r\n dispatch(getRat());\r\n });\r\n });\r\n } else {\r\n // initialization\r\n dispatch(getRat());\r\n }\r\n };\r\n};\r\n\r\nexport const getRat = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getRatStarted());\r\n\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API +\r\n \"/billing/authkey/\" +\r\n getState().user.userInfo.userId,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n const rat = response.data;\r\n\r\n dispatch(getRatSuccess(rat));\r\n dispatch(getCustomerGUID(rat)).then(() => {\r\n const customerGuid = getState().billing.customerGuid;\r\n if (!(typeof customerGuid === \"undefined\" || customerGuid === null)) {\r\n dispatch(getInvoiceInfo(customerGuid));\r\n } else {\r\n let err = {\r\n message: strings.errorMessage.error500code\r\n };\r\n dispatch(getCustomerGUIDFailure(err));\r\n }\r\n });\r\n dispatch(startSessionKeepAlive());\r\n })\r\n .catch(error => {\r\n // attempt to register user in case it was not registered in IC\r\n // or changing email issue\r\n if (getStatus(error) === 503) {\r\n // 503 code - problems with IC\r\n dispatch(\r\n registerUserInIC(\r\n getState().user.userInfo.email,\r\n getState().user.userInfo.userId,\r\n getState().user.account.accountNumber\r\n )\r\n ).then(() => {\r\n dispatch(getRat());\r\n });\r\n } else {\r\n // other codes\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"getRat\")\r\n };\r\n dispatch(getRatFailure(err));\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getRatStarted = () => ({\r\n type: \"GET_RAT_STARTED\"\r\n});\r\n\r\nexport const getRatSuccess = rat => ({\r\n type: \"GET_RAT_SUCCESS\",\r\n token: rat\r\n});\r\n\r\nexport const getRatFailure = error => ({\r\n type: \"GET_RAT_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const getCustomerGUID = rat => {\r\n return dispatch => {\r\n dispatch(getCustomerGUIDStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/billing/customerGuid/\" + rat, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n })\r\n .then(response => {\r\n const customerGuid = response.data[0].customerguid;\r\n dispatch(getCustomerGUIDSuccess(customerGuid));\r\n })\r\n .catch(error => {\r\n dispatch(getCustomerGUIDFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getCustomerGUIDStarted = () => ({\r\n type: \"GET_CUSTIMER_GUID_STARTED\"\r\n});\r\n\r\nexport const getCustomerGUIDSuccess = guid => ({\r\n type: \"GET_CUSTIMER_GUID_SUCCESS\",\r\n guid: guid\r\n});\r\n\r\nexport const getCustomerGUIDFailure = error => ({\r\n type: \"GET_CUSTIMER_GUID_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const getInvoiceInfo = customerGuid => {\r\n return (dispatch, getState) => {\r\n dispatch(getInvoiceInfoStarted());\r\n\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API + \"/billing/openinvoices/\" + customerGuid,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n if (response.data.length > 0) {\r\n dispatch(getInvoiceInfoSuccess(response.data));\r\n } else {\r\n dispatch(getInvoiceInfoSuccess([]));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(getInvoiceInfoFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getInvoiceInfoStarted = () => ({\r\n type: \"GET_INVOICE_INFO_STARTED\"\r\n});\r\n\r\nexport const getInvoiceInfoSuccess = invoices => ({\r\n type: \"GET_INVOICE_INFO_SUCCESS\",\r\n invoices: invoices\r\n});\r\n\r\nexport const getInvoiceInfoFailure = error => ({\r\n type: \"GET_INVOICE_INFO_FAILURE\",\r\n error: error\r\n});\r\n\r\n// get open invoices by customer Id\r\nexport const getInvoiceInfoByCustomerId = customerId => {\r\n return (dispatch, getState) => {\r\n dispatch(getInvoiceInfoStarted());\r\n\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API +\r\n \"/billing/openinvoices/\" +\r\n getState().billing.customerGuid +\r\n \"/\" +\r\n customerId,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n if (response.data.length > 0) {\r\n dispatch(getInvoiceInfoSuccess(response.data));\r\n } else {\r\n dispatch(getInvoiceInfoSuccess([]));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(getInvoiceInfoFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const endRemoteSession = () => {\r\n return (dispatch, getState) => {\r\n dispatch(endRemoteSessionStarted());\r\n\r\n const rat = getState().billing.remoteAuthenticationToken;\r\n\r\n return axios\r\n .delete(\r\n process.env.REACT_APP_API + \"/billing/remotesession?authToken=\" + rat,\r\n {\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(() => {\r\n dispatch(endRemoteSessionSuccess());\r\n })\r\n .catch(error => {\r\n dispatch(endRemoteSessionFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const endRemoteSessionStarted = () => ({\r\n type: \"END_REMOTE_SESSION_STARTED\"\r\n});\r\n\r\nexport const endRemoteSessionSuccess = () => ({\r\n type: \"END_REMOTE_SESSION_SUCCESS\"\r\n});\r\n\r\nexport const endRemoteSessionFailure = error => ({\r\n type: \"END_REMOTE_SESSION_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const keepRemoteSessionAlive = () => {\r\n return (dispatch, getState) => {\r\n dispatch(keepRemoteSessionAliveStarted());\r\n\r\n const rat = getState().billing.remoteAuthenticationToken;\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API + \"/billing/remotesession?authToken=\" + rat,\r\n null,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(() => {\r\n dispatch(keepRemoteSessionAliveSuccess());\r\n })\r\n .catch(error => {\r\n dispatch(keepRemoteSessionAliveFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const keepRemoteSessionAliveStarted = () => ({\r\n type: \"KEEP_REMOTE_SESSION_ALIVE_STARTED\"\r\n});\r\n\r\nexport const keepRemoteSessionAliveSuccess = () => ({\r\n type: \"KEEP_REMOTE_SESSION_ALIVE_SUCCESS\"\r\n});\r\n\r\nexport const keepRemoteSessionAliveFailure = error => ({\r\n type: \"KEEP_REMOTE_SESSION_ALIVE_FAILURE\",\r\n error: error\r\n});\r\n\r\nlet sessionTimer = null;\r\nexport const startSessionKeepAlive = () => {\r\n return dispatch => {\r\n clearInterval(sessionTimer);\r\n dispatch(keepRemoteSessionAlive());\r\n sessionTimer = setInterval(() => {\r\n dispatch(keepRemoteSessionAlive());\r\n }, 840000); // 14 minutes\r\n };\r\n};\r\n\r\nexport const stopSessionKeepAlive = () => {\r\n return dispatch => {\r\n clearInterval(sessionTimer);\r\n return dispatch(endRemoteSession()).then(() => {\r\n dispatch(removeRat());\r\n });\r\n };\r\n};\r\n\r\nexport const removeRat = () => ({\r\n type: \"REMOVE_RAT\"\r\n});\r\n\r\nexport const selectTab = tabIndex => ({\r\n type: \"SET_SELECTED_TAB\",\r\n tabIndex: tabIndex\r\n});\r\n\r\nexport const registerUserInIC = (email, userId, AccountNumber, view = null) => {\r\n return dispatch => {\r\n dispatch(registerUserInICStarted());\r\n\r\n return axios\r\n .post(\r\n process.env.REACT_APP_API +\r\n \"/billing/user/\" +\r\n userId +\r\n \"/\" +\r\n AccountNumber,\r\n null,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n }\r\n )\r\n .then(response => {\r\n dispatch(registerUserInICSuccess());\r\n })\r\n .catch(error => {\r\n dispatch(registerUserInICFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const registerUserInICStarted = () => ({\r\n type: \"REGISTER_USER_STARTED\"\r\n});\r\n\r\nexport const registerUserInICSuccess = () => ({\r\n type: \"REGISTER_USER_SUCCESS\"\r\n});\r\n\r\nexport const registerUserInICFailure = error => ({\r\n type: \"REGISTER_USER_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const updatePaperless = (status, email, view) => {\r\n return (dispatch, getState) => {\r\n dispatch(updatePaperlessStarted());\r\n\r\n const customerGuid = getState().billing.customerGuid;\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API + \"/billing/paperless/\",\r\n {\r\n customerGuid: customerGuid,\r\n invoiceTypeId: view === View.RES ? 95 : 6,\r\n emailAddress: email,\r\n status: status\r\n },\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1f:\" + process.env.REACT_APP_RT\r\n }\r\n }\r\n )\r\n .then(() => {\r\n dispatch(updatePaperlessSuccess());\r\n })\r\n .catch(error => {\r\n dispatch(updatePaperlessFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updatePaperlessStarted = () => ({\r\n type: \"UPDATE_PAPERLESS_STARTED\"\r\n});\r\n\r\nexport const updatePaperlessSuccess = () => ({\r\n type: \"UPDATE_PAPERLESS_SUCCESS\"\r\n});\r\n\r\nexport const updatePaperlessFailure = error => ({\r\n type: \"UPDATE_PAPERLESS_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const resetState = () => ({\r\n type: \"BILLING_RESET_STATE\"\r\n});\r\nexport const resetReceiptHistoryState = () => ({\r\n type: \"BILLING_RECEIPTHISTORY_RESET_STATE\"\r\n});\r\n\r\nexport const updateEmailaddress = email => {\r\n return (dispatch, getState) => {\r\n dispatch(updateEmailStarted());\r\n\r\n const accountNumber = getState().user.account.accountNumber;\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API +\r\n \"/billing/email/\" +\r\n getState().user.userInfo.userId +\r\n \"/\" +\r\n accountNumber,\r\n null,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(() => {\r\n dispatch(updateEmailSuccess());\r\n })\r\n .catch(error => {\r\n dispatch(updateEmailFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const updateEmailStarted = () => ({\r\n type: \"UPDATE_EMAIL_STARTED\"\r\n});\r\n\r\nexport const updateEmailSuccess = () => ({\r\n type: \"UPDATE_EMAIL_SUCCESS\"\r\n});\r\n\r\nexport const updateEmailFailure = error => ({\r\n type: \"UPDATE_EMAIL_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const getHistoricalData = (\r\n startDate,\r\n endDate,\r\n statementType,\r\n accountNumber\r\n) => {\r\n return (dispatch, getState) => {\r\n dispatch(getHistoricalDataStarted());\r\n\r\n // for tveverywhere-prod10 user used test account with data\r\n if (accountNumber === \"200000000480664\") {\r\n accountNumber = \"200000000475228\";\r\n }\r\n\r\n return axios\r\n .post(\r\n process.env.REACT_APP_UUMAX + \"/dataprose/historicaldata\",\r\n {\r\n accountNumber: accountNumber,\r\n startDate: startDate,\r\n endDate: endDate,\r\n statementType: statementType,\r\n SortCriteria: \"Bill_date\",\r\n NumInvoices: process.env.REACT_APP_HISTORICAL_RECORDS,\r\n SearchType: \"8\"\r\n },\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(response => {\r\n dispatch(getHistoricalDataSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getHistoricalDataFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getHistoricalDataStarted = () => ({\r\n type: \"GET_HISTORICAL_DATA_STARTED\"\r\n});\r\n\r\nexport const getHistoricalDataSuccess = data => ({\r\n type: \"GET_HISTORICAL_DATA_SUCCESS\",\r\n data: data\r\n});\r\n\r\nexport const getHistoricalDataFailure = error => ({\r\n type: \"GET_HISTORICAL_DATA_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const removeHistoricalData = () => ({\r\n type: \"REMOVE_HISTORICAL_DATA\"\r\n});\r\n\r\nexport const getOneTimePaymentUrl = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getOneTimePaymentUrlStarted());\r\n\r\n let accountNumber = getState().user.account.accountNumber;\r\n const invoices = getState().billing.invoices;\r\n const amount = invoices ? getTotalBalance(invoices) : 0;\r\n\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API +\r\n \"/billing/oneTimePaymentURL/\" +\r\n accountNumber +\r\n \"/\" +\r\n amount,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n dispatch(getOneTimePaymentUrlSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getOneTimePaymentUrlFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getOneTimePaymentUrlStarted = () => ({\r\n type: \"GET_ONE_TIME_PAYMENT_STARTED\"\r\n});\r\n\r\nexport const getOneTimePaymentUrlSuccess = url => ({\r\n type: \"GET_ONE_TIME_PAYMENT_SUCCESS\",\r\n url: url\r\n});\r\n\r\nexport const getOneTimePaymentUrlFailure = error => ({\r\n type: \"GET_ONE_TIME_PAYMENT_FAILURE\",\r\n error: error\r\n});\r\n export const getReceiptHistoryData =() => {\r\n return (dispatch, getState) => {\r\n dispatch(getReceiptHistoryStarted());\r\n const accountNumber = getState().user.account.accountNumber;\r\n return axios\r\n .get(\r\n process.env.REACT_APP_API +\r\n \"/billing/receipthistory/\"+ \r\n accountNumber,\r\n // +getState().billing.customerGuid +\r\n // \"/\" +\r\n // customerId,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n if (response.data.length > 0) {\r\n dispatch(getReceiptHistorySuccess(response.data));\r\n } else {\r\n dispatch(getReceiptHistorySuccess([]));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(getReceiptHistoryFailure(error));\r\n });\r\n };\r\n};\r\nexport const getReceiptHistoryStarted = () => ({\r\n type: \"GET_RECEIPTHISTORY_STARTED\"\r\n});\r\n\r\nexport const getReceiptHistorySuccess = receiptData => ({\r\n type: \"GET_RECEIPTHISTORY_SUCCESS\",\r\n receiptData: receiptData\r\n});\r\n\r\nexport const getReceiptHistoryFailure = error => ({\r\n type: \"GET_RECEIPTHISTORY_FAILURE\",\r\n error: error\r\n});\r\n\r\n","import axios from \"axios\";\r\nimport {\r\n isSerivceExist,\r\n addSerivce,\r\n ServicesId,\r\n BusinessServices\r\n} from \"../lib/services\";\r\nimport { strings } from \"../resources/Strings\";\r\nimport { getErrorMessage, getStatus } from \"../lib/message\";\r\n\r\n// Get User Account Info\r\nexport const getServices = id => {\r\n return (dispatch, getState) => {\r\n dispatch(getServicesStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/services/locations/\" + id, {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n let data = response.data[0].services; // on first loading services for first (0) address\r\n dispatch(setAaisAddressId(response.data[0].aaisAddressId));\r\n\r\n let result = null;\r\n\r\n if (isSerivceExist(data, ServicesId.FSECURE_ID)) {\r\n // set flag in service reducer if service Security exist\r\n dispatch(setServiceSecurityExist());\r\n }\r\n\r\n if (isSerivceExist(data, ServicesId.HSI_ID)) {\r\n if (!isSerivceExist(data, ServicesId.HTEMAIL_ID)) {\r\n data = addSerivce(\r\n data,\r\n ServicesId.HTEMAIL_ID,\r\n strings.services.htEmailTitle\r\n );\r\n }\r\n dispatch(showHtEmail(true));\r\n\r\n // if exist HSI but do not exist FSECURE service\r\n if (!isSerivceExist(data, ServicesId.FSECURE_ID)) {\r\n data = addSerivce(\r\n data,\r\n ServicesId.FSECURE_ID,\r\n strings.services.securityTitle\r\n );\r\n }\r\n } else {\r\n // remove HTEmail if it exist but do not have HSI service\r\n result = data.filter(s => s.serviceId !== ServicesId.HTEMAIL_ID);\r\n dispatch(showHtEmail(false));\r\n }\r\n\r\n dispatch(getServicesSuccess(result ? result : data));\r\n // save full services for future switching services according address\r\n dispatch(setLocations(response.data)); \r\n })\r\n .catch(error => {\r\n dispatch(getServicesFailure(error));\r\n });\r\n };\r\n};\r\n\r\n// Get User Account Info\r\nexport const switchServices = index => {\r\n return (dispatch, getState) => {\r\n const allServices = getState().service.allServices;\r\n let data = allServices[index].services;\r\n dispatch(setAaisAddressId(allServices[index].aaisAddressId));\r\n let result = null;\r\n\r\n if (isSerivceExist(data, ServicesId.FSECURE_ID)) {\r\n // set flag in service reducer if service Security exist\r\n dispatch(setServiceSecurityExist());\r\n }\r\n\r\n if (isSerivceExist(data, ServicesId.HSI_ID)) {\r\n if (!isSerivceExist(data, ServicesId.HTEMAIL_ID)) {\r\n data = addSerivce(\r\n data,\r\n ServicesId.HTEMAIL_ID,\r\n strings.services.htEmailTitle\r\n );\r\n }\r\n dispatch(showHtEmail(true));\r\n\r\n // if exist HSI but do not exist FSECURE service\r\n if (!isSerivceExist(data, ServicesId.FSECURE_ID)) {\r\n data = addSerivce(\r\n data,\r\n ServicesId.FSECURE_ID,\r\n strings.services.securityTitle\r\n );\r\n }\r\n } else {\r\n // remove HTEmail if it exist but do not have HSI service\r\n result = data.filter(s => s.serviceId !== ServicesId.HTEMAIL_ID);\r\n dispatch(showHtEmail(false));\r\n }\r\n\r\n dispatch(getServicesSuccess(result ? result : data));\r\n };\r\n};\r\n\r\nexport const getServicesStarted = () => ({\r\n type: \"GET_SERVICES_STARTED\"\r\n});\r\n\r\nexport const getServicesSuccess = services => ({\r\n type: \"GET_SERVICES_SUCCESS\",\r\n services: services\r\n});\r\n\r\nexport const getServicesFailure = error => ({\r\n type: \"GET_SERVICES_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const showHtEmail = state => ({\r\n type: \"SHOW_HTEMAIL\",\r\n showHtEmail: state\r\n});\r\n\r\nexport const setServiceSecurityExist = () => ({\r\n type: \"SECURITY_SERVICE_EXIST\"\r\n});\r\n\r\nexport const setLocations = allServices => ({\r\n type: \"SET_SERVICES_LOCATION\",\r\n services: allServices\r\n});\r\nexport const setAaisAddressId = aaisAddressId => ({\r\n type: \"SET_SERVICES_LOCATION_AAISADDRESSID\",\r\n aaisAddressId: aaisAddressId\r\n});\r\n\r\nexport const getBusinessServices = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getServicesStarted());\r\n\r\n let bizServices = BusinessServices;\r\n if (getState().user.account.isCAPC) {\r\n const capcService = {\r\n serviceId: ServicesId.TV_ID,\r\n title: strings.caPortalService.title,\r\n url: process.env.REACT_APP_CAPC_URI\r\n };\r\n bizServices.push(capcService);\r\n }\r\n\r\n try {\r\n dispatch(getServicesSuccess(bizServices));\r\n } catch (error) {\r\n dispatch(getServicesFailure(error));\r\n }\r\n };\r\n};\r\n\r\n// Get Ads actions\r\nexport const getAllAds = () => {\r\n return (dispatch, getState) => {\r\n dispatch(getAdsStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/ads/all\", {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n dispatch(getAdsSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getAdsFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getAdsStarted = () => ({\r\n type: \"GET_ADS_STARTED\"\r\n});\r\n\r\nexport const getAdsSuccess = ads => ({\r\n type: \"GET_ADS_SUCCESS\",\r\n ads: ads\r\n});\r\n\r\nexport const getAdsFailure = error => ({\r\n type: \"GET_ADS_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const selectSupportTab = tabIndex => ({\r\n type: \"SET_SELECTED_TAB\",\r\n tabIndex: tabIndex\r\n});\r\n\r\nexport const resetState = () => ({\r\n type: \"SERVICE_RESET_STATE\"\r\n});\r\n\r\n// Get DRV product crm IDs\r\nexport const getDvrProductIds = () => {\r\n return dispatch => {\r\n dispatch(getDvrProductIdsStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_UUMAX + \"/dvr/ids/\")\r\n .then(response => {\r\n dispatch(getDvrProductIdsSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getDvrProductIdsFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getDvrProductIdsStarted = () => ({\r\n type: \"GET_DVR_IDS_STARTED\"\r\n});\r\n\r\nexport const getDvrProductIdsSuccess = ids => ({\r\n type: \"GET_DVR_IDS_SUCCESS\",\r\n ids: ids\r\n});\r\n\r\nexport const getDvrProductIdsFailure = error => ({\r\n type: \"GET_DVR_IDS_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const getManageUrl = htEmail => {\r\n return dispatch => {\r\n dispatch(getManageUrlStarted());\r\n\r\n return axios\r\n .get(process.env.REACT_APP_UUMAX + \"/htemail/managelink/\" + htEmail)\r\n .then(response => {\r\n dispatch(getManageUrlSuccess(response.data));\r\n })\r\n .catch(error => {\r\n dispatch(getManageUrlFailure(error));\r\n });\r\n };\r\n};\r\n\r\nexport const getManageUrlStarted = () => ({\r\n type: \"GET_MANAGE_URL_STARTED\"\r\n});\r\n\r\nexport const getManageUrlSuccess = url => ({\r\n type: \"GET_MANAGE_URL_SUCCESS\",\r\n url: url\r\n});\r\n\r\nexport const getManageUrlFailure = error => ({\r\n type: \"GET_MANAGE_URL_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const updateFSecureEmail = (email, successCallbackFn = null) => {\r\n return (dispatch, getState) => {\r\n dispatch(updateFSecureEmailStarted());\r\n\r\n let account = getState().user.account.accountNumber;\r\n let emailBase64 = btoa(email);\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API +\r\n \"/InternetSecurity/FSecure/UpdateUser/\" +\r\n account +\r\n \"/\" +\r\n emailBase64,\r\n null,\r\n {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n dispatch(updateFSecureEmailSuccess());\r\n if (typeof successCallbackFn === \"function\") {\r\n successCallbackFn();\r\n }\r\n })\r\n .catch(error => {\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"updateFSecureEmail\")\r\n };\r\n dispatch(updateFSecureEmailFailure(err));\r\n });\r\n };\r\n};\r\n\r\nexport const updateFSecureEmailStarted = () => ({\r\n type: \"UPDATE_FSECURE_EMAIL_STARTED\"\r\n});\r\n\r\nexport const updateFSecureEmailSuccess = () => ({\r\n type: \"UPDATE_FSECURE_EMAIL_SUCCESS\"\r\n});\r\n\r\nexport const updateFSecureEmailFailure = error => ({\r\n type: \"UPDATE_FSECURE_EMAIL_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const clearError = () => ({\r\n type: \"SERVICE_CLEAR_ERROR\"\r\n});\r\n\r\nexport const resendFSecureEmail = () => {\r\n return (dispatch, getState) => {\r\n dispatch(resendFSecureEmailStarted());\r\n\r\n let account = getState().user.account.accountNumber;\r\n\r\n return axios\r\n .put(\r\n process.env.REACT_APP_API +\r\n \"/InternetSecurity/FSecure/SendWelcomeEmail/\" +\r\n account,\r\n null,\r\n {\r\n headers: {\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n }\r\n )\r\n .then(response => {\r\n dispatch(\r\n resendFSecureEmailSuccess(strings.resendFSecureEmail.successMessage)\r\n );\r\n })\r\n .catch(error => {\r\n let err = {\r\n message: getErrorMessage(getStatus(error), \"updateFSecureEmail\")\r\n };\r\n dispatch(resendFSecureEmailFailure(err));\r\n });\r\n };\r\n};\r\n\r\nexport const resendFSecureEmailStarted = () => ({\r\n type: \"RESEND_FSECURE_EMAIL_STARTED\"\r\n});\r\n\r\nexport const resendFSecureEmailSuccess = msg => ({\r\n type: \"RESEND_FSECURE_EMAIL_SUCCESS\",\r\n msg: msg\r\n});\r\n\r\nexport const resendFSecureEmailFailure = error => ({\r\n type: \"RESEND_FSECURE_EMAIL_FAILURE\",\r\n error: error\r\n});\r\n\r\nexport const getCookie = (accountNumber, cookies) => {\r\n return (dispatch, getState) => {\r\n return axios\r\n .get(process.env.REACT_APP_API + \"/int/dvrsso/\" + accountNumber, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"UToken 1a:\" + getState().auth.uToken\r\n }\r\n })\r\n .then(response => {\r\n cookies.set(response.data);\r\n })\r\n .catch(() => {});\r\n };\r\n};\r\n\r\nexport const getCookieSuccess = cookie => ({\r\n type: \"GET_COOKIE_SUCCESS\",\r\n cookie: cookie\r\n});\r\n"],"sourceRoot":""}