{"version":3,"sources":["config/api-codes.js","actions/clinics.js","actions/auth.js","api/clinics-axios.js","api/index.js","views/templates/no-auth-router/Header.jsx","views/templates/no-auth-router/Footer.jsx","routers/AuthRouter.js","routers/NoAuthRouter.js","App.js","serviceWorker.js","reducers/auth.js","reducers/signup.js","reducers/appointment.js","reducers/payment.js","reducers/clinics.js","reducers/index.js","api/records.js","sagas/auth.js","sagas/signup.js","api/product-api-find.js","api/diary-api-find.js","api/diary-day-api-find.js","api/time-slots-api.js","api/payment-card-find.js","api/check-time-slots-api.js","sagas/appointment.js","api/payment-api.js","sagas/payment.js","api/clinic-api-find.js","sagas/clinics.js","sagas/index.js","config/history.js","index.js","config/store.js","config/routes.js","actions/signup.js","config/labels.js","actions/payment.js","api/find.js","config/constants.js","helpers/toast.js","actions/appointment.js","assets/images/logo.png","assets/images/orange-blue.png"],"names":["API_CODES","SUCCESS","TOKEN_NOT_FOUND","NOT_UNIQUE_VALIDATION","INVALID_TOKEN","GET_PATIENT_CLINICS_REQUEST","GET_PATIENT_CLINICS_SUCCESS","GET_PATIENT_CLINICS_ERROR","GET_ALL_CLINICS_REQUEST","GET_ALL_CLINICS_SUCCESS","GET_ALL_CLINICS_ERROR","GET_SINGLE_CLINIC_REQUEST","GET_SINGLE_CLINIC_SUCCESS","GET_SINGLE_CLINIC_ERROR","ADD_PATIENT_CLINIC_REQUEST","ADD_PATIENT_CLINIC_SUCCESS","ADD_PATIENT_CLINIC_ERROR","ADD_PATIENT_REQUEST","ADD_PATIENT_SUCCESS","ADD_PATIENT_ERROR","getPatientClinicsRequest","payload","type","getPatientClinicsSuccess","data","getPatientClinicsError","error","getSingleClinicRequest","getSingleClinicSuccess","getSingleClinicError","getAllClinicsSuccess","getAllClinicsError","addPatientClinicRequest","addPatientClinicSuccess","addPatientClinicError","addPatientRequest","addPatientSuccess","addPatientError","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_ERROR","USER_FP_REQUEST","USER_FP_SUCCESS","USER_FP_ERROR","USER_LOGOUT_REQUEST","USER_LOGOUT_SUCCESS","USER_LOGOUT_ERROR","SET_USER_LOGIN_TITLE","userLoginRequest","userLoginSuccess","userLoginError","userFpRequest","userFpSuccess","userFpError","setUserLoginTitle","title","desc","userLogoutRequest","userLogoutSuccess","userLogoutError","clinicAxios","axios","create","apiError","status","message","_data","isObject","JSON","parse","toString","stringify","postRequest","_url","authToken","BaseUrl","process","_headers","url","headers","Accept","CLINIC_BASE_URL_HEADER_KEY","Authorization","localStorage","getItem","CLINIC_TOKEN_LOCAL_STORAGE_KEY","method","then","response","setItem","CLINIC_SESSION_KEY","catch","request","interceptors","use","UNAUTHORIZED_STATUS","messages","code","BAD_REQUEST","config","credentails","btoa","token","getAuthorizedToken","Promise","resolve","reject","res","err","TOKEN_LOCAL_STORAGE_KEY","deleteRequest","Header","handleLogout","props","dispatch","prevProps","this","logoutLoading","logoutSuccess","removeItem","LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY","LOGGED_USER_SESSION_KEY","history","push","routes","LOGIN","Toast","SOMETHING_WENT_WRONG","id","className","onClick","href","src","Logo","alt","Component","withRouter","connect","state","auth","get","logoutError","Footer","AuthRouter","children","rest","render","location","to","pathname","from","NoAuthRouter","BASEPATH","Home","lazy","Login","Register","ForgotPassword","NotFound","App","fallback","path","exact","REGISTER","FORGOT_PASSWORD","component","autoClose","Boolean","window","hostname","match","initialState","Map","loginLoading","loginData","loginUserDetails","loginError","loginTitle","loginDesc","fpLoading","fpData","fpError","userLoading","userData","userError","actionMap","action","merge","fieldData","settings","signUpLoading","signUpData","signUpError","USER_SIGNUP_REQUEST","USER_SIGNUP_SUCCESS","USER_SIGNUP_ERROR","USER_SIGNUP_EMAIL_DUPLICATE","EMAIL_ALREADY_IN_USE","findAppointmentTypesLoading","findAppointmentTypesData","findAppointmentTypesError","findDiaryLoading","findDiaryData","findDiaryError","findDiaryDayLoading","findDiaryDayData","findDiaryDayError","findTimeSlotsLoading","findTimeSlotsData","findTimeSlotsError","findPackagesLoading","findPackagesData","findPackagesError","checkTimeslotsLoading","checkTimeslotsData","checkTimeslotsError","findCardsLoading","findCardsData","findCardsError","FIND_APPOINTMENT_TYPES_REQUEST","FIND_APPOINTMENT_TYPES_SUCCESS","FIND_APPOINTMENT_TYPES_ERROR","FIND_DIARY_REQUEST","FIND_DIARY_SUCCESS","FIND_DIARY_ERROR","FIND_DIARY_DAY_REQUEST","FIND_DIARY_DAY_SUCCESS","FIND_DIARY_DAY_ERROR","FIND_TIME_SLOTS_REQUEST","FIND_TIME_SLOTS_SUCCESS","FIND_TIME_SLOTS_ERROR","FIND_PACKAGES_REQUEST","FIND_PACKAGES_SUCCESS","FIND_PACKAGES_ERROR","CHECK_TIMESLOTS_REQUEST","CHECK_TIMESLOTS_SUCCESS","CHECK_TIMESLOTS_ERROR","FIND_CARDS_REQUEST","FIND_CARDS_SUCCESS","FIND_CARDS_ERROR","createInvoiceLoading","createInvoiceData","createInvoiceError","createReceiptLoading","createReceiptData","createReceiptError","initiatePaymentLoading","initiatePaymentData","initiatePaymentError","confirmPaymentLoading","confirmPaymentData","confirmPaymentError","findReceiptLoading","findReceiptData","findReceiptError","getConformationLoading","getConformationData","getConformationError","bookFinalSlotLoading","bookFinalSlotData","bookFinalSlotError","bookSlotLoading","bookSlotData","bookSlotError","addAppointmentLoading","addAppointmentSuccess","addAppointmentError","addPreviousAppointmentLoading","addPreviousAppointmentData","addPreviousAppointmentError","addInvoiceLoading","addInvoiceSuccess","addInvoiceError","addReceiptLoading","addReceiptSuccess","addReceiptError","selectedSavedCard","CREATE_INVOICE_REQUEST","CREATE_INVOICE_SUCCESS","CREATE_INVOICE_ERROR","CREATE_RECEIPT_REQUEST","CREATE_RECEIPT_SUCCESS","CREATE_RECEIPT_ERROR","INITIATE_PAYMENT_REQUEST","INITIATE_PAYMENT_SUCCESS","INITIATE_PAYMENT_ERROR","CONFIRM_PAYMENT_REQUEST","CONFIRM_PAYMENT_SUCCESS","CONFIRM_PAYMENT_ERROR","FIND_RECEIPT_REQUEST","FIND_RECEIPT_SUCCESS","FIND_RECEIPT_ERROR","GET_CONFORMATION_REQUEST","GET_CONFORMATION_SUCCESS","GET_CONFORMATION_ERROR","BOOK_SLOT_FINAL_REQUEST","BOOK_SLOT_FINAL_SUCCESS","BOOK_SLOT_FINAL_ERROR","BOOK_SLOT_REQUEST","BOOK_SLOT_SUCCESS","BOOK_SLOT_ERROR","ADD_APPOINTMENT_REQUEST","addAppointmentData","ADD_APPOINTMENT_SUCCESS","ADD_APPOINTMENT_ERROR","ADD_PREVIOUS_APPOINTMENT_REQUEST","ADD_PREVIOUS_APPOINTMENT_SUCCESS","ADD_PREVIOUS_APPOINTMENT_ERROR","ADD_INVOICE_REQUEST","addInvoiceData","ADD_INVOICE_SUCCESS","ADD_INVOICE_ERROR","ADD_RECEIPT_REQUEST","addReceiptData","ADD_RECEIPT_SUCCESS","ADD_RECEIPT_ERROR","SELECT_SAVED_CARD","card","patientClinicLoading","patientClinicData","patientClinics","patientClinicsCardsInfo","patientClinicDeleteCard","clinicRecordId","ID_PaymentCard","cardNumber","baseUrl","loading","deleteStatus","patientClinicError","singleClinicLoading","singleClinicData","singleClinicError","addClinicLoading","addClinicData","addClinicError","addPatientLoading","addPatientData","cardInfo","map","o","recordId","isOpen","cards","addCardsInfoToPatientClinics","allClinicLoading","allClinicData","allClinics","allClinicError","combineReducers","fn","signup","appointment","payment","clinics","form","formReducer","findUri","userSignUp","authKey","forgotPassword","userAuthWatcher","takeLatest","actions","session_payload","email","password","call","findApi","createSession","create_session","scriptError","_payload","userLogin","put","userDetails","recordsApi","logout","userSignupWatcher","nameFirst","nameLast","phoneMobile","address1","address2","addressTown","addressCounty","addressPostcode","country","dateOfBirth","userSignUpDuplicateEmail","userSignUpSuccess","userSignUpError","findAppointments","query","findDiary","findTimeSlot","findPaymentCards","checkfindTimeSlots","findProductApi","findAppointmentTypesSuccess","diaryApi","findDiarySuccess","diaryDayApi","findDiaryDaySuccess","timeSlotsApi","findTimeSlotsSuccess","findPackagesSuccess","checkTimeSlotsApi","checkTimeslotsSuccess","paymentCardApi","findCardsSuccess","paymentUri","createInvoice","clinicPostRequest","createReceipt","initiatePayment","confirmPayment","findReceipt","getConfirmation","bookFinalSlot","bookSlot","addAppointment","addInvoice","addReceipt","profileAuthWatcher","payment_api","createInvoiceSuccess","createReceiptSuccess","initiatePaymentSuccess","confirmPaymentSuccess","findReceiptSuccess","getConformationSuccess","bookFinalSlotSuccess","bookSlotSuccess","addPreviousAppointmentSuccess","getAllClinics","getPatientClinics","getSingleClinic","addPatientClinic","addPatient","patientClinicAddPatient","combineData","scriptResult","idPatient","idClinic","ID_Patient","combinedPatientPayload","patientClinicAddPatientRes","sessionId","search","rootSaga","all","createBrowserHistory","ReactDOM","store","sagaMiddleware","createSagaMiddleware","composeEnhancers","composeWithDevTools","createStore","rootReducer","applyMiddleware","run","configureStore","document","getElementById","navigator","serviceWorker","ready","registration","unregister","console","userSignUpRequest","INVALID_EMAIL_OR_PASSWORD","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_EMAIL_NOT_FOUND","CONGRATULATIONS","NO_DATA_FOUND_FROM_POSTCODE","CONGRATULATIONS_DESC","ACCESS_FORBIDDEN","SESSION_TIMEOUT","createInvoiceRequest","createReceiptRequest","initiatePaymentRequest","confirmPaymentRequest","findReceiptRequest","getConformationRequest","bookFinalSlotRequest","bookSlotRequest","addPreviousAppointmentRequest","addAppointmentRequest","addInvoiceRequest","addReceiptRequest","selectSavedCard","findEmail","undefined","ADDRESS_FETCH_SERVER_RESPONSE_TYPE","CLINICS_REDIRECTION_URL","DEFAULT_DATE_FORMAT","REMEMBER_ME_LOCAL_STORAGE_KEY","CARD_APPROVED","DAY_LIST","MONTH_LIST","toast","position","POSITION","TOP_RIGHT","closeButton","hideProgressBar","closeOnClick","rtl","findAppointmentTypesRequest","findDiaryRequest","findDiaryDayRequest","findTimeSlotsRequest","findPackagesRequest","checkTimeslotsRequest","findCardsRequest","module","exports"],"mappings":"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","file":"static/js/main.c2904e4f.chunk.js","sourcesContent":["const API_CODES = {\r\n SUCCESS: \"0\",\r\n TOKEN_NOT_FOUND: \"10\",\r\n NOT_UNIQUE_VALIDATION: \"504\",\r\n INVALID_TOKEN: \"952\",\r\n};\r\nexport default API_CODES;\r\n","const GET_PATIENT_CLINICS_ACTION = \"GET/PATIENT/CLINICS\";\r\nconst GET_ALL_CLINICS_ACTION = \"GET/ALL/CLINICS\";\r\nconst GET_SINGLE_CLINIC_ACTION = \"GET/SINGLE/CLINIC\";\r\nconst ADD_PATIENT_CLINIC_ACTION = \"ADD/PATIENT/CLINIC\";\r\nconst ADD_PATIENT_ACTION = \"ADD/PATIENT\";\r\n\r\nexport const GET_PATIENT_CLINICS_REQUEST = `${GET_PATIENT_CLINICS_ACTION}/REQUEST`;\r\nexport const GET_PATIENT_CLINICS_SUCCESS = `${GET_PATIENT_CLINICS_ACTION}/SUCCESS`;\r\nexport const GET_PATIENT_CLINICS_ERROR = `${GET_PATIENT_CLINICS_ACTION}/ERROR`;\r\n\r\nexport const GET_ALL_CLINICS_REQUEST = `${GET_ALL_CLINICS_ACTION}/REQUEST`;\r\nexport const GET_ALL_CLINICS_SUCCESS = `${GET_ALL_CLINICS_ACTION}/SUCCESS`;\r\nexport const GET_ALL_CLINICS_ERROR = `${GET_ALL_CLINICS_ACTION}/ERROR`;\r\n\r\nexport const GET_SINGLE_CLINIC_REQUEST = `${GET_SINGLE_CLINIC_ACTION}/REQUEST`;\r\nexport const GET_SINGLE_CLINIC_SUCCESS = `${GET_SINGLE_CLINIC_ACTION}/SUCCESS`;\r\nexport const GET_SINGLE_CLINIC_ERROR = `${GET_SINGLE_CLINIC_ACTION}/ERROR`;\r\n\r\nexport const ADD_PATIENT_CLINIC_REQUEST = `${ADD_PATIENT_CLINIC_ACTION}/REQUEST`;\r\nexport const ADD_PATIENT_CLINIC_SUCCESS = `${ADD_PATIENT_CLINIC_ACTION}/SUCCESS`;\r\nexport const ADD_PATIENT_CLINIC_ERROR = `${ADD_PATIENT_CLINIC_ACTION}/ERROR`;\r\n\r\nexport const ADD_PATIENT_REQUEST = `${ADD_PATIENT_ACTION}/REQUEST`;\r\nexport const ADD_PATIENT_SUCCESS = `${ADD_PATIENT_ACTION}/SUCCESS`;\r\nexport const ADD_PATIENT_ERROR = `${ADD_PATIENT_ACTION}/ERROR`;\r\n\r\nexport function getPatientClinicsRequest(payload) {\r\n return {\r\n type: GET_PATIENT_CLINICS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getPatientClinicsSuccess(data) {\r\n return {\r\n type: GET_PATIENT_CLINICS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getPatientClinicsError(error) {\r\n return {\r\n type: GET_PATIENT_CLINICS_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function getSingleClinicRequest(payload) {\r\n return {\r\n type: GET_SINGLE_CLINIC_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getSingleClinicSuccess(data) {\r\n return {\r\n type: GET_SINGLE_CLINIC_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getSingleClinicError(error) {\r\n return {\r\n type: GET_SINGLE_CLINIC_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function getAllClinicsRequest(payload) {\r\n return {\r\n type: GET_ALL_CLINICS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getAllClinicsSuccess(data) {\r\n return {\r\n type: GET_ALL_CLINICS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getAllClinicsError(error) {\r\n return {\r\n type: GET_ALL_CLINICS_ERROR,\r\n error\r\n };\r\n}\r\n\r\n\r\nexport function addPatientClinicRequest(payload) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function addPatientClinicSuccess(data) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function addPatientClinicError(error) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function addPatientRequest(payload) {\r\n return {\r\n type: ADD_PATIENT_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function addPatientSuccess(data) {\r\n return {\r\n type: ADD_PATIENT_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function addPatientError(error) {\r\n return {\r\n type: ADD_PATIENT_ERROR,\r\n error\r\n };\r\n}","const USER_LOGIN_ACTION = \"USER/LOGIN\";\r\nconst USER_FP_ACTION = \"USER/FP\";\r\nconst USER_LOGOUT_ACTION = \"USER/LOGOUT\";\r\n\r\nexport const USER_LOGIN_REQUEST = `${USER_LOGIN_ACTION}/REQUEST`;\r\nexport const USER_LOGIN_SUCCESS = `${USER_LOGIN_ACTION}/SUCCESS`;\r\nexport const USER_LOGIN_ERROR = `${USER_LOGIN_ACTION}/ERROR`;\r\n\r\nexport const USER_FP_REQUEST = `${USER_FP_ACTION}/REQUEST`;\r\nexport const USER_FP_SUCCESS = `${USER_FP_ACTION}/SUCCESS`;\r\nexport const USER_FP_ERROR = `${USER_FP_ACTION}/ERROR`;\r\n\r\nexport const USER_LOGOUT_REQUEST = `${USER_LOGOUT_ACTION}/REQUEST`;\r\nexport const USER_LOGOUT_SUCCESS = `${USER_LOGOUT_ACTION}/SUCCESS`;\r\nexport const USER_LOGOUT_ERROR = `${USER_LOGOUT_ACTION}/ERROR`;\r\n\r\nexport const SET_USER_LOGIN_TITLE = \"USER/LOGIN_SET_MESSAGE\";\r\n\r\nexport function userLoginRequest(payload) {\r\n return {\r\n type: USER_LOGIN_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userLoginSuccess(data) {\r\n return {\r\n type: USER_LOGIN_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userLoginError(error) {\r\n return {\r\n type: USER_LOGIN_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function userFpRequest(payload) {\r\n return {\r\n type: USER_FP_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userFpSuccess(data) {\r\n return {\r\n type: USER_FP_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userFpError(error) {\r\n return {\r\n type: USER_FP_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function setUserLoginTitle(title, desc) {\r\n return {\r\n type: SET_USER_LOGIN_TITLE,\r\n title,\r\n desc,\r\n };\r\n}\r\n\r\nexport function userLogoutRequest(payload) {\r\n return {\r\n type: USER_LOGOUT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userLogoutSuccess(data) {\r\n return {\r\n type: USER_LOGOUT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userLogoutError(error) {\r\n return {\r\n type: USER_LOGOUT_ERROR,\r\n error,\r\n };\r\n}\r\n","import axios from \"axios\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport {\r\n BAD_REQUEST,\r\n UNAUTHORIZED_STATUS,\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY,\r\n CLINIC_BASE_URL_HEADER_KEY,\r\n CLINIC_SESSION_KEY,\r\n} from \"../config/constants\";\r\n\r\nconst clinicAxios = axios.create();\r\n\r\nclinicAxios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n if (\r\n (error.response.status === UNAUTHORIZED_STATUS &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.INVALID_TOKEN) ||\r\n (error.response.status === BAD_REQUEST &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.TOKEN_NOT_FOUND)\r\n ) {\r\n if (\r\n error.config.headers &&\r\n error.config.headers[CLINIC_BASE_URL_HEADER_KEY]\r\n ) {\r\n return getAuthorizedToken(error.config.headers[CLINIC_BASE_URL_HEADER_KEY])\r\n .then((token) => {\r\n const { config } = error;\r\n localStorage.setItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY, token);\r\n config.headers[\"Authorization\"] = `Bearer ${token}`;\r\n return new Promise((resolve, reject) => {\r\n clinicAxios\r\n .request(config)\r\n .then((res) => {\r\n resolve(res);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n })\r\n .catch((err) => {\r\n return Promise.reject(err);\r\n });\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nfunction apiError(status, message, _data) {\r\n let data = null;\r\n let isObject = false;\r\n try {\r\n data = JSON.parse(_data);\r\n isObject = true;\r\n } catch (error) {\r\n data = _data;\r\n }\r\n return {\r\n status,\r\n message,\r\n data,\r\n toString: () => {\r\n return `${message}\\nResponse:\\n${\r\n isObject ? JSON.stringify(data, null, 2) : data\r\n }`;\r\n },\r\n };\r\n}\r\n\r\nexport function getRequest(\r\n _url,\r\n authToken = \"\",\r\n queryParams = {},\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"GET\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n params: queryParams,\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function postRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n\r\n return clinicAxios({\r\n method: \"POST\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n if(data && data['script'] === \"createSession\"){\r\n localStorage.setItem(CLINIC_SESSION_KEY, response['data']['response']['scriptResult'])\r\n }\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function patchRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"PATCH\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function putRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"PUT\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function getAuthorizedToken(BaseUrl = process.env.REACT_APP_SERVER_BASE_URL) {\r\n const url = `${BaseUrl}/sessions`;\r\n const credentails = btoa(\r\n `${process.env.REACT_APP_API_AUTH_TOKEN_USERNAME}:${process.env.REACT_APP_API_AUTH_TOKEN_PASSWORD}`\r\n );\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Basic ${credentails}`,\r\n };\r\n return clinicAxios({\r\n method: \"POST\",\r\n url,\r\n data: {},\r\n headers,\r\n })\r\n .then(function (response) {\r\n return response.data.response.token;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function deleteRequest(\r\n _url,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"DELETE\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n","import axios from \"axios\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport {\r\n BAD_REQUEST,\r\n UNAUTHORIZED_STATUS,\r\n TOKEN_LOCAL_STORAGE_KEY,\r\n} from \"../config/constants\";\r\n\r\naxios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n if ((\r\n error.response.status === UNAUTHORIZED_STATUS &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.INVALID_TOKEN\r\n ) ||\r\n (\r\n error.response.status === BAD_REQUEST &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.TOKEN_NOT_FOUND\r\n )) {\r\n\r\n return getAuthorizedToken()\r\n .then((token) => {\r\n const { config } = error;\r\n localStorage.setItem(TOKEN_LOCAL_STORAGE_KEY, token);\r\n config.headers[\"Authorization\"] = `Bearer ${token}`;\r\n\r\n if(JSON.parse(config['data'])['logout'] === true){\r\n config['url'] = process.env.REACT_APP_SERVER_BASE_URL + '/sessions/' + token;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .request(config)\r\n .then((res) => {\r\n resolve(res);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n })\r\n .catch((err) => {\r\n return Promise.reject(err);\r\n });\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nfunction apiError(status, message, _data) {\r\n let data = null;\r\n let isObject = false;\r\n try {\r\n data = JSON.parse(_data);\r\n isObject = true;\r\n } catch (error) {\r\n data = _data;\r\n }\r\n return {\r\n status,\r\n message,\r\n data,\r\n toString: () => {\r\n return `${message}\\nResponse:\\n${\r\n isObject ? JSON.stringify(data, null, 2) : data\r\n }`;\r\n },\r\n };\r\n}\r\n\r\nexport function getRequest(\r\n _url,\r\n authToken = \"\",\r\n queryParams = {},\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"GET\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n params: queryParams,\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function postRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n\r\n return axios({\r\n method: \"POST\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function patchRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"PATCH\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function putRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"PUT\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function getAuthorizedToken(BaseUrl = process.env.REACT_APP_SERVER_BASE_URL) {\r\n\r\n const url = `${BaseUrl}/sessions`;\r\n const credentails = btoa(\r\n `${process.env.REACT_APP_API_AUTH_TOKEN_USERNAME}:${process.env.REACT_APP_API_AUTH_TOKEN_PASSWORD}`\r\n );\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Basic ${credentails}`,\r\n };\r\n return axios({\r\n method: \"POST\",\r\n url,\r\n data: {},\r\n headers,\r\n })\r\n .then(function (response) {\r\n return response.data.response.token;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function deleteRequest(\r\n _url,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"DELETE\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport { routes } from '../../../config/routes';\r\nimport Logo from '../../../assets/images/logo.png';\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY, TOKEN_LOCAL_STORAGE_KEY, CLINIC_TOKEN_LOCAL_STORAGE_KEY, LOGGED_USER_SESSION_KEY, CLINIC_SESSION_KEY } from '../../../config/constants';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { userLogoutRequest } from '../../../actions/auth';\r\nimport { SOMETHING_WENT_WRONG } from '../../../config/labels';\r\nimport { Toast } from '../../../helpers/toast';\r\n\r\nclass Header extends Component {\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n\r\n logoutLoading,\r\n logoutSuccess\r\n \r\n } = this.props;\r\n\r\n if (!logoutLoading && prevProps.logoutLoading !== logoutLoading) {\r\n if (logoutSuccess) {\r\n localStorage.removeItem(TOKEN_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(LOGGED_USER_SESSION_KEY);\r\n localStorage.removeItem(CLINIC_SESSION_KEY);\r\n this.props.history.push(routes.LOGIN); \r\n } else {\r\n Toast({ type: 'error', message: SOMETHING_WENT_WRONG });\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n render(){\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n \r\n handleLogout = () => {\r\n this.props.dispatch(userLogoutRequest(localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)));\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n\r\n const { auth } = state;\r\n\r\n return {\r\n\r\n logoutLoading: auth.get(\"logoutLoading\"),\r\n logoutSuccess: auth.get(\"logoutSuccess\"),\r\n logoutError: auth.get(\"logoutError\"),\r\n\r\n }\r\n}\r\n\r\n\r\nHeader = withRouter(Header);\r\nexport default connect(mapStateToProps)(Header);\r\n","import React, { Component } from 'react';\r\nimport Logo from \"../../../assets/images/orange-blue.png\"\r\n\r\nclass Footer extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n );\r\n }\r\n \r\n};\r\n\r\nexport default Footer;","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport Header from \"../views/templates/no-auth-router/Header\";\r\nimport Footer from \"../views/templates/no-auth-router/Footer\";\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY } from \"../config/constants\";\r\nimport { routes } from \"../config/routes\";\r\n\r\nconst AuthRouter = ({ children, ...rest }) => {\r\n return (\r\n {\r\n if (localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)) {\r\n return (\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default AuthRouter;","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport Header from \"../views/templates/no-auth-router/Header\";\r\nimport Footer from \"../views/templates/no-auth-router/Footer\";\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY } from \"../config/constants\";\r\nimport { routes } from \"../config/routes\";\r\n\r\nconst NoAuthRouter = ({ children, ...rest }) => {\r\n return (\r\n {\r\n if (!localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)) {\r\n return (\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default NoAuthRouter;\r\n","import React, { Fragment, Suspense, lazy } from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\n\r\nimport \"./App.css\";\r\nimport { routes } from \"./config/routes\";\r\nimport AuthRouter from \"./routers/AuthRouter\";\r\nimport NoAuthRouter from \"./routers/NoAuthRouter\";\r\nimport { ToastContainer } from \"react-toastify\";\r\n\r\nconst Home = lazy(() => import(\"./views/home/Home\"));\r\nconst Login = lazy(() => import(\"./views/login/Login\"));\r\nconst Register = lazy(() => import(\"./views/register/Register\"));\r\nconst ForgotPassword = lazy(() =>\r\n import(\"./views/forgot-password/ForgotPassword\")\r\n);\r\nconst NotFound = lazy(() => import(\"./views/not-found/NotFound\"));\r\n\r\nfunction App() {\r\n return (\r\n \r\n Loading... }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGIN_ERROR,\r\n USER_FP_REQUEST,\r\n USER_FP_SUCCESS,\r\n USER_FP_ERROR,\r\n SET_USER_LOGIN_TITLE,\r\n USER_LOGOUT_REQUEST,\r\n USER_LOGOUT_SUCCESS,\r\n USER_LOGOUT_ERROR,\r\n} from \"../actions/auth\";\r\n\r\nconst initialState = Map({\r\n loginLoading: false,\r\n loginData: null,\r\n loginUserDetails: null,\r\n loginError: null,\r\n\r\n loginTitle: \"\",\r\n loginDesc: \"\",\r\n\r\n fpLoading: false,\r\n fpData: null,\r\n fpError: null,\r\n\r\n userLoading: false,\r\n userData: {},\r\n userError: null,\r\n\r\n logoutLoading: false,\r\n logoutSuccess: false,\r\n logoutError: false,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n [USER_LOGIN_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: true,\r\n loginData: null,\r\n loginUserDetails: null,\r\n loginError: null,\r\n })\r\n );\r\n },\r\n [USER_LOGIN_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: false,\r\n loginData: action.data,\r\n loginUserDetails: action.data?.response?.data[0]?.fieldData,\r\n })\r\n );\r\n },\r\n [USER_LOGIN_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: false,\r\n loginError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n [USER_FP_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: true,\r\n fpData: null,\r\n fpError: null,\r\n })\r\n );\r\n },\r\n [USER_FP_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: false,\r\n fpData: action.data,\r\n })\r\n );\r\n },\r\n [USER_FP_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: false,\r\n fpError: action.error && action.error.data ? action.error.data : {},\r\n })\r\n );\r\n },\r\n [SET_USER_LOGIN_TITLE]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginTitle: action.title,\r\n loginDesc: action.desc,\r\n })\r\n );\r\n },\r\n\r\n [USER_LOGOUT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: true,\r\n logoutSuccess: false,\r\n logoutError: false,\r\n \r\n })\r\n );\r\n },\r\n [USER_LOGOUT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: false,\r\n logoutSuccess: true,\r\n logoutError: false, \r\n })\r\n );\r\n },\r\n [USER_LOGOUT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: false,\r\n logoutSuccess: false,\r\n logoutError: true, \r\n })\r\n );\r\n },\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n USER_SIGNUP_REQUEST,\r\n USER_SIGNUP_SUCCESS,\r\n USER_SIGNUP_ERROR,\r\n USER_SIGNUP_EMAIL_DUPLICATE\r\n} from \"../actions/signup\";\r\n\r\nimport { EMAIL_ALREADY_IN_USE } from \"../config/labels\";\r\n\r\nconst initialState = Map({\r\n signUpLoading: false,\r\n signUpData: null,\r\n signUpError: null,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n [USER_SIGNUP_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: true,\r\n signUpData: null,\r\n signUpError: null\r\n })\r\n );\r\n },\r\n [USER_SIGNUP_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpData: action.data\r\n })\r\n );\r\n },\r\n [USER_SIGNUP_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\"\r\n })\r\n );\r\n },\r\n [USER_SIGNUP_EMAIL_DUPLICATE]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpError: EMAIL_ALREADY_IN_USE\r\n })\r\n );\r\n }\r\n\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n\r\n FIND_APPOINTMENT_TYPES_REQUEST,\r\n FIND_APPOINTMENT_TYPES_SUCCESS,\r\n FIND_APPOINTMENT_TYPES_ERROR,\r\n\r\n FIND_DIARY_REQUEST,\r\n FIND_DIARY_SUCCESS,\r\n FIND_DIARY_ERROR,\r\n\r\n FIND_DIARY_DAY_REQUEST,\r\n FIND_DIARY_DAY_SUCCESS,\r\n FIND_DIARY_DAY_ERROR,\r\n\r\n FIND_TIME_SLOTS_REQUEST,\r\n FIND_TIME_SLOTS_SUCCESS,\r\n FIND_TIME_SLOTS_ERROR,\r\n\r\n FIND_PACKAGES_REQUEST,\r\n FIND_PACKAGES_SUCCESS,\r\n FIND_PACKAGES_ERROR,\r\n\r\n CHECK_TIMESLOTS_REQUEST,\r\n CHECK_TIMESLOTS_SUCCESS,\r\n CHECK_TIMESLOTS_ERROR,\r\n\r\n FIND_CARDS_REQUEST,\r\n FIND_CARDS_SUCCESS,\r\n FIND_CARDS_ERROR\r\n\r\n} from \"../actions/appointment\";\r\n\r\nconst initialState = Map({\r\n\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesData: [],\r\n findAppointmentTypesError: null,\r\n\r\n findDiaryLoading: false,\r\n findDiaryData: [],\r\n findDiaryError: false,\r\n\r\n findDiaryDayLoading: false,\r\n findDiaryDayData: [],\r\n findDiaryDayError: false,\r\n\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsData: [],\r\n findTimeSlotsError: false,\r\n\r\n findPackagesLoading: false,\r\n findPackagesData: [],\r\n findPackagesError: false,\r\n\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsData: [],\r\n checkTimeslotsError: false,\r\n\r\n findCardsLoading: false,\r\n findCardsData: [],\r\n findCardsError: false\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [FIND_APPOINTMENT_TYPES_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: true,\r\n findAppointmentTypesData: [],\r\n loginError: null,\r\n })\r\n );\r\n },\r\n [FIND_APPOINTMENT_TYPES_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_APPOINTMENT_TYPES_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesError: action.error && action.error.data ? action.error.data : {},\r\n findAppointmentTypesData: []\r\n })\r\n );\r\n },\r\n [FIND_DIARY_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: true,\r\n findDiaryData: [],\r\n findDiaryError: null,\r\n })\r\n );\r\n },\r\n [FIND_DIARY_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: false,\r\n findDiaryData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_DIARY_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: false,\r\n findDiaryError: action.error && action.error.data ? action.error.data : {},\r\n findDiaryData: []\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: true,\r\n findDiaryDayData: [],\r\n findDiaryDayError: null,\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: false,\r\n findDiaryDayData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: false,\r\n findDiaryDayError: action.error && action.error.data ? action.error.data : {},\r\n findDiaryDayData: []\r\n })\r\n );\r\n },\r\n\r\n [FIND_TIME_SLOTS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: true,\r\n findTimeSlotsData: [],\r\n findTimeSlotsError: null,\r\n })\r\n );\r\n },\r\n [FIND_TIME_SLOTS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_TIME_SLOTS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsError: action.error && action.error.data ? action.error.data : {},\r\n findTimeSlotsData: []\r\n })\r\n );\r\n },\r\n\r\n [FIND_PACKAGES_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: true,\r\n findPackagesData: [],\r\n findPackagesError: null,\r\n })\r\n );\r\n },\r\n [FIND_PACKAGES_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: false,\r\n findPackagesData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_PACKAGES_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: false,\r\n findPackagesError: action.error && action.error.data ? action.error.data : {},\r\n findPackagesData: []\r\n })\r\n );\r\n },\r\n\r\n [CHECK_TIMESLOTS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: true,\r\n checkTimeslotsData: [],\r\n findTimeSlotsData: [],\r\n checkTimeslotsError: null,\r\n })\r\n );\r\n },\r\n [CHECK_TIMESLOTS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [CHECK_TIMESLOTS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsError: action.error && action.error.data ? action.error.data : {},\r\n checkTimeslotsData: []\r\n })\r\n );\r\n },\r\n\r\n\r\n [FIND_CARDS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findCardsLoading: true,\r\n findCardsData: [],\r\n findCardsError: null,\r\n })\r\n );\r\n },\r\n [FIND_CARDS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findCardsLoading: false,\r\n findCardsData: action.data?.response?.data,\r\n })\r\n );\r\n },\r\n [FIND_CARDS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findCardsLoading: false,\r\n findCardsError: action.error && action.error.data ? action.error.data : {},\r\n findCardsData: []\r\n })\r\n );\r\n },\r\n\r\n\r\n}\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\nimport { \r\n \r\n CREATE_INVOICE_REQUEST, \r\n CREATE_INVOICE_SUCCESS, \r\n CREATE_INVOICE_ERROR, \r\n \r\n CREATE_RECEIPT_REQUEST, \r\n CREATE_RECEIPT_SUCCESS, \r\n CREATE_RECEIPT_ERROR, \r\n \r\n CONFIRM_PAYMENT_REQUEST, \r\n CONFIRM_PAYMENT_SUCCESS, \r\n CONFIRM_PAYMENT_ERROR, \r\n \r\n GET_CONFORMATION_SUCCESS, \r\n GET_CONFORMATION_REQUEST, \r\n GET_CONFORMATION_ERROR, \r\n \r\n FIND_RECEIPT_REQUEST, \r\n FIND_RECEIPT_SUCCESS, \r\n FIND_RECEIPT_ERROR, \r\n\r\n INITIATE_PAYMENT_REQUEST,\r\n INITIATE_PAYMENT_SUCCESS,\r\n INITIATE_PAYMENT_ERROR,\r\n\r\n BOOK_SLOT_FINAL_REQUEST,\r\n BOOK_SLOT_FINAL_SUCCESS,\r\n BOOK_SLOT_FINAL_ERROR,\r\n\r\n BOOK_SLOT_REQUEST,\r\n BOOK_SLOT_SUCCESS,\r\n BOOK_SLOT_ERROR,\r\n\r\n ADD_APPOINTMENT_REQUEST,\r\n ADD_APPOINTMENT_SUCCESS,\r\n ADD_APPOINTMENT_ERROR,\r\n\r\n ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n ADD_PREVIOUS_APPOINTMENT_SUCCESS,\r\n ADD_PREVIOUS_APPOINTMENT_ERROR,\r\n\r\n ADD_INVOICE_REQUEST,\r\n ADD_INVOICE_SUCCESS,\r\n ADD_INVOICE_ERROR,\r\n\r\n ADD_RECEIPT_REQUEST,\r\n ADD_RECEIPT_SUCCESS,\r\n ADD_RECEIPT_ERROR,\r\n\r\n SELECT_SAVED_CARD\r\n\r\n} from \"../actions/payment\";\r\n\r\nconst initialState = Map({\r\n \r\n createInvoiceLoading: false,\r\n createInvoiceData: {},\r\n createInvoiceError: null,\r\n\r\n createReceiptLoading: false,\r\n createReceiptData: {},\r\n createReceiptError: null,\r\n\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: {},\r\n initiatePaymentError: null,\r\n\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: {},\r\n confirmPaymentError: null,\r\n\r\n findReceiptLoading: false,\r\n findReceiptData: {},\r\n findReceiptError: null,\r\n\r\n getConformationLoading: false,\r\n getConformationData: {},\r\n getConformationError: null,\r\n\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError: null,\r\n\r\n bookSlotLoading: false,\r\n bookSlotData: {},\r\n bookSlotError: null,\r\n\r\n addAppointmentLoading: false,\r\n addAppointmentSuccess: {},\r\n addAppointmentError: null,\r\n\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError: null,\r\n\r\n addInvoiceLoading: false,\r\n addInvoiceSuccess: {},\r\n addInvoiceError: null,\r\n\r\n addReceiptLoading: false,\r\n addReceiptSuccess: {},\r\n addReceiptError: null,\r\n\r\n selectedSavedCard: null\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [CREATE_INVOICE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: true,\r\n createInvoiceData: {},\r\n createInvoiceError: null\r\n })\r\n );\r\n },\r\n [CREATE_INVOICE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: false,\r\n createInvoiceData: action.data\r\n })\r\n );\r\n },\r\n [CREATE_INVOICE_ERROR]: (state, action) => {\r\n\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: false,\r\n createInvoiceData: {},\r\n createInvoiceError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n \r\n [CREATE_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: true,\r\n createReceiptData: {},\r\n createReceiptError: null\r\n })\r\n );\r\n },\r\n [CREATE_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: false,\r\n createReceiptData: action.data\r\n })\r\n );\r\n },\r\n [CREATE_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: false,\r\n createReceiptData: {},\r\n createReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [INITIATE_PAYMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: true,\r\n initiatePaymentData: {},\r\n initiatePaymentError: null\r\n })\r\n );\r\n },\r\n [INITIATE_PAYMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: action.data\r\n })\r\n );\r\n },\r\n [INITIATE_PAYMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: {},\r\n initiatePaymentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n\r\n [CONFIRM_PAYMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: true,\r\n confirmPaymentData: {},\r\n confirmPaymentError: null\r\n })\r\n );\r\n },\r\n [CONFIRM_PAYMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: action.data\r\n })\r\n );\r\n },\r\n [CONFIRM_PAYMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: {},\r\n confirmPaymentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [FIND_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: true,\r\n findReceiptData: {},\r\n findReceiptError: null\r\n })\r\n );\r\n },\r\n [FIND_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: false,\r\n findReceiptData: action?.data\r\n })\r\n );\r\n },\r\n [FIND_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: false,\r\n findReceiptData: {},\r\n findReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [GET_CONFORMATION_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: true,\r\n getConformationData: {},\r\n getConformationError: null\r\n })\r\n );\r\n },\r\n [GET_CONFORMATION_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: false,\r\n getConformationData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [GET_CONFORMATION_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: false,\r\n getConformationData: {},\r\n getConformationError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [BOOK_SLOT_FINAL_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: true,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError: null\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_FINAL_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_FINAL_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [BOOK_SLOT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: true,\r\n bookSlotData: {},\r\n bookSlotError: null\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: false,\r\n bookSlotData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: false,\r\n bookSlotData: {},\r\n bookSlotError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [ADD_APPOINTMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: true,\r\n addAppointmentData: {},\r\n addAppointmentError: null\r\n })\r\n );\r\n },\r\n [ADD_APPOINTMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: false,\r\n addAppointmentData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_APPOINTMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: false,\r\n addAppointmentData: {},\r\n addAppointmentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [ADD_PREVIOUS_APPOINTMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: true,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError: null\r\n })\r\n );\r\n },\r\n [ADD_PREVIOUS_APPOINTMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_PREVIOUS_APPOINTMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [ADD_INVOICE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: true,\r\n addInvoiceData: {},\r\n addInvoiceError: null\r\n })\r\n );\r\n },\r\n [ADD_INVOICE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: false,\r\n addInvoiceData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_INVOICE_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: false,\r\n addInvoiceData: {},\r\n addInvoiceError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n \r\n [ADD_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: true,\r\n addReceiptData: {},\r\n addReceiptError: null\r\n })\r\n );\r\n },\r\n [ADD_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: false,\r\n addReceiptData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: false,\r\n addReceiptData: {},\r\n addReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n [SELECT_SAVED_CARD]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n selectedSavedCard: action.card,\r\n })\r\n );\r\n }\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n\r\n GET_PATIENT_CLINICS_REQUEST,\r\n GET_PATIENT_CLINICS_SUCCESS,\r\n GET_PATIENT_CLINICS_ERROR,\r\n\r\n GET_SINGLE_CLINIC_REQUEST,\r\n GET_SINGLE_CLINIC_SUCCESS,\r\n GET_SINGLE_CLINIC_ERROR,\r\n\r\n ADD_PATIENT_CLINIC_REQUEST,\r\n ADD_PATIENT_CLINIC_SUCCESS,\r\n ADD_PATIENT_CLINIC_ERROR,\r\n\r\n ADD_PATIENT_REQUEST,\r\n ADD_PATIENT_SUCCESS,\r\n ADD_PATIENT_ERROR,\r\n\r\n GET_ALL_CLINICS_REQUEST,\r\n GET_ALL_CLINICS_SUCCESS,\r\n GET_ALL_CLINICS_ERROR,\r\n\r\n} from \"../actions/clinics\";\r\n\r\nimport { SOMETHING_WENT_WRONG } from \"../config/labels\";\r\n\r\nconst initialState = Map({\r\n \r\n patientClinicLoading: false,\r\n patientClinicData: {},\r\n patientClinics: [],\r\n patientClinicsCardsInfo: {},\r\n patientClinicDeleteCard: {\r\n clinicRecordId: 0,\r\n ID_PaymentCard: 0,\r\n cardNumber: '',\r\n baseUrl: '',\r\n loading: false,\r\n deleteStatus: false,\r\n error: null\r\n },\r\n patientClinicError: null,\r\n\r\n singleClinicLoading: false,\r\n singleClinicData: {},\r\n singleClinicError: null,\r\n\r\n addClinicLoading: false,\r\n addClinicData: {},\r\n addClinicError: null,\r\n \r\n addPatientLoading: false,\r\n addPatientData: null,\r\n addPatientError: null\r\n\r\n})\r\n\r\n\r\n\r\nconst actionMap = {\r\n\r\n [GET_PATIENT_CLINICS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: true,\r\n patientClinicData: {},\r\n patientClinics: [],\r\n patientClinicError: null\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINICS_SUCCESS]: (state, action) => {\r\n const patientClinicsCardsInfo = addCardsInfoToPatientClinics(action.data['response']['data']);\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: false,\r\n patientClinics: action.data['response']['data'],\r\n patientClinicsCardsInfo,\r\n patientClinicData: action.data,\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINICS_ERROR]: (state, action) => {\r\n\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: false,\r\n patientClinicData: {},\r\n patientClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [GET_SINGLE_CLINIC_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: true,\r\n singleClinicData: {}\r\n })\r\n );\r\n },\r\n [GET_SINGLE_CLINIC_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: false,\r\n singleClinicData: action.data['response']['data'][0]['fieldData'],\r\n })\r\n );\r\n },\r\n [GET_SINGLE_CLINIC_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: false,\r\n singleClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [ADD_PATIENT_CLINIC_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: true,\r\n addClinicData: {},\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_CLINIC_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: false,\r\n addClinicData: action.data,\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_CLINIC_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: false,\r\n addClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [ADD_PATIENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: true,\r\n addPatientData: null,\r\n addPatientError: null\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: false,\r\n addPatientData: action.data,\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: false,\r\n addPatientData: null,\r\n addPatientError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [GET_ALL_CLINICS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n allClinicLoading: true,\r\n allClinicData: null,\r\n allClinics: [],\r\n allClinicError: null\r\n })\r\n );\r\n },\r\n [GET_ALL_CLINICS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n allClinicLoading: false,\r\n allClinics: action.data['response']['data'],\r\n allClinicData: action.data,\r\n })\r\n );\r\n },\r\n\r\n [GET_ALL_CLINICS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n allClinicLoading: false,\r\n allClinicData: null,\r\n allClinics: [],\r\n allClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n}\r\n\r\nfunction addCardsInfoToPatientClinics(patientClinics) {\r\n const cardInfo = {};\r\n patientClinics.map(o => {\r\n cardInfo[o.recordId] = {\r\n isOpen: false, loading:false, cards: [], error:null\r\n }\r\n return o;\r\n });\r\n return cardInfo;\r\n}\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n }\r\n ","import { combineReducers } from \"redux\";\r\nimport { reducer as formReducer } from \"redux-form\";\r\nimport auth from \"./auth\";\r\nimport signup from \"./signup\";\r\nimport appointment from \"./appointment\";\r\nimport payment from \"./payment\";\r\nimport clinics from \"./clinics\";\r\n\r\nexport default combineReducers({\r\n auth,\r\n signup,\r\n appointment,\r\n payment,\r\n clinics,\r\n form: formReducer\r\n});\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction userSignUp(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction forgotPassword(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n userSignUp,\r\n forgotPassword,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n USER_LOGIN_REQUEST,\r\n userLoginSuccess,\r\n userLoginError,\r\n USER_FP_REQUEST,\r\n userFpSuccess,\r\n userFpError,\r\n USER_LOGOUT_REQUEST,\r\n userLogoutSuccess,\r\n userLogoutError,\r\n} from \"../actions/auth\";\r\nimport findApi from \"../api/find\";\r\nimport recordsApi from \"../api/records\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY, LOGGED_USER_SESSION_KEY } from \"../config/constants\";\r\n\r\nfunction userLogin() {\r\n return function* (actions) {\r\n const { payload } = actions;\r\n\r\n try {\r\n\r\n const session_payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createSession\",\r\n \"script.param\" : `${payload.email}|${payload.password}`\r\n }\r\n \r\n const create_session = yield call(() => findApi.createSession(session_payload));\r\n\r\n if (\r\n create_session &&\r\n create_session.messages &&\r\n create_session.messages[0] &&\r\n create_session.messages[0].code === API_CODES.SUCCESS && \r\n create_session.response &&\r\n create_session.response.scriptError === API_CODES.SUCCESS\r\n ) {\r\n\r\n localStorage.setItem(\r\n LOGGED_USER_SESSION_KEY,\r\n create_session?.['response']?.['scriptResult']\r\n );\r\n\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"findPatient\",\r\n \"script.param\" : create_session?.['response']?.['scriptResult']\r\n }\r\n const data = yield call(() => findApi.userLogin(_payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n\r\n if(\r\n data &&\r\n data['response'] &&\r\n data['response']['scriptResult'] === \"No Matches\"\r\n ) {\r\n yield put(userLoginError(data));\r\n } else {\r\n \r\n yield put(userLoginSuccess(data));\r\n const userDetails = JSON.parse(data?.['response']?.['scriptResult']).response['data'][0]['fieldData']\r\n \r\n userDetails['idPatient'] = create_session?.['response']?.['scriptResult'];\r\n\r\n localStorage.setItem(\r\n LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY,\r\n JSON.stringify(userDetails)\r\n );\r\n }\r\n\r\n } else {\r\n yield put(userLoginError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } else {\r\n yield put(userLoginError(create_session));\r\n }\r\n } catch (error) {\r\n yield put(userLoginError(error));\r\n }\r\n } \r\n};\r\n\r\nfunction forgotPassword() {\r\n return function* (actions) {\r\n try { \r\n const { payload } = actions;\r\n const data = yield call(() => recordsApi.forgotPassword(payload)); \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userFpSuccess(data));\r\n } else {\r\n yield put(userFpError(data));\r\n }\r\n } catch (error) {\r\n yield put(userFpError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction userLogout() {\r\n return function* (actions) {\r\n\r\n try {\r\n\r\n const { payload } = actions;\r\n const data = yield call(() => findApi.logout(payload)) \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userLogoutSuccess(data));\r\n } else {\r\n yield put(userLogoutError(data));\r\n }\r\n } catch (error) {\r\n yield put(userFpError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* userAuthWatcher() {\r\n yield takeLatest(USER_LOGIN_REQUEST, userLogin());\r\n yield takeLatest(USER_FP_REQUEST, forgotPassword());\r\n yield takeLatest(USER_LOGOUT_REQUEST, userLogout());\r\n}\r\n\r\nexport default [userAuthWatcher()];\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n userSignUpSuccess,\r\n userSignUpError,\r\n userSignUpDuplicateEmail,\r\n USER_SIGNUP_REQUEST,\r\n} from \"../actions/signup\";\r\nimport recordsApi from \"../api/records\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction userSignUp() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n let _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ], \r\n \"script\" : \"createPatient\",\r\n \"script.param\" : `${payload.nameFirst}|${payload.nameLast}|${payload.email}|${payload.phoneMobile}|${payload.address1}|${payload.address2}|${payload.addressTown}|${payload.addressCounty}|${payload.addressPostcode}|${payload.country}|${payload.password}|${payload.dateOfBirth}`\r\n }\r\n\r\n const data = yield call(() => recordsApi.userSignUp(_payload));\r\n if(\r\n data &&\r\n data['response'] &&\r\n data['response']['scriptResult'] === \"This email is already in use.\"\r\n ) {\r\n yield put(userSignUpDuplicateEmail(data));\r\n }\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userSignUpSuccess(data));\r\n } else {\r\n yield put(userSignUpError(data));\r\n }\r\n } catch (error) {\r\n if(\r\n error &&\r\n error['data']['response'] &&\r\n error['data']['response'] &&\r\n error['data']['response']['data'] &&\r\n error['data']['response']['data']['messages'][0] &&\r\n error['data']['response']['data']['messages'][0].code === \"1\"\r\n ){\r\n yield put(userSignUpError(error));\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function* userSignupWatcher() {\r\n yield takeLatest(USER_SIGNUP_REQUEST, userSignUp());\r\n}\r\n\r\nexport default [userSignupWatcher()];\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findAppointments(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findAppointments\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findDiary(payload, authKey=\"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findDiary\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findDiary(payload, authKey=\"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findDiary\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findTimeSlot(payload, authKey=\"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findTimeSlot\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findPaymentCards(payload, authKey=\"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findPaymentCards\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction checkfindTimeSlots(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n checkfindTimeSlots,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n\r\n FIND_APPOINTMENT_TYPES_REQUEST,\r\n findAppointmentTypesSuccess,\r\n findAppointmentTypesError,\r\n\r\n FIND_DIARY_REQUEST,\r\n findDiarySuccess,\r\n findDiaryError,\r\n \r\n FIND_DIARY_DAY_REQUEST,\r\n findDiaryDaySuccess,\r\n findDiaryDayError,\r\n\r\n FIND_TIME_SLOTS_REQUEST,\r\n findTimeSlotsSuccess,\r\n findTimeSlotsError,\r\n \r\n FIND_PACKAGES_REQUEST,\r\n findPackagesSuccess,\r\n findPackagesError,\r\n\r\n CHECK_TIMESLOTS_REQUEST,\r\n checkTimeslotsSuccess,\r\n checkTimeslotsError,\r\n FIND_CARDS_REQUEST,\r\n findCardsSuccess,\r\n findCardsError\r\n\r\n} from \"../actions/appointment\";\r\n\r\nimport findProductApi from \"../api/product-api-find\"\r\nimport diaryApi from \"../api/diary-api-find\";\r\nimport diaryDayApi from \"../api/diary-day-api-find\";\r\nimport timeSlotsApi from \"../api/time-slots-api\";\r\nimport paymentCardApi from \"../api/payment-card-find\";\r\nimport checkTimeSlotsApi from \"../api/check-time-slots-api\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction findAppointment() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const _data = yield call(() => findProductApi.findAppointments(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findAppointmentTypesSuccess(data));\r\n } else {\r\n yield put(findAppointmentTypesError(data));\r\n }\r\n } catch (error) {\r\n yield put(findAppointmentTypesError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findDiary() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n\r\n const _data = yield call(() => diaryApi.findDiary(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findDiarySuccess(data));\r\n } else {\r\n yield put(findDiaryError(data));\r\n }\r\n } catch (error) {\r\n yield put(findDiaryError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findDiaryDay() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const _data = yield call(() => diaryDayApi.findDiary(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findDiaryDaySuccess(data));\r\n } else {\r\n yield put(findDiaryDayError(data));\r\n }\r\n } catch (error) {\r\n yield put(findDiaryDayError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findTimeSlots() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const _data = yield call(() => timeSlotsApi.findTimeSlot(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findTimeSlotsSuccess(data));\r\n } else {\r\n yield put(findTimeSlotsError(data));\r\n }\r\n } catch (error) {\r\n yield put(findTimeSlotsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findPackages() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const _data = yield call(() => findProductApi.findAppointments(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findPackagesSuccess(data));\r\n } else {\r\n yield put(findPackagesError(data));\r\n }\r\n } catch (error) {\r\n yield put(findPackagesError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction checkTimeSlots() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const data = yield call(() => checkTimeSlotsApi.checkfindTimeSlots(payload)); \r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(checkTimeslotsSuccess(data));\r\n } else {\r\n yield put(checkTimeslotsError(data));\r\n }\r\n } catch (error) {\r\n yield put(checkTimeslotsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findCards() {\r\n return function* (actions) {\r\n try {\r\n\r\n const { payload } = actions;\r\n \r\n const _data = yield call(() => paymentCardApi.findPaymentCards(payload)); \r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findCardsSuccess(data));\r\n } else {\r\n yield put(findCardsError(data));\r\n }\r\n } catch (error) {\r\n yield put(findCardsError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* userAuthWatcher() {\r\n yield takeLatest(FIND_APPOINTMENT_TYPES_REQUEST, findAppointment());\r\n yield takeLatest(FIND_DIARY_REQUEST, findDiary());\r\n yield takeLatest(FIND_DIARY_DAY_REQUEST, findDiaryDay());\r\n yield takeLatest(FIND_TIME_SLOTS_REQUEST, findTimeSlots());\r\n yield takeLatest(FIND_PACKAGES_REQUEST, findPackages());\r\n yield takeLatest(CHECK_TIMESLOTS_REQUEST, checkTimeSlots());\r\n yield takeLatest(FIND_CARDS_REQUEST, findCards());\r\n}\r\n\r\nexport default [userAuthWatcher()];\r\n","import { postRequest } from \".\";\r\nimport { postRequest as clinicPostRequest } from \"./clinics-axios\";\r\n\r\nconst paymentUri = \"/layouts/access/_find\"\r\n\r\nfunction createInvoice(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction createReceipt(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction initiatePayment(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction confirmPayment(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction findReceipt(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction getConfirmation(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction bookFinalSlot(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction bookSlot(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction addAppointment(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction addInvoice(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction addReceipt(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n createInvoice,\r\n createReceipt,\r\n initiatePayment,\r\n confirmPayment,\r\n findReceipt,\r\n getConfirmation,\r\n bookFinalSlot,\r\n bookSlot,\r\n addAppointment,\r\n addInvoice,\r\n addReceipt,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\n\r\nimport { \r\n \r\n CREATE_INVOICE_REQUEST, \r\n createInvoiceSuccess, \r\n createInvoiceError, \r\n\r\n CREATE_RECEIPT_REQUEST, \r\n createReceiptSuccess, \r\n createReceiptError, \r\n\r\n INITIATE_PAYMENT_REQUEST, \r\n initiatePaymentSuccess,\r\n initiatePaymentError,\r\n\r\n CONFIRM_PAYMENT_REQUEST,\r\n confirmPaymentSuccess,\r\n confirmPaymentError,\r\n\r\n FIND_RECEIPT_REQUEST,\r\n findReceiptSuccess,\r\n findReceiptError,\r\n\r\n GET_CONFORMATION_REQUEST,\r\n getConformationSuccess,\r\n getConformationError,\r\n\r\n BOOK_SLOT_FINAL_REQUEST,\r\n bookFinalSlotSuccess,\r\n bookFinalSlotError,\r\n \r\n BOOK_SLOT_REQUEST,\r\n bookSlotSuccess,\r\n bookSlotError,\r\n\r\n ADD_APPOINTMENT_REQUEST,\r\n addAppointmentSuccess,\r\n addAppointmentError,\r\n\r\n ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n addPreviousAppointmentSuccess,\r\n addPreviousAppointmentError,\r\n\r\n ADD_INVOICE_REQUEST,\r\n addInvoiceSuccess,\r\n addInvoiceError,\r\n\r\n ADD_RECEIPT_REQUEST,\r\n addReceiptSuccess,\r\n addReceiptError,\r\n\r\n} from \"../actions/payment\";\r\n\r\nimport payment_api from \"../api/payment-api\"\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction createInvoice() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const data = yield call(() => payment_api.createInvoice(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(createInvoiceSuccess(data));\r\n } else {\r\n yield put(createInvoiceError(data));\r\n } \r\n } catch (error) {\r\n yield put(createInvoiceError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction createReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const data = yield call(() => payment_api.createReceipt(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(createReceiptSuccess(data));\r\n } else {\r\n yield put(createReceiptError(data));\r\n } \r\n } catch (error) {\r\n yield put(createReceiptError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction initiatePayment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n \r\n const data = yield call(() => payment_api.initiatePayment(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(initiatePaymentSuccess(data));\r\n } else {\r\n yield put(initiatePaymentError(data));\r\n } \r\n } catch (error) {\r\n yield put(initiatePaymentError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction confirmPayment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const data = yield call(() => payment_api.confirmPayment(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(confirmPaymentSuccess(data));\r\n } else {\r\n yield put(confirmPaymentError(data));\r\n } \r\n } catch (error) {\r\n yield put(confirmPaymentError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction findReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions\r\n\r\n const _data = yield call(() => payment_api.findReceipt(payload));\r\n const data = JSON.parse(_data?.['response']?.['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findReceiptSuccess(data));\r\n } else {\r\n yield put(findReceiptError(data));\r\n } \r\n } catch (error) {\r\n yield put(findReceiptError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction getConfirmation() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _data = yield call(() => payment_api.getConfirmation(payload));\r\n const data = JSON.parse(_data?.['response']?.['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getConformationSuccess(data));\r\n } else {\r\n yield put(getConformationError(data));\r\n } \r\n } catch (error) {\r\n yield put(getConformationError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction bookFinalSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const data = yield call(() => payment_api.bookFinalSlot(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(bookFinalSlotSuccess(data));\r\n } else {\r\n yield put(bookFinalSlotError(data));\r\n } \r\n } catch (error) {\r\n yield put(bookFinalSlotError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction bookSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n \r\n const data = yield call(() => payment_api.bookSlot(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(bookSlotSuccess(data));\r\n } else {\r\n yield put(bookSlotError(data));\r\n } \r\n } catch (error) {\r\n yield put(bookSlotError(error));\r\n }\r\n } \r\n}\r\n\r\nfunction addAppointment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addAppointment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addAppointmentSuccess(data));\r\n } else {\r\n yield put(addAppointmentError(data));\r\n }\r\n } catch (error) {\r\n yield put(addAppointmentError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction addPreviousAppointment(){\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addAppointment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPreviousAppointmentSuccess(data));\r\n } else {\r\n yield put(addPreviousAppointmentError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPreviousAppointmentError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction addInvoice() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addInvoice(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addInvoiceSuccess(data));\r\n } else {\r\n yield put(addInvoiceError(data));\r\n }\r\n } catch (error) {\r\n yield put(addInvoiceError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addReceipt(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addReceiptSuccess(data));\r\n } else {\r\n yield put(addReceiptError(data));\r\n }\r\n } catch (error) {\r\n yield put(addReceiptError(error));\r\n }\r\n };\r\n}\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(CREATE_INVOICE_REQUEST, createInvoice());\r\n yield takeLatest(CREATE_RECEIPT_REQUEST, createReceipt());\r\n yield takeLatest(INITIATE_PAYMENT_REQUEST, initiatePayment());\r\n yield takeLatest(CONFIRM_PAYMENT_REQUEST, confirmPayment());\r\n yield takeLatest(FIND_RECEIPT_REQUEST, findReceipt());\r\n yield takeLatest(GET_CONFORMATION_REQUEST, getConfirmation());\r\n yield takeLatest(BOOK_SLOT_FINAL_REQUEST, bookFinalSlots());\r\n yield takeLatest(BOOK_SLOT_REQUEST, bookSlots());\r\n yield takeLatest(ADD_APPOINTMENT_REQUEST, addAppointment());\r\n yield takeLatest(ADD_PREVIOUS_APPOINTMENT_REQUEST, addPreviousAppointment());\r\n yield takeLatest(ADD_INVOICE_REQUEST, addInvoice());\r\n yield takeLatest(ADD_RECEIPT_REQUEST, addReceipt());\r\n}\r\n\r\nexport default [profileAuthWatcher()];","import { getRequest, postRequest } from \".\";\r\nimport { postRequest as clinicPostRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = '/layouts/access/_find';\r\n\r\nfunction getPatientClinics(payload, authKey=\"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction getSingleClinic(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction addPatientClinic(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction addPatient(payload, authKey = \"\") {\r\n return clinicPostRequest( \r\n findUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction patientClinicAddPatient(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\n\r\nfunction getAllClinics(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n getAllClinics,\r\n getPatientClinics,\r\n getSingleClinic,\r\n addPatientClinic,\r\n addPatient,\r\n patientClinicAddPatient\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n\r\n GET_PATIENT_CLINICS_REQUEST,\r\n getPatientClinicsSuccess,\r\n getPatientClinicsError,\r\n\r\n GET_SINGLE_CLINIC_REQUEST,\r\n getSingleClinicSuccess,\r\n getSingleClinicError,\r\n\r\n ADD_PATIENT_CLINIC_REQUEST,\r\n addPatientClinicSuccess,\r\n addPatientClinicError,\r\n\r\n ADD_PATIENT_REQUEST,\r\n addPatientSuccess,\r\n addPatientError,\r\n\r\n GET_ALL_CLINICS_REQUEST,\r\n getAllClinicsSuccess,\r\n getAllClinicsError,\r\n\r\n} from \"../actions/clinics\";\r\n\r\nimport findApi from \"../api/clinic-api-find\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport { LOGGED_USER_SESSION_KEY } from \"../config/constants\";\r\n\r\nfunction getPatientsClinics() {\r\n return function* (actions) {\r\n try {\r\n const _payload = {\r\n query: [{ \"z1\": \"1\" }],\r\n \"script\" : \"getPatientClinics\",\r\n \"script.param\" : localStorage.getItem(LOGGED_USER_SESSION_KEY)\r\n };\r\n\r\n const data = yield call(() => findApi.getPatientClinics(_payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getPatientClinicsSuccess(JSON.parse(data?.['response']?.['scriptResult'])));\r\n } else {\r\n yield put(getPatientClinicsError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } catch (error) {\r\n yield put(getPatientClinicsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getSingleClinic() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"getClinic\",\r\n \"script.param\" : payload\r\n } \r\n const _data = yield call(() => findApi.getSingleClinic(_payload));\r\n const data = JSON.parse(_data?.['response']?.['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getSingleClinicSuccess(data));\r\n } else {\r\n yield put(getSingleClinicError(data));\r\n }\r\n } catch (error) {\r\n yield put(getSingleClinicError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addPatientClinic() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => findApi.addPatientClinic(payload) );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPatientClinicSuccess(data));\r\n } else {\r\n yield put(getSingleClinicError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPatientClinicError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addPatientRequest() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"createPatient\",\r\n \"script.param\" : `${payload[\"payload\"][\"nameFirst\"]}|${payload[\"payload\"][\"nameLast\"]}|${payload[\"payload\"][\"email\"]}|${payload[\"payload\"][\"phoneMobile\"]}|${payload[\"payload\"][\"dateOfBirth\"]}|${payload[\"payload\"][\"address1\"]}|${payload[\"payload\"][\"address2\"]}|${payload[\"payload\"][\"addressTown\"]}|${payload[\"payload\"][\"addressCounty\"]}|${payload[\"payload\"][\"addressPostcode\"]}|${payload[\"payload\"][\"idPatient\"]}|${payload[\"payload\"][\"ID_Clinic\"]}`\r\n }\r\n\r\n const combineData = { payload: _payload, baseUrl: payload.baseUrl }\r\n\r\n const data = yield call(() => findApi.addPatient(combineData));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n const {\r\n response: { scriptResult },\r\n } = data;\r\n const {\r\n payload: { idPatient, idClinic },\r\n } = payload;\r\n const ID_Patient = scriptResult;\r\n\r\n const combinedPatientPayload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"updatePatientID\",\r\n \"script.param\" : `${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${idClinic}|${ID_Patient}`\r\n }\r\n\r\n const patientClinicAddPatientRes = yield call(() => findApi.patientClinicAddPatient(combinedPatientPayload));\r\n\r\n if (\r\n patientClinicAddPatientRes &&\r\n patientClinicAddPatientRes.messages &&\r\n patientClinicAddPatientRes.messages[0] &&\r\n patientClinicAddPatientRes.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPatientSuccess(data));\r\n } else {\r\n yield put(addPatientError(data));\r\n }\r\n } else {\r\n yield put(addPatientError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPatientError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getAllClinics() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _payload = {\r\n query: [{ \"z1\": \"1\" }],\r\n \"script\" : \"clinicWildcard\",\r\n \"script.param\" : `${payload.sessionId}|${payload.search || '*'}`\r\n };\r\n const _data = yield call(() => findApi.getAllClinics(_payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getAllClinicsSuccess(data));\r\n } else {\r\n yield put(getAllClinicsError(data));\r\n }\r\n } catch (error) {\r\n yield put(getAllClinicsError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(GET_PATIENT_CLINICS_REQUEST, getPatientsClinics());\r\n yield takeLatest(GET_SINGLE_CLINIC_REQUEST, getSingleClinic());\r\n yield takeLatest(ADD_PATIENT_CLINIC_REQUEST, addPatientClinic());\r\n yield takeLatest(ADD_PATIENT_REQUEST, addPatientRequest());\r\n yield takeLatest(GET_ALL_CLINICS_REQUEST, getAllClinics());\r\n}\r\n \r\nexport default [profileAuthWatcher()];\r\n ","import { all } from \"redux-saga/effects\";\r\nimport auth from \"./auth\";\r\nimport signup from \"./signup\";\r\nimport appointment from \"./appointment\";\r\nimport payment from \"./payment\";\r\nimport clinics from \"./clinics\";\r\n\r\nexport default function* rootSaga() {\r\n yield all([...auth, ...signup, ...appointment, ...payment, ...clinics]);\r\n}\r\n","import { createBrowserHistory } from \"history\";\r\nexport default createBrowserHistory();\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { Provider } from \"react-redux\";\r\nimport configureStore from \"./config/store\";\r\nimport { Router } from \"react-router-dom\";\r\nimport history from \"./config/history\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import createSagaMiddleware from \"redux-saga\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport rootReducer from '../reducers';\r\nimport rootSaga from '../sagas';\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nexport default function configureStore() {\r\n const sagaMiddleware = createSagaMiddleware();\r\n let store = null;\r\n if (process.env.REACT_APP_ENV === \"dev\") {\r\n const composeEnhancers = composeWithDevTools({});\r\n store = createStore(\r\n rootReducer,\r\n composeEnhancers(applyMiddleware(sagaMiddleware))\r\n );\r\n } else {\r\n store = createStore(rootReducer, applyMiddleware(sagaMiddleware));\r\n }\r\n sagaMiddleware.run(rootSaga);\r\n return store;\r\n}\r\n","export const BASE_URL = \"/\";\r\nexport const routes = {\r\n BASEPATH: BASE_URL,\r\n\r\n LOGIN: `${BASE_URL}login`,\r\n\r\n REGISTER: `${BASE_URL}register`,\r\n\r\n FORGOT_PASSWORD: `${BASE_URL}forgot-password`\r\n};\r\n","const USER_SIGNUP_ACTION = \"USER/SIGNUP\";\r\n\r\nexport const USER_SIGNUP_REQUEST = `${USER_SIGNUP_ACTION}/REQUEST`;\r\nexport const USER_SIGNUP_SUCCESS = `${USER_SIGNUP_ACTION}/SUCCESS`;\r\nexport const USER_SIGNUP_ERROR = `${USER_SIGNUP_ACTION}/ERROR`;\r\nexport const USER_SIGNUP_EMAIL_DUPLICATE = `${USER_SIGNUP_ACTION}/EMAIL/DUPLICATE`;\r\n\r\nexport function userSignUpRequest(payload){\r\n return{\r\n type: USER_SIGNUP_REQUEST,\r\n payload\r\n }\r\n}\r\n\r\nexport function userSignUpSuccess(data) {\r\n return {\r\n type: USER_SIGNUP_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function userSignUpError(error) {\r\n return {\r\n type: USER_SIGNUP_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function userSignUpDuplicateEmail(error) {\r\n return {\r\n type: USER_SIGNUP_EMAIL_DUPLICATE,\r\n error\r\n };\r\n}\r\n","export const INVALID_EMAIL_OR_PASSWORD = \"Invalid email or password.\";\r\nexport const SOMETHING_WENT_WRONG = \"Something went wrong!\";\r\nexport const FORGOT_PASSWORD_SUCCESS = \"Password Link has been sent\";\r\nexport const FORGOT_PASSWORD_EMAIL_NOT_FOUND = \"Email doesn't exists\";\r\nexport const EMAIL_ALREADY_IN_USE = \"This email is already in use.\"\r\nexport const CONGRATULATIONS = \"Congratulations\";\r\nexport const NO_DATA_FOUND_FROM_POSTCODE =\r\n \"No data was found for the requested postal code\";\r\nexport const CONGRATULATIONS_DESC =\r\n \"Your registration has been successful!
Login to book your first treatment.\";\r\nexport const ACCESS_FORBIDDEN = \"Access Forbidden! Please try again later.\";\r\nexport const SESSION_TIMEOUT = \"Your session has timed out\";\r\n","const CREATE_INVOICE = \"CREATE/INVOICE\";\r\nconst CREATE_RECEIPT = \"CREATE/RECEIPT\";\r\nconst INITIATE_PAYMENT = \"INITIATE/PAYMENT\";\r\nconst CONFIRM_PAYMENT = \"CONFIRM/PAYMENT\";\r\nconst FIND_RECEIPT = \"FIND/RECEIPT\";\r\nconst GET_CONFORMATION = \"GET/CONFORMATION\";\r\nconst BOOK_SLOT = \"BOOK/SLOT\";\r\nconst BOOK_SLOT_FINAL = \"BOOK/SLOT/FINAL\";\r\nconst ADD_APPOINTMENT = \"ADD/APPOINTMENT\";\r\nconst ADD_PREVIOUS_APPOINTMENT = \"ADD/PREVIOUS/APPOINTMENT\";\r\nconst ADD_INVOICE = \"ADD/INVOICE\";\r\nconst ADD_RECEIPT = \"ADD/RECEIPT\";\r\n\r\nexport const CREATE_INVOICE_REQUEST = `${CREATE_INVOICE}/REQUEST`;\r\nexport const CREATE_INVOICE_SUCCESS = `${CREATE_INVOICE}/SUCCESS`;\r\nexport const CREATE_INVOICE_ERROR = `${CREATE_INVOICE}/ERROR`;\r\n\r\nexport const CREATE_RECEIPT_REQUEST = `${CREATE_RECEIPT}/REQUEST`;\r\nexport const CREATE_RECEIPT_SUCCESS = `${CREATE_RECEIPT}/SUCCESS`;\r\nexport const CREATE_RECEIPT_ERROR = `${CREATE_RECEIPT}/ERROR`;\r\n\r\nexport const INITIATE_PAYMENT_REQUEST = `${INITIATE_PAYMENT}/REQUEST`;\r\nexport const INITIATE_PAYMENT_SUCCESS = `${INITIATE_PAYMENT}/SUCCESS`;\r\nexport const INITIATE_PAYMENT_ERROR = `${INITIATE_PAYMENT}/ERROR`;\r\n\r\nexport const CONFIRM_PAYMENT_REQUEST = `${CONFIRM_PAYMENT}/REQUEST`;\r\nexport const CONFIRM_PAYMENT_SUCCESS = `${CONFIRM_PAYMENT}/SUCCESS`;\r\nexport const CONFIRM_PAYMENT_ERROR = `${CONFIRM_PAYMENT}/ERROR`;\r\n\r\nexport const FIND_RECEIPT_REQUEST = `${FIND_RECEIPT}/REQUEST`;\r\nexport const FIND_RECEIPT_SUCCESS = `${FIND_RECEIPT}/SUCCESS`;\r\nexport const FIND_RECEIPT_ERROR = `${FIND_RECEIPT}/ERROR`;\r\n\r\nexport const GET_CONFORMATION_REQUEST = `${GET_CONFORMATION}/REQUEST`;\r\nexport const GET_CONFORMATION_SUCCESS = `${GET_CONFORMATION}/SUCCESS`;\r\nexport const GET_CONFORMATION_ERROR = `${GET_CONFORMATION}/ERROR`;\r\n\r\nexport const BOOK_SLOT_REQUEST = `${BOOK_SLOT}/REQUEST`;\r\nexport const BOOK_SLOT_SUCCESS = `${BOOK_SLOT}/SUCCESS`;\r\nexport const BOOK_SLOT_ERROR = `${BOOK_SLOT}/ERROR`;\r\n\r\nexport const BOOK_SLOT_FINAL_REQUEST = `${BOOK_SLOT_FINAL}/REQUEST`;\r\nexport const BOOK_SLOT_FINAL_SUCCESS = `${BOOK_SLOT_FINAL}/SUCCESS`;\r\nexport const BOOK_SLOT_FINAL_ERROR = `${BOOK_SLOT_FINAL}/ERROR`;\r\n\r\nexport const ADD_APPOINTMENT_REQUEST = `${ADD_APPOINTMENT}/REQUEST`;\r\nexport const ADD_APPOINTMENT_SUCCESS = `${ADD_APPOINTMENT}/SUCCESS`;\r\nexport const ADD_APPOINTMENT_ERROR = `${ADD_APPOINTMENT}/ERROR`;\r\n\r\nexport const ADD_PREVIOUS_APPOINTMENT_REQUEST = `${ADD_PREVIOUS_APPOINTMENT}/REQUEST`;\r\nexport const ADD_PREVIOUS_APPOINTMENT_SUCCESS = `${ADD_PREVIOUS_APPOINTMENT}/SUCCESS`;\r\nexport const ADD_PREVIOUS_APPOINTMENT_ERROR = `${ADD_PREVIOUS_APPOINTMENT}/ERROR`;\r\n\r\nexport const ADD_INVOICE_REQUEST = `${ADD_INVOICE}/REQUEST`;\r\nexport const ADD_INVOICE_SUCCESS = `${ADD_INVOICE}/SUCCESS`;\r\nexport const ADD_INVOICE_ERROR = `${ADD_INVOICE}/ERROR`;\r\n\r\nexport const ADD_RECEIPT_REQUEST = `${ADD_RECEIPT}/REQUEST`;\r\nexport const ADD_RECEIPT_SUCCESS = `${ADD_RECEIPT}/SUCCESS`;\r\nexport const ADD_RECEIPT_ERROR = `${ADD_RECEIPT}/ERROR`;\r\n\r\nexport const SELECT_SAVED_CARD = \"SELECT/SAVED/CARD\"\r\n\r\nexport function createInvoiceRequest(payload) {\r\n return {\r\n type: CREATE_INVOICE_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function createInvoiceSuccess(data) {\r\n return {\r\n type: CREATE_INVOICE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function createInvoiceError(error) {\r\n return {\r\n type: CREATE_INVOICE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function createReceiptRequest(payload) {\r\n return {\r\n type: CREATE_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function createReceiptSuccess(data) {\r\n return {\r\n type: CREATE_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function createReceiptError(error) {\r\n return {\r\n type: CREATE_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function initiatePaymentRequest(payload) {\r\n return {\r\n type: INITIATE_PAYMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function initiatePaymentSuccess(data) {\r\n return {\r\n type: INITIATE_PAYMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function initiatePaymentError(error) {\r\n return {\r\n type: INITIATE_PAYMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function confirmPaymentRequest(payload) {\r\n return {\r\n type: CONFIRM_PAYMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function confirmPaymentSuccess(data) {\r\n return {\r\n type: CONFIRM_PAYMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function confirmPaymentError(error) {\r\n return {\r\n type: CONFIRM_PAYMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findReceiptRequest(payload) {\r\n return {\r\n type: FIND_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findReceiptSuccess(data) {\r\n return {\r\n type: FIND_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findReceiptError(error) {\r\n return {\r\n type: FIND_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function getConformationRequest(payload) {\r\n return {\r\n type: GET_CONFORMATION_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function getConformationSuccess(data) {\r\n return {\r\n type: GET_CONFORMATION_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function getConformationError(error) {\r\n return {\r\n type: GET_CONFORMATION_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotRequest(payload) {\r\n return {\r\n type: BOOK_SLOT_FINAL_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotSuccess(data) {\r\n return {\r\n type: BOOK_SLOT_FINAL_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotError(error) {\r\n return {\r\n type: BOOK_SLOT_FINAL_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function bookSlotRequest(payload) {\r\n return {\r\n type: BOOK_SLOT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function bookSlotSuccess(data) {\r\n return {\r\n type: BOOK_SLOT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function bookSlotError(error) {\r\n return {\r\n type: BOOK_SLOT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentRequest(payload) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentSuccess(data) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentError(error) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addAppointmentRequest(payload) {\r\n return {\r\n type: ADD_APPOINTMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addAppointmentSuccess(data) {\r\n return {\r\n type: ADD_APPOINTMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addAppointmentError(error) {\r\n return {\r\n type: ADD_APPOINTMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addInvoiceRequest(payload) {\r\n return {\r\n type: ADD_INVOICE_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addInvoiceSuccess(data) {\r\n return {\r\n type: ADD_INVOICE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addInvoiceError(error) {\r\n return {\r\n type: ADD_INVOICE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addReceiptRequest(payload) {\r\n return {\r\n type: ADD_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addReceiptSuccess(data) {\r\n return {\r\n type: ADD_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addReceiptError(error) {\r\n return {\r\n type: ADD_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function selectSavedCard(card = null) {\r\n return {\r\n type: SELECT_SAVED_CARD,\r\n card,\r\n };\r\n}","import { postRequest, deleteRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\nconst logoutUri = \"/sessions/\"\r\n\r\nfunction userLogin(payload, authKey=\"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport function findEmail(payload, authKey=\"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction createSession(payload, authKey = \"\"){\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction logout(payload, authKey = \"\"){\r\n return deleteRequest(logoutUri + payload, authKey, undefined, undefined, { logout: true });\r\n}\r\n\r\n\r\nexport default {\r\n userLogin,\r\n findEmail,\r\n createSession,\r\n logout\r\n};\r\n","\r\nexport const ADDRESS_FETCH_SERVER_RESPONSE_TYPE = \"data_formatted\";\r\nexport const CLINICS_REDIRECTION_URL = \"https://fleetstreet.digitusrain.co.uk/\";\r\nexport const BAD_REQUEST = 400;\r\nexport const UNAUTHORIZED_STATUS = 401;\r\nexport const COMPONENT_DELAY = 300;\r\nexport const COMPONENT_TIMEOUT = 4000;\r\n\r\nexport const DEFAULT_DATE_FORMAT = \"dd/MM/yyyy\";\r\n\r\nexport const LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY = \"user-details\";\r\nexport const REMEMBER_ME_LOCAL_STORAGE_KEY = \"remember-me\";\r\nexport const TOKEN_LOCAL_STORAGE_KEY = \"access-token\";\r\nexport const CLINIC_TOKEN_LOCAL_STORAGE_KEY = \"clinic-access-token\";\r\nexport const LOGGED_USER_SESSION_KEY = \"session-key\";\r\nexport const CLINIC_SESSION_KEY = \"clinic-session-key\";\r\nexport const CLINIC_BASE_URL_HEADER_KEY = \"clinic-base-url\";\r\nexport const CARD_APPROVED = \"Approved\";\r\n\r\nexport const DAY_LIST = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nexport const MONTH_LIST = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];","import { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nexport const Toast = props => {\r\n return toast[props.type](props.message, {\r\n position: toast.POSITION.TOP_RIGHT,\r\n closeButton: true,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n rtl: false\r\n });\r\n};\r\n","const FIND_APPOINTMENT_TYPES = \"FIND/APPOINTMENT/TYPES\";\r\nconst FIND_DIARY = \"FIND/DIARY\";\r\nconst FIND_DIARY_DAY = \"FIND/DIARY/DAY\";\r\nconst FIND_TIME_SLOTS = \"FIND/TIME/SLOTS\";\r\nconst FIND_PACKAGES = \"FIND/PACKAGES\";\r\nconst CHECK_TIMESLOTS = \"CHECK/TIMESLOTS\";\r\nconst FIND_CARDS = \"FIND/CARDS\";\r\n\r\nexport const FIND_APPOINTMENT_TYPES_REQUEST = `${FIND_APPOINTMENT_TYPES}/REQUEST`;\r\nexport const FIND_APPOINTMENT_TYPES_SUCCESS = `${FIND_APPOINTMENT_TYPES}/SUCCESS`;\r\nexport const FIND_APPOINTMENT_TYPES_ERROR = `${FIND_APPOINTMENT_TYPES}/ERROR`;\r\n\r\nexport const FIND_DIARY_REQUEST = `${FIND_DIARY}/REQUEST`;\r\nexport const FIND_DIARY_SUCCESS = `${FIND_DIARY}/SUCCESS`;\r\nexport const FIND_DIARY_ERROR = `${FIND_DIARY}/ERROR`;\r\n\r\nexport const FIND_DIARY_DAY_REQUEST = `${FIND_DIARY_DAY}/REQUEST`;\r\nexport const FIND_DIARY_DAY_SUCCESS = `${FIND_DIARY_DAY}/SUCCESS`;\r\nexport const FIND_DIARY_DAY_ERROR = `${FIND_DIARY_DAY}/ERROR`;\r\n\r\nexport const FIND_TIME_SLOTS_REQUEST = `${FIND_TIME_SLOTS}/REQUEST`;\r\nexport const FIND_TIME_SLOTS_SUCCESS = `${FIND_TIME_SLOTS}/SUCCESS`;\r\nexport const FIND_TIME_SLOTS_ERROR = `${FIND_TIME_SLOTS}/ERROR`;\r\n\r\nexport const FIND_PACKAGES_REQUEST = `${FIND_PACKAGES}/REQUEST`;\r\nexport const FIND_PACKAGES_SUCCESS = `${FIND_PACKAGES}/SUCCESS`;\r\nexport const FIND_PACKAGES_ERROR = `${FIND_PACKAGES}/ERROR`;\r\n\r\nexport const CHECK_TIMESLOTS_REQUEST = `${CHECK_TIMESLOTS}/REQUEST`;\r\nexport const CHECK_TIMESLOTS_SUCCESS = `${CHECK_TIMESLOTS}/SUCCESS`;\r\nexport const CHECK_TIMESLOTS_ERROR = `${CHECK_TIMESLOTS}/ERROR`;\r\n\r\nexport const FIND_CARDS_REQUEST = `${FIND_CARDS}/REQUEST`;\r\nexport const FIND_CARDS_SUCCESS = `${FIND_CARDS}/SUCCESS`;\r\nexport const FIND_CARDS_ERROR = `${FIND_CARDS}/ERROR`;\r\n\r\nexport function findAppointmentTypesRequest(payload) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findAppointmentTypesSuccess(data) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findAppointmentTypesError(error) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findDiaryRequest(payload) {\r\n return {\r\n type: FIND_DIARY_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findDiarySuccess(data) {\r\n return {\r\n type: FIND_DIARY_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findDiaryError(error) {\r\n return {\r\n type: FIND_DIARY_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findDiaryDayRequest(payload) {\r\n return {\r\n type: FIND_DIARY_DAY_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findDiaryDaySuccess(data) {\r\n return {\r\n type: FIND_DIARY_DAY_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findDiaryDayError(error) {\r\n return {\r\n type: FIND_DIARY_DAY_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsRequest(payload) {\r\n return {\r\n type: FIND_TIME_SLOTS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsSuccess(data) {\r\n return {\r\n type: FIND_TIME_SLOTS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsError(error) {\r\n return {\r\n type: FIND_TIME_SLOTS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findPackagesRequest(payload) {\r\n return {\r\n type: FIND_PACKAGES_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findPackagesSuccess(data) {\r\n return {\r\n type: FIND_PACKAGES_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findPackagesError(error) {\r\n return {\r\n type: FIND_PACKAGES_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsRequest(payload) {\r\n return {\r\n type: CHECK_TIMESLOTS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsSuccess(data) {\r\n return {\r\n type: CHECK_TIMESLOTS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsError(error) {\r\n return {\r\n type: CHECK_TIMESLOTS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findCardsRequest(payload) {\r\n return {\r\n type: FIND_CARDS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findCardsSuccess(data) {\r\n return {\r\n type: FIND_CARDS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findCardsError(error) {\r\n return {\r\n type: FIND_CARDS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/logo.c42c1717.png\";","module.exports = __webpack_public_path__ + \"static/media/orange-blue.48aaeda4.png\";"],"sourceRoot":""}