irest-app-test 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/static/actions/actionTypes.js","webpack:///./src/static/actions/login/authenticationActions.js","webpack:///./src/static/actions/updateAuthType/updateAuthType.js","webpack:///./src/static/history/createBrowserHistory.js","webpack:///./src/static/actions/previewMock/previewMockAction.js","webpack:///./src/static/actions/mockStatus/mockStatusActions.js","webpack:///./src/static/actions/fetchToken/fetchToken.js","webpack:///./src/static/actions/deleteMock/deleteMockAction.js","webpack:///./src/static/assets/images/iRest_files/clipboard.svg","webpack:///./src/static/actions/register/authenticationActions.js","webpack:///./src/static/components/common/Toast.js","webpack:///./src/static/actions/fileUpload/fileUploadAction.js","webpack:///./src/static/actions/sessionUpdate/sessionUpdateAction.js","webpack:///./src/static/assets/images/iRest_files/red_trash.png","webpack:///./src/static/service/mockList/mockListService.js","webpack:///./src/static/assets/images/iRest_files/irest_logo.png","webpack:///./src/static/assets/images/iRest_files/preview_close_button.svg","webpack:///./src/static/assets/images/iRest_files/black_trash.png","webpack:///./src/static/assets/images/iRest_files/edit_icon.png","webpack:///./src/static/assets/images/iRest_files/key_icon.png","webpack:///./src/static/assets/images/iRest_files/blue_delete_trash.svg","webpack:///./src/static/service/axiosInstance/axiosInstance.js","webpack:///./src/static/constants/url.js","webpack:///./src/static/actions/createMock/createMockAction.js","webpack:///./src/static/assets/images/iRest_files/irest_logo_icon.png","webpack:///./src/static/assets/images/iRest_files/nav_bar_ham.svg","webpack:///./src/static/assets/images/iRest_files/close_button.svg","webpack:///./src/static/assets/images/iRest_files/arrowUp.png","webpack:///./src/static/assets/images/iRest_files/arrowDown.png","webpack:///./src/static/assets/images/iRest_files/refresh.png","webpack:///./src/static/assets/images/iRest_files/plus_circle.svg","webpack:///./src/static/assets/images/iRest_files/try_eye.svg","webpack:///./src/static/assets/images/iRest_files/download.svg","webpack:///./src/static/assets/images/iRest_files/button_circle.svg","webpack:///./src/static/assets/images/iRest_files/toggle_plus.svg","webpack:///./src/static/assets/images/iRest_files/toggle_minus.svg","webpack:///./src/static/assets/images/iRest_files/grey_delete_trash.svg","webpack:///./src/static/reducers/initialState.js","webpack:///./src/static/reducers/index.js","webpack:///./src/static/reducers/login/loginReducer.js","webpack:///./src/static/reducers/createMock/createMockReducer.js","webpack:///./src/static/reducers/mockList/mockListReducer.js","webpack:///./src/static/reducers/projectList/projectListReducer.js","webpack:///./src/static/reducers/createProject/createProjectReducer.js","webpack:///./src/static/reducers/fileUpload/fileUploadReducer.js","webpack:///./src/static/reducers/updateSession/updateSessionReducer.js","webpack:///./src/static/reducers/saveReferenceReducer/saveReferenceReducer.js","webpack:///./src/static/reducers/mockStatus/mockStatusReducer.js","webpack:///./src/static/reducers/deleteMock/deleteMockReducer.js","webpack:///./src/static/reducers/previewMock/previewMockReducer.js","webpack:///./src/static/reducers/fetchToken/fetchToken.js","webpack:///./src/static/reducers/updateToken/updateToken.js","webpack:///./src/static/reducers/updateAuthReducer/updateAuthReducer.js","webpack:///./src/static/service/login/authenticationService.js","webpack:///./src/static/sagas/authenticationSaga.js","webpack:///./src/static/service/createMock/createMockService.js","webpack:///./src/static/sagas/createMockSaga.js","webpack:///./src/static/sagas/mockListSaga.js","webpack:///./src/static/service/projectList/projectListService.js","webpack:///./src/static/sagas/projectListSaga.js","webpack:///./src/static/service/createProject/createProjectService.js","webpack:///./src/static/sagas/createProjectSaga.js","webpack:///./src/static/sagas/editMockSaga.js","webpack:///./src/static/service/fileUpload/fileUploadService.js","webpack:///./src/static/sagas/fileUploadSaga.js","webpack:///./src/static/service/register/authenticationService.js","webpack:///./src/static/sagas/registerSaga.js","webpack:///./src/static/service/updateSession/updateSessionService.js","webpack:///./src/static/sagas/updateSessionSaga.js","webpack:///./src/static/actions/saveReference/saveReferenceAction.js","webpack:///./src/static/sagas/saveReferenceSaga.js","webpack:///./src/static/service/mockStatus/mockStatusService.js","webpack:///./src/static/sagas/mockStatusSaga.js","webpack:///./src/static/service/deleteMock/deleteMockService.js","webpack:///./src/static/sagas/deleteMockSaga.js","webpack:///./src/static/service/previewMock/previewMockService.js","webpack:///./src/static/sagas/createPreviewMockSaga.js","webpack:///./src/static/service/fetchToken/fetchToken.js","webpack:///./src/static/sagas/fetchTokenSaga.js","webpack:///./src/static/service/updateToken/updateToken.js","webpack:///./src/static/sagas/updateToken.js","webpack:///./src/static/service/updateAuthType/updateAuthType.js","webpack:///./src/static/sagas/updateAuthTypeSaga.js","webpack:///./src/static/sagas/watchers.js","webpack:///./src/static/sagas/index.js","webpack:///./src/static/store/configureStore.js","webpack:///./src/static/components/common/SessionTimeout.js","webpack:///./src/static/components/common/SessionTimeoutPopup.js","webpack:///./src/static/containers/privateRoute.js","webpack:///./src/static/components/login/loginPage.js","webpack:///./src/static/components/common/Tooltip.js","webpack:///./src/static/components/common/nav.js","webpack:///./src/static/components/common/Loader.js","webpack:///./src/static/components/common/copyUrl.js","webpack:///./src/static/components/mockList/TableSorting.js","webpack:///./src/static/components/common/RapiDoc.js","webpack:///./src/static/components/modal/MocklistWrapper.js","webpack:///./src/static/components/modal/ModalShow.js","webpack:///./src/static/components/modal/ModalPopup.js","webpack:///./src/static/components/modal/deleteTokenModal/deleteTokenModal.js","webpack:///./src/server/constants/schemaDefaults.js","webpack:///./src/server/helpers/generateUuidToken.js","webpack:///./src/static/components/modal/updateAuthTypeModal/updateAuthTypeModal.js","webpack:///./src/static/service/editMock/editMockService.js","webpack:///./src/static/components/mockList/index.js","webpack:///./src/static/constants/helperText.js","webpack:///./src/static/components/createMock/PreviewWrapper.js","webpack:///./src/static/components/createMock/Preview.js","webpack:///./src/static/components/createMock/JsonEditor.js","webpack:///./src/static/components/createMock/JsonditorKey.js","webpack:///./src/server/constants/fakerModel.js","webpack:///./src/server/helpers/util.js","webpack:///./src/static/components/common/CustomToggle.js","webpack:///./src/static/components/common/utils.js","webpack:///./src/static/constants/createMockConstants.js","webpack:///./src/static/components/createMock/SchemaView.js","webpack:///./src/static/components/common/TreeStructure.js","webpack:///./src/static/components/createMock/JsonView.js","webpack:///./src/static/components/common/Dropdown.js","webpack:///./src/static/components/createMock/CreateMockPage.js","webpack:///./src/static/actions/createProject/createProjectAction.js","webpack:///./src/static/components/createMock/CreateMockForm.js","webpack:///./src/static/components/register/registerPage.js","webpack:///./src/static/components/modal/EditModal.js","webpack:///./src/static/service/projectDelete/projectDeleteService.js","webpack:///./src/static/service/projectEdit/projectEditService.js","webpack:///./src/static/components/projectList/projectTable.js","webpack:///./src/static/components/projectList/index.js","webpack:///./src/static/routes/router.js","webpack:///./src/static/App.js","webpack:///./src/static/index.js","webpack:///./src/static/actions/projectList/projectListAction.js","webpack:///./src/static/actions/mockList/mockListActions.js","webpack:///./src/static/actions/updateToken/updateToken.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","LOGIN_USER","LOGIN_USER_SUCCESS","LOGIN_USER_ERROR","LOGIN_USER_CLEAR","REGISTER_USER","REGISTER_USER_SUCCESS","REGISTER_USER_ERROR","CREATE_MOCK","CREATE_MOCK_SUCCESS","CREATE_MOCK_ERROR","CREATE_MOCK_CLEAR","MOCK_LIST","MOCK_LIST_PENDING","MOCK_LIST_SUCCESS","MOCK_LIST_ERROR","PROJECT_LIST","PROJECT_LIST_PENDING","PROJECT_LIST_SUCCESS","PROJECT_LIST_ERROR","CREATE_PROJECT","CREATE_PROJECT_SUCCESS","CREATE_PROJECT_ERROR","FETCH_LIST_BY_ID","FETCH_LIST_BY_ID_SUCCESS","FETCH_LIST_BY_ID_ERROR","FILE_UPLOAD","FILE_UPLOAD_SUCCESS","FILE_UPLOAD_ERROR","FILE_UPLOAD_CLEAR","SESSION_UPDATE","SESSION_UPDATE_SUCCESS","SESSION_UPDATE_ERROR","SAVE_REFERENCE_ID","SAVE_REFERENCE_ID_ERROR","MOCK_STATUS","MOCK_STATUS_SUCCESS","MOCK_STATUS_ERROR","MOCK_STATUS_CLEAR","DELETE_MOCK","DELETE_MOCK_PENDING","DELETE_MOCK_SUCCESS","DELETE_MOCK_ERROR","PREVIEW_MOCK","PREVIEW_MOCK_PENDING","PREVIEW_MOCK_SUCCESS","PREVIEW_MOCK_ERROR","PREVIEW_MOCK_CLEAR","PROJECT_EDIT","PROJECT_EDIT_SUCCESS","PROJECT_EDIT_ERROR","PROJECT_DELETE","PROJECT_DELETE_SUCCESS","PROJECT_DELETE_ERROR","FETCH_TOKEN","FETCH_TOKEN_SUCCESS","FETCH_TOKEN_ERROR","UPDATE_TOKEN","UPDATE_TOKEN_PENDING","UPDATE_TOKEN_SUCCESS","UPDATE_TOKEN_ERROR","UPDATE_AUTH_TYPE","UPDATE_AUTH_TYPE_PENDING","UPDATE_AUTH_TYPE_SUCCESS","UPDATE_AUTH_TYPE_ERROR","RESET_STORE","loginUserAction","user","type","receiveDataAction","receiveError","flushUserData","updateAuthTypeAction","isMockAuth","isUpdateAuthPending","isPending","history","createBrowserHistory","createPreviewMockAction","flushPreviewMockData","isPreviewMockPending","mockStatusAction","flushMockStatus","fetchTokenAction","isMockToken","fetchTokenSuccessAction","fetchTokenFailureAction","deleteMockAction","isDeleteMockPending","registerUserAction","toast","configure","notifyError","errorMessage","error","notifySuccess","successMessage","success","flushUploadedData","sessionUpdateAction","sessionDataAction","sessionError","mockListService","API_ENDPOINT","process","client","method","url","then","response","err","axios","interceptors","request","use","req","token","localStorage","getItem","headers","status","clear","location","href","Promise","reject","HomePageUrl","DashboardUrl","createMockUrl","EditMockUrl","RegisterPageUrl","FirstPageUrl","ProjectListPageUrl","SidebarData","title","path","cName","createMockAction","flushMockData","fetchListById","fetchListByIdSuccess","fetchListByIdError","mockListInitialState","projectListInitialState","createProjectInitialState","createMockInitialState","fileUploadInitialState","updateSessionInitialState","mockStatusInitialState","createPreviewMockInitialState","rootReducer","combineReducers","login","state","action","createMock","mockList","projectList","createProject","fileUpload","updateSession","saveReference","mockStatus","deleteMock","createPreviewMock","fetchToken","updateToken","updateAuthType","loginUserService","LOGIN_API_ENDPOINT","setItem","loginSaga","payload","put","createMockService","API_BASE_URL","URLParam","mockId","fetchListByIdService","createMockSaga","isPreview","isMockListPending","projectListService","params","projectListSaga","isProjectListPending","resp","createProjectService","editMockSaga","uploadFileService","fileUploadSaga","fileUploadService","registerUserService","REGISTER_API_ENDPOINT","registerSaga","setTimeout","message","updateSessionService","updateSessionSaga","saveReferenceId","mockStatusService","id","mockStatusSaga","StatuService","deleteMockService","deleteMockSaga","createPreviewService","mockObj","_id","bulkSize","bulkDataSize","respObj","mockResponse","createPreviewMockSaga","fetchTokenService","fetchTokenSaga","updateTokenService","updateTokenSaga","isUpdateTokenPending","updateTokenActionSuccess","updateTokenActionError","resetStore","updateAuthTypeService","updateAuthTypeSaga","watchUserAuthentication","takeLatest","mockListSaga","ceateProjectSaga","saveReferenceSaga","startForman","fork","configureStore","sagaMiddleware","createSagaMiddleware","createStore","applyMiddleware","ReduxThunk","runSaga","run","rootSaga","countDownInterval","timeout","SessionTimeoutPopup","countdown","onLogout","onContinue","text","className","onClick","connect","dispatch","bindActionCreators","props","useState","timeoutModalOpen","setModalOpen","timeoutCountDown","setCountDown","idleTimer","useRef","clearSessionTimeout","clearTimeout","clearSessionInterval","clearInterval","handleLogout","a","removeItem","useEffect","ref","onActive","onIdle","isAuthenticated","countDown","setInterval","debounce","hide","PrivateRoute","Component","component","rest","isEmpty","render","to","userState","counter","useSelector","initialValue","email","password","setUser","loginClick","setLoginClick","inputChangeHandler","event","target","src","img","alt","onSubmit","preventDefault","htmlFor","data-testid","required","onChange","document","getElementById","style","display","Tooltip","active","setActive","onMouseEnter","delay","onMouseLeave","children","direction","content","Nav","sidebar","box","current","contains","showSidebar","setState","prevState","e","handleClearUser","newName","split","map","join","React","createRef","addEventListener","this","handleOutsideClick","pageTitle","link","hamburgerMenu","logo","displayShortName","handleLogoutUser","closeButton","item","index","isActive","Loader","isOverlay","Spinner","animation","variant","CopyUrl","show","getText","str","num","subStr","substring","textBody","option-text","serviceResponseType","rel","getTruncateUrl","OverlayTrigger","placement","overlay","renderTooltip","clipboard","TableSorting","tableHeader","onSorting","sortingField","setSortingField","sortingOrder","setSortingOrder","onSortingChange","field","order","sortable","cursor","arrowUp","arrowDown","RapiDoc","renderStyle","showHeader","showInfo","allowAuthentication","allowAdvancedSearch","allowSpecFileLoad","allowSearch","usePathInNavBar","keyName","keyValue","keyLocation","height","width","theme","header-color","primary-color","render-style","show-header","show-info","allow-authentication","allow-advanced-search","allow-spec-file-load","allow-search","use-path-in-nav-bar","show-method-in-nav-bar","api-key-name","api-key-value","api-key-location","post","patch","delete","mockListResponse","useDispatch","forEach","statusCode","staticFields","apitype","endpoint","pop","tags","projectName","description","operationId","consumes","produces","responses","host","dataurl","methods","allowedMethods","apiMethod","toLowerCase","summary","parameters","strSpec","swagger","info","version","termsOfService","contact","license","basePath","externalDocs","paths","securityDefinitions","api_key","in","iRest_auth","authorizationUrl","flow","scopes","definitions","Category","properties","format","xml","iRest","category","$ref","example","wrapped","items","Tag","loadSpec","spec","mockListAction","ModalShow","urlShowTo","hash","isOpen","ariaHideApp","closeRequest","preview_close","ModalPopup","top","left","right","bottom","marginRight","transform","closeDeleteModal","DeleteTokenModal","zIndex","closeDeleteTokenModal","details","setDeleteTokenMsg","closeTokenModal","closeAuthModal","MOCK_TOKEN_AUTEHNTICATION_TYPE","v4","uuidv4","UpdateAuthModal","mockdata","authenticationType","authType","setAuthtype","tokenData","tokenval","setTokenVal","isAuthMockSpecific","tokenLabel","isMock","aria-label","generateToken","refreshImage","disabled","openTokenDeleteModal","deleteIcon","updateMockAuthType","projData","editMockService","MockList","Data","mockArray","header","body","raw","variables","_postman_id","schema","protocolProfileBehavior","infos","mockDetails","promises","all","mockValue","findIndex","mock","detailedMock","transformedData","transformData","jsonString","encodeURIComponent","JSON","stringify","createElement","download","click","activePage","limit","offset","totalMock","mockListData","search","onChangeSearch","allProjectName","allProjectName1","sorting","urlShow","deleteModalShow","deleteId","showAuthModal","showTokenModal","showTokenDelModal","tokenMockId","tokenDeleteMsg","openModal","closeModal","urlHit","openDeleteModal","handleAuthTypeModal","openTokenModal","updateMockToken","parsed","queryString","parse","sortBy","projectListAction","prevProps","updateMockAuthTypeRes","replace","pathname","mockData","open","currentStatus","finalCall","closeReq","isDelete","deleteMockPopup","updateTokenAction","searchProject","isDeletePending","handleClickSearch","placeholder","aria-describedby","handleClickReset","handleDownloadButton","downloadIcon","mockName","toString","startCase","mockStatusChange","checked","editIcon","previewEye","keyIcon","itemsCountPerPage","totalItemsCount","nextPageText","prevPageText","itemClass","linkClass","addIcon","projectListResponse","mockStatusResponse","mocks","obj","mockClone","totalMocks","PreviewWrapper","dataRef","setResult","mockUrl","newApi","marginLeft","marginTop","Preview","setData","isLoading","setIsLoading","Modal","modalOpen","onHide","data-testId","Body","values","JsonEditor","that","options","onValidationError","errors","setJsonEditorError","json","jsoneditor","JSONEditor","container","set","setText","update","updateText","setMode","destroy","minHeight","paddingBottom","elem","JsonEditorKey","onEditable","onClassName","isEqual","onCreateMenu","node","dynamicKeys","setDynamicKeys","IsJsonString","expandAll","refresh","isSpecialCharacter","input","test","CustomToggle","eventKey","callback","currentEventKey","useContext","AccordionContext","decoratedOnClick","useAccordionToggle","toggleMinus","togglePlus","schemaDataTransform","schemaData","formattedSchemaData","element","fakerValue","fieldTypes","fakerObj","username","knownIps","profile","firstName","lastName","staticData","freeze","SAVE","EXISTING","DEFAULT","SchemaView","touched","Dropdown","GroupedDropdown","fieldArrayPorps","schemaResponse","form","getIn","touch","row","remove","pointerEvents","xmlns","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","treeData","parent","fdata","actual","k","b","f","displayValue","manipulateData","margin","root","tree","diagonal","svg","TreeStructure","d3","size","projection","y","x","myRef","append","attr","x0","y0","collapse","source","nodes","reverse","links","depth","selectAll","nodeEnter","enter","on","_children","navigator","writeText","nodeUpdate","transition","duration","select","nodeExit","exit","insert","drawTree","JsonView","isResponseBodyVisible","uploadFileForJSON","handleChange","modes","onChangeText","onModeChange","responseBodyRef","saveButtonClicked","previewButtonClicked","jsonEditorError","sampleFakerObj","Accordion","defaultActiveKey","Card","Collapse","accept","currentTarget","files","indentation","label","defaultChecked","option","selected","keys","fakerKey","json1","successList","createMockTemp","fileUploadStatus","handleRemove","removeFields","fields","setFields","handleRemoveParmas","removeParams","setParams","handleBlur","handleSubmit","setValues","setFieldValue","setFieldTouched","isSchema","initialSchemaState","setInitialSchemaState","isDynamicOptionDisplayed","isAdvaceOptions","isExisting","updateState","allProjectOptions","setAllProjectsOption","projectNameState","setProjectName","projectLabel","setProjectLabel","methodOptions","setMethodOptions","setIsResponseBodyVisible","isFullFormDisplay","setIsFullFormDisplay","breadcrumb","setBreadcrumb","pagetitle","setPagetitle","typeaheadInput","setTypeaheadInputValue","endPointRef","setJson","jsonEditorErrorSpecific","setJsonEditorErrorSpecific","modeSpecificKey","setModeSpecificKey","jsontext","othertext","textType","textSpecificKey","setTextSpecificKey","newProject","setNewProject","setSaveButtonClicked","preSelectedMethod","setPreselectedVal","setPreviewButtonClicked","defaultResponse","setDefaultResponse","defaultOptions","setDefaultOptions","useHistory","projectNameRef","mockNameRef","delayResponseRef","dynamicResponseKeyRef","dynamicResponseKeyValueRef","inputEl","val","entries","includes","schemaViewDataTransform","serviceResponseBody","headerData","paramData","mock_Status","isInitialSchema","serviceResponseData","serviceResponse","methodsArr","ele","endpointRequestPath","getElementsByClassName","setAttribute","arr","dynamicResponseSpecific","isDynamicImportCount","isBulkDataCount","tempData","handleChangeCountSize","handleChangeBulkCountSize","RadioButtonStatus","onBlur","checkBoxValue","createNewProject","filter","createProjectAction","handleSpecificResponseChange","RandomSpecificToggle","randomSpecific","onChangeRandomSpecific","defaultSaveExisting","projectId","existing","readFileAsText","fileInput","resolve","reader","FileReader","readAsText","renderedResult","jsonConvertedData","lines","replaceAll","currentLine","csvtojson","jsonParsedData","dynamicResponseSpecificKeyValue","txt","bodyVar","breadcrumbs","editpath","createpath","titlepage","origin","data-test-id","aria-current","emptyLabel","onInputChange","searchQuery","typeaheadKeyPressedHandler","results","showCheckbox","selectedValues","disablePreSelectedValues","closeIcon","onSelect","selMethods","getSelectedItems","onRemove","multiselectContainer","background","activeKey","min","max","bulkDataCount","isBulkDataSize","isDelay","delaySeconds","isDynamicResponse","dynamicResponseKey","mode1","isNaN","defaultValue","dynamicImportCount","isDynamicImportSize","dynamicImportSize","headerFields","buttonCircle","idx","deleteTrash","contentType","schemaData1","focus","newData","match","mockListError","setMockListError","initialValues","serviceResponseBodyType","referenceId","contentEncoding","dynamicResponseRandom","validationSchema","Yup","shape","matches","when","is","otherwise","of","nullKeys","newHeaders","updatedData","specificResponseType","setError","validator","setProjectNameProp","projectDeleteService","projectEditService","ProjectTable","count","User","updatedAt","Date","createdAt","toLocaleDateString","toLocaleTimeString","handleAuth","openEditModal","setEditId","handleEdit","setDeleteId","handleDelete","displayDeleteIcon","projId","handleProjTokenUpdate","setProjData","updateProjectToken","projectAuth","projectListDeleteAction","searchText","setSearchText","editModalShow","setEditModalShow","setDeleteModalShow","editId","setProjectList","setProjId","authValue","setAuthVal","setTokenDelModal","tokenDelMsg","setTokenDelMsg","list","project","handleTokenModal","projects","closeEditModal","isEdit","EditModal","isDisable","disableDeleteIcon","Routers","exact","LoginPage","registerPage","MockDashboard","CreateMock","ProjectListPage","App","store","ReactDOM","hot"],"mappings":"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d,CACF,IAAO,cACP,MAAS,cACT,aAAgB,wBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,sBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,qBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,sBACd,CACF,IAAO,sBACP,MAAS,sBACT,aAAgB,gCACd,CACF,IAAO,mBACP,MAAS,mBACT,aAAgB,6BACd,CACF,IAAO,mBACP,MAAS,mBACT,aAAgB,6BACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,kBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,sBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,0BACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,uBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,qBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,4BAEjB,OAAU,CAAC,CACV,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,eACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,eACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,sBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,eACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,iBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,kBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,iBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBAEjB,MAAS,CAAC,CACT,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,uBACP,MAAS,uBACT,aAAgB,+BACd,CACF,IAAO,uBACP,MAAS,uBACT,aAAgB,+BACd,CACF,IAAO,oBACP,MAAS,oBACT,aAAgB,4BACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,cACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,gBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,cACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,cACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,cACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,cACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,iBAEjB,SAAY,CAAC,CACZ,IAAO,aACP,MAAS,aACT,aAAgB,wBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,qBACd,CACF,IAAO,mBACP,MAAS,mBACT,aAAgB,8BACd,CACF,IAAO,qBACP,MAAS,qBACT,aAAgB,gCACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,6BACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,0BAEjB,QAAW,CAAC,CACX,IAAO,KACP,MAAS,KACT,aAAgB,eACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,wBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,wBACd,CACF,IAAO,uBACP,MAAS,uBACT,aAAgB,iCACd,CACF,IAAO,wBACP,MAAS,wBACT,aAAgB,kCACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,4BACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,0BACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,sBAEjB,SAAY,CAAC,CACZ,IAAO,YACP,MAAS,YACT,aAAgB,uBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,6BACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,mBAEjB,SAAY,CAAC,CACZ,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,qBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,sBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,yBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,kBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,mBAEjB,KAAQ,CAAC,CACR,IAAO,UACP,MAAS,UACT,aAAgB,iBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,kBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,mBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,gBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,eACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,cACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,gBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,cACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,kBAEjB,QAAW,CAAC,CACX,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,wBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,gBACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,2BACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,0BACd,CACF,IAAO,mBACP,MAAS,mBACT,aAAgB,6BACd,CACF,IAAO,mBACP,MAAS,mBACT,aAAgB,6BACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,yBACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,2BACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,4BACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,4BACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,gBACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,0BACd,CACF,IAAO,yBACP,MAAS,yBACT,aAAgB,mCACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,6BAEjB,IAAO,CAAC,CACP,IAAO,SACP,MAAS,SACT,aAAgB,eACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,oBACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,sBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,kBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,kBAEjB,OAAU,CAAC,CACV,IAAO,eACP,MAAS,eACT,aAAgB,wBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,qBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,mBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBAEjB,QAAW,CAAC,CACX,IAAO,eACP,MAAS,eACT,aAAgB,yBACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,0BACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,kBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,qBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,sBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,wBACd,CACF,IAAO,yBACP,MAAS,yBACT,aAAgB,mCACd,CACF,IAAO,2BACP,MAAS,2BACT,aAAgB,qCACd,CACF,IAAO,0BACP,MAAS,0BACT,aAAgB,oCACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,2BACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,yBAEjB,MAAS,CAAC,CACT,IAAO,WACP,MAAS,WACT,aAAgB,mBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,kBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,iBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,mBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,kBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,gBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,mBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,iBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,iBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,iBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,mBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,qBAEjB,SAAY,CAAC,CACZ,IAAO,SACP,MAAS,SACT,aAAgB,oBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,wBACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,0BACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,wBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,mBACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,0BACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,uBACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,4BACd,CACF,IAAO,KACP,MAAS,KACT,aAAgB,gBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,kBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,sBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,kBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,sBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,iBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,uBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,uBAEjB,MAAS,CAAC,CACT,IAAO,QACP,MAAS,QACT,aAAgB,gBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,oBACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,qBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,mBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,oBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,iBAEjB,MAAS,CAAC,CACT,IAAO,QACP,MAAS,QACT,aAAgB,gBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBAEjB,KAAQ,CAAC,CACR,IAAO,WACP,MAAS,WACT,aAAgB,kBACd,CACF,IAAO,YACP,MAAS,YACT,aAAgB,mBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,gBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,iBACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,uBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,kBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,iBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,kBACd,CACF,IAAO,aACP,MAAS,aACT,aAAgB,oBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,gBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,iBAEjB,MAAS,CAAC,CACT,IAAO,OACP,MAAS,OACT,aAAgB,eACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,kBAEjB,OAAU,CAAC,CACV,IAAO,QACP,MAAS,QACT,aAAgB,iBACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,wBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,kBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,mBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,kBAEjB,QAAW,CAAC,CACX,IAAO,kBACP,MAAS,kBACT,aAAgB,4BACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,kBAEjB,OAAU,CAAC,CACV,IAAO,gBACP,MAAS,gBACT,aAAgB,yBACd,CACF,IAAO,iBACP,MAAS,iBACT,aAAgB,0BACd,CACF,IAAO,gBACP,MAAS,gBACT,aAAgB,yBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,mBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBACd,CACF,IAAO,WACP,MAAS,WACT,aAAgB,oBACd,CACF,IAAO,kBACP,MAAS,kBACT,aAAgB,2BACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,mBAEjB,QAAW,CAAC,CACX,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,yBACd,CACF,IAAO,QACP,MAAS,QACT,aAAgB,kBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,iBACd,CACF,IAAO,UACP,MAAS,UACT,aAAgB,oBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,gBACd,CACF,IAAO,MACP,MAAS,MACT,aAAgB,iBAEjB,KAAQ,CAAC,CACR,IAAO,YACP,MAAS,YACT,aAAgB,oBACd,CACF,IAAO,SACP,MAAS,SACT,aAAgB,gBACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,qBACd,CACF,IAAO,eACP,MAAS,eACT,aAAgB,sBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,cACd,CACF,IAAO,cACP,MAAS,cACT,aAAgB,qBACd,CACF,IAAO,OACP,MAAS,OACT,aAAgB,gBC/4BX,MAAM8X,GAAqBC,IACjB,sCACJC,KAAKD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","file":"main.082e0a4d48f53b87d5e4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([517,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export const LOGIN_USER = 'LOGIN_USER'\r\nexport const LOGIN_USER_SUCCESS = 'LOGIN_USER_SUCCESS'\r\nexport const LOGIN_USER_ERROR = 'LOGIN_USER_ERROR'\r\nexport const LOGIN_USER_CLEAR = 'LOGIN_USER_CLEAR'\r\n\r\nexport const REGISTER_USER = 'REGISTER_USER'\r\nexport const REGISTER_USER_SUCCESS = 'REGISTER_USER_SUCCESS'\r\nexport const REGISTER_USER_ERROR = 'REGISTER_USER_ERROR'\r\n\r\nexport const CREATE_MOCK = 'CREATE_MOCK'\r\nexport const CREATE_MOCK_SUCCESS = 'CREATE_MOCK_SUCCESS'\r\nexport const CREATE_MOCK_ERROR = 'CREATE_MOCK_ERROR'\r\nexport const CREATE_MOCK_CLEAR = 'CREATE_MOCK_CLEAR'\r\n\r\nexport const MOCK_LIST = 'MOCK_LIST'\r\nexport const MOCK_LIST_PENDING = 'MOCK_LIST_PENDING'\r\nexport const MOCK_LIST_SUCCESS = 'MOCK_LIST_SUCCESS'\r\nexport const MOCK_LIST_ERROR = 'MOCK_LIST_ERROR'\r\n\r\nexport const PROJECT_LIST = 'PROJECT_LIST'\r\nexport const PROJECT_LIST_PENDING = 'PROJECT_LIST_PENDING'\r\nexport const PROJECT_LIST_SUCCESS = 'PROJECT_LIST_SUCCESS'\r\nexport const PROJECT_LIST_ERROR = 'PROJECT_LIST_ERROR'\r\n\r\nexport const CREATE_PROJECT = 'CREATE_PROJECT'\r\nexport const CREATE_PROJECT_SUCCESS = 'CREATE_PROJECT_SUCCESS'\r\nexport const CREATE_PROJECT_ERROR = 'CREATE_PROJECT_ERROR'\r\n\r\nexport const FETCH_LIST_BY_ID = 'FETCH_LIST_BY_ID'\r\nexport const FETCH_LIST_BY_ID_SUCCESS = 'FETCH_LIST_BY_ID_SUCCESS'\r\nexport const FETCH_LIST_BY_ID_ERROR = 'FETCH_LIST_BY_ID_ERROR'\r\n\r\nexport const FILE_UPLOAD = 'FILE_UPLOAD'\r\nexport const FILE_UPLOAD_SUCCESS = 'FILE_UPLOAD_SUCCESS'\r\nexport const FILE_UPLOAD_ERROR = 'FILE_UPLOAD_ERROR'\r\nexport const FILE_UPLOAD_CLEAR = 'FILE_UPLOAD_CLEAR'\r\n\r\nexport const SESSION_UPDATE = 'SESSION_UPDATE'\r\nexport const SESSION_UPDATE_SUCCESS = 'SESSION_UPDATE_SUCCESS'\r\nexport const SESSION_UPDATE_ERROR = 'SESSION_UPDATE_ERROR'\r\n\r\nexport const SAVE_REFERENCE_ID = 'SAVE_REFERENCE_ID'\r\nexport const SAVE_REFERENCE_ID_ERROR = 'SAVE_REFERENCE_ID_ERROR'\r\nexport const MOCK_STATUS = 'MOCK_STATUS'\r\nexport const MOCK_STATUS_SUCCESS = 'MOCK_STATUS_SUCCESS'\r\nexport const MOCK_STATUS_ERROR = 'MOCK_STATUS_ERROR'\r\nexport const MOCK_STATUS_CLEAR = 'MOCK_STATUS_CLEAR'\r\n\r\nexport const DELETE_MOCK = 'DELETE_MOCK'\r\nexport const DELETE_MOCK_PENDING = 'DELETE_MOCK_PENDING'\r\nexport const DELETE_MOCK_SUCCESS = 'DELETE_MOCK_SUCCESS'\r\nexport const DELETE_MOCK_ERROR = 'DELETE_MOCK_ERROR'\r\n\r\nexport const PREVIEW_MOCK = 'PREVIEW_MOCK'\r\nexport const PREVIEW_MOCK_PENDING = 'PREVIEW_MOCK_PENDING'\r\nexport const PREVIEW_MOCK_SUCCESS = 'PREVIEW_MOCK_SUCCESS'\r\nexport const PREVIEW_MOCK_ERROR = 'PREVIEW_MOCK_ERROR'\r\nexport const PREVIEW_MOCK_CLEAR = 'PREVIEW_MOCK_CLEAR'\r\n\r\nexport const PROJECT_EDIT = 'PROJECT_EDIT'\r\nexport const PROJECT_EDIT_SUCCESS = 'PROJECT_EDIT_SUCCESS'\r\nexport const PROJECT_EDIT_ERROR = 'PROJECT_EDIT_ERROR'\r\n\r\nexport const PROJECT_DELETE = 'PROJECT_DELETE'\r\nexport const PROJECT_DELETE_SUCCESS = 'PROJECT_DELETE_SUCCESS'\r\nexport const PROJECT_DELETE_ERROR = 'PROJECT_DELETE_ERROR'\r\n\r\nexport const FETCH_TOKEN = 'FETCH_TOKEN'\r\nexport const FETCH_TOKEN_SUCCESS = 'FETCH_TOKEN_SUCCESS'\r\nexport const FETCH_TOKEN_ERROR = 'FETCH_TOKEN_ERROR'\r\n\r\nexport const UPDATE_TOKEN = 'UPDATE_TOKEN'\r\nexport const UPDATE_TOKEN_PENDING = 'UPDATE_TOKEN_PENDING'\r\nexport const UPDATE_TOKEN_SUCCESS = 'UPDATE_TOKEN_SUCCESS'\r\nexport const UPDATE_TOKEN_ERROR = 'UPDATE_TOKEN_ERROR'\r\n\r\nexport const UPDATE_AUTH_TYPE = 'UPDATE_AUTH_TYPE'\r\nexport const UPDATE_AUTH_TYPE_PENDING = 'UPDATE_AUTH_TYPE_PENDING'\r\nexport const UPDATE_AUTH_TYPE_SUCCESS = 'UPDATE_AUTH_TYPE_SUCCESS'\r\nexport const UPDATE_AUTH_TYPE_ERROR = 'UPDATE_AUTH_TYPE_ERROR'\r\n\r\nexport const RESET_STORE = 'RESET_STORE'\r\n","import {LOGIN_USER, LOGIN_USER_SUCCESS, LOGIN_USER_ERROR, LOGIN_USER_CLEAR} from '../actionTypes'\r\n\r\nexport const loginUserAction = user => {\r\n return {\r\n type: LOGIN_USER,\r\n user,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = user => {\r\n return {\r\n type: LOGIN_USER_SUCCESS,\r\n user,\r\n }\r\n}\r\n\r\nexport const receiveError = user => {\r\n return {\r\n type: LOGIN_USER_ERROR,\r\n user,\r\n }\r\n}\r\n\r\nexport const flushUserData = () => {\r\n return {\r\n type: LOGIN_USER_CLEAR,\r\n }\r\n}\r\n","import {UPDATE_AUTH_TYPE, UPDATE_AUTH_TYPE_SUCCESS, UPDATE_AUTH_TYPE_ERROR, UPDATE_AUTH_TYPE_PENDING} from '../actionTypes'\r\n\r\nexport const updateAuthTypeAction = (data,isMockAuth) => {\r\n return {\r\n type: UPDATE_AUTH_TYPE,\r\n data,\r\n isMockAuth\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: UPDATE_AUTH_TYPE_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: UPDATE_AUTH_TYPE_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const isUpdateAuthPending = isPending => ({\r\n type: UPDATE_AUTH_TYPE_PENDING,\r\n isPending,\r\n })\r\n","import {createBrowserHistory} from 'history'\r\n\r\nconst history = createBrowserHistory()\r\n\r\nexport default history\r\n","import {\r\n PREVIEW_MOCK,\r\n PREVIEW_MOCK_SUCCESS,\r\n PREVIEW_MOCK_ERROR,\r\n PREVIEW_MOCK_CLEAR,\r\n PREVIEW_MOCK_PENDING\r\n } from '../actionTypes'\r\n \r\n export const createPreviewMockAction = data => {\r\n return {\r\n type: PREVIEW_MOCK,\r\n data,\r\n }\r\n }\r\n \r\n export const receiveDataAction = data => {\r\n return {\r\n type: PREVIEW_MOCK_SUCCESS,\r\n data,\r\n }\r\n }\r\n \r\n export const receiveError = data => {\r\n return {\r\n type: PREVIEW_MOCK_ERROR,\r\n data,\r\n }\r\n }\r\n \r\n export const flushPreviewMockData = () => {\r\n return {\r\n type: PREVIEW_MOCK_CLEAR,\r\n }\r\n }\r\n\r\n export const isPreviewMockPending = isPending => ({\r\n type: PREVIEW_MOCK_PENDING,\r\n isPending,\r\n })","import {\r\n MOCK_STATUS,\r\n MOCK_STATUS_SUCCESS,\r\n MOCK_STATUS_ERROR,\r\n MOCK_STATUS_CLEAR,\r\n} from '../actionTypes'\r\n\r\nexport const mockStatusAction = data => {\r\n return {\r\n type: MOCK_STATUS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: MOCK_STATUS_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: MOCK_STATUS_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const flushMockStatus = () => {\r\n return {\r\n type: MOCK_STATUS_CLEAR,\r\n }\r\n}\r\n","import {FETCH_TOKEN,FETCH_TOKEN_SUCCESS,FETCH_TOKEN_ERROR} from '../actionTypes'\r\n\r\nexport const fetchTokenAction = (data,isMockToken) => {\r\n return {\r\n type: FETCH_TOKEN,\r\n data,\r\n isMockToken\r\n }\r\n}\r\n\r\nexport const fetchTokenSuccessAction = data => {\r\n return {\r\n type: FETCH_TOKEN_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const fetchTokenFailureAction = data => {\r\n return {\r\n type: FETCH_TOKEN_ERROR,\r\n data,\r\n }\r\n}\r\n","import {DELETE_MOCK, DELETE_MOCK_SUCCESS, DELETE_MOCK_ERROR, DELETE_MOCK_PENDING} from '../actionTypes'\r\n\r\nexport const deleteMockAction = data => {\r\n return {\r\n type: DELETE_MOCK,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: DELETE_MOCK_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: DELETE_MOCK_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const isDeleteMockPending = isPending => ({\r\n type: DELETE_MOCK_PENDING,\r\n isPending,\r\n })\r\n","module.exports = __webpack_public_path__ + \"34358c7b131f807f987adfdc94c8ed94.svg\";","import {REGISTER_USER, REGISTER_USER_SUCCESS, REGISTER_USER_ERROR} from '../actionTypes'\r\n\r\nexport const registerUserAction = user => {\r\n return {\r\n type: REGISTER_USER,\r\n user,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = user => {\r\n return {\r\n type: REGISTER_USER_SUCCESS,\r\n user,\r\n }\r\n}\r\n\r\nexport const receiveError = user => {\r\n return {\r\n type: REGISTER_USER_ERROR,\r\n user,\r\n }\r\n}\r\n","import {toast} from 'react-toastify'\r\nimport 'react-toastify/dist/ReactToastify.css'\r\n\r\ntoast.configure()\r\n\r\nexport const notifyError = errorMessage => {\r\n toast.error(errorMessage)\r\n}\r\n\r\nexport const notifySuccess = successMessage => {\r\n toast.success(successMessage)\r\n}\r\n","import {\r\n FILE_UPLOAD,\r\n FILE_UPLOAD_SUCCESS,\r\n FILE_UPLOAD_ERROR,\r\n FILE_UPLOAD_CLEAR,\r\n} from '../actionTypes'\r\n\r\nexport const fileUploadAction = data => {\r\n return {\r\n type: FILE_UPLOAD,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: FILE_UPLOAD_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: FILE_UPLOAD_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const flushUploadedData = () => {\r\n return {\r\n type: FILE_UPLOAD_CLEAR,\r\n }\r\n}\r\n","import {SESSION_UPDATE, SESSION_UPDATE_SUCCESS, SESSION_UPDATE_ERROR} from '../actionTypes'\r\n\r\nexport const sessionUpdateAction = data => {\r\n return {\r\n type: SESSION_UPDATE,\r\n data,\r\n }\r\n}\r\n\r\nexport const sessionDataAction = data => {\r\n return {\r\n type: SESSION_UPDATE_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const sessionError = data => {\r\n return {\r\n type: SESSION_UPDATE_ERROR,\r\n data,\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"dd19669e6ca66d98fbc94f683d065049.png\";","import client from '../axiosInstance/axiosInstance'\r\n\r\nconst mockListService = () => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/list`\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default mockListService\r\n","module.exports = __webpack_public_path__ + \"408d5a4ff051a3e4db7019e973f5d312.png\";","module.exports = __webpack_public_path__ + \"dbb61a0ea7a040016dbfd0577badf195.svg\";","module.exports = __webpack_public_path__ + \"30b4a794a6e94cead0de0a768cecba70.png\";","module.exports = __webpack_public_path__ + \"b71a5b9335a42afe0732cacb48defa62.png\";","module.exports = __webpack_public_path__ + \"15de721e3fdf8f6dfc76542780982fdf.png\";","module.exports = __webpack_public_path__ + \"0cff0564b7f9c799e9fda470dd721abc.svg\";","import axios from \"axios\"\r\n\r\nconst client = axios.create()\r\n\r\nclient.interceptors.request.use((req) => { \r\n const token = localStorage.getItem(\"token\")\r\n if (token) {\r\n req.headers['x-access-token'] = `${token}`\r\n }\r\n return req\r\n})\r\n\r\nclient.interceptors.response.use((response) => {\r\n return response\r\n}, (error) => {\r\n if (error.response.status === 401) {\r\n localStorage.clear()\r\n window.location.href = \"/\"\r\n }\r\n return Promise.reject(error)\r\n})\r\n\r\nexport default client","export const HomePageUrl = '/'\r\n\r\nexport const DashboardUrl = '/dashboard'\r\n\r\nexport const createMockUrl = '/create-mock'\r\n\r\nexport const EditMockUrl = '/edit-mock'\r\n\r\nexport const RegisterPageUrl = '/register'\r\n\r\nexport const FirstPageUrl = '/'\r\n\r\nexport const ProjectListPageUrl = '/projects'\r\n\r\nexport const SidebarData = [\r\n {\r\n title: 'Dashboard',\r\n path: '/dashboard',\r\n cName: 'nav-text',\r\n },\r\n {\r\n title: 'Project List',\r\n path: '/projects',\r\n cName: 'nav-text',\r\n },\r\n]\r\n","import {\r\n CREATE_MOCK,\r\n CREATE_MOCK_SUCCESS,\r\n CREATE_MOCK_ERROR,\r\n CREATE_MOCK_CLEAR,\r\n FETCH_LIST_BY_ID,\r\n FETCH_LIST_BY_ID_SUCCESS,\r\n FETCH_LIST_BY_ID_ERROR\r\n} from '../actionTypes'\r\n\r\nexport const createMockAction = data => {\r\n return {\r\n type: CREATE_MOCK,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: CREATE_MOCK_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: CREATE_MOCK_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const flushMockData = () => {\r\n return {\r\n type: CREATE_MOCK_CLEAR,\r\n }\r\n}\r\n\r\nexport const fetchListById = data => {\r\n return {\r\n type: FETCH_LIST_BY_ID,\r\n data,\r\n }\r\n}\r\n\r\nexport const fetchListByIdSuccess = data => {\r\n return {\r\n type: FETCH_LIST_BY_ID_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const fetchListByIdError = data => {\r\n return {\r\n type: FETCH_LIST_BY_ID_ERROR,\r\n data,\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"d2ed3e2e70fbf5f31cd2c54db47e16f6.png\";","module.exports = __webpack_public_path__ + \"b4696057cf9e5168591afe321e98caf6.svg\";","module.exports = __webpack_public_path__ + \"e94df0b7605798abb34838bc0dcf7df6.svg\";","module.exports = __webpack_public_path__ + \"ab1b88203925e60e92cc68ca13030e72.png\";","module.exports = __webpack_public_path__ + \"e57e9945956b2a77fb7d68cce6efc1db.png\";","module.exports = __webpack_public_path__ + \"56e2f25e000b6eacc91c987d2564a2a9.png\";","module.exports = __webpack_public_path__ + \"f23d6f897717c5c4b18aa72bc82645b1.svg\";","module.exports = __webpack_public_path__ + \"3a33ce73cd4b395295057c5101b97604.svg\";","module.exports = __webpack_public_path__ + \"7d8d826c14c84b8aaf4d40d1448ed3a3.svg\";","module.exports = __webpack_public_path__ + \"b3bd5d21c4a24d19008aaee25d723ed4.svg\";","module.exports = __webpack_public_path__ + \"a8e8a36d5bd444bc1d58b4db93daa28b.svg\";","module.exports = __webpack_public_path__ + \"52a53118d2b7c475e4a9dcb6100b453d.svg\";","module.exports = __webpack_public_path__ + \"1835424c58247392a43ebab9e896d303.svg\";","export const mockListInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n}\r\n\r\nexport const projectListInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n}\r\n\r\nexport const createProjectInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const editMockInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const createMockInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const fileUploadInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const updateSessionInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const mockStatusInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n}\r\n\r\nexport const createPreviewMockInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false\r\n}\r\n","import {combineReducers} from 'redux'\r\nimport login from './login/loginReducer'\r\nimport createMock from './createMock/createMockReducer'\r\nimport mockList from './mockList/mockListReducer'\r\nimport projectList from './projectList/projectListReducer'\r\nimport createProject from './createProject/createProjectReducer'\r\nimport fileUpload from './fileUpload/fileUploadReducer'\r\nimport updateSession from './updateSession/updateSessionReducer'\r\nimport saveReference from './saveReferenceReducer/saveReferenceReducer'\r\nimport mockStatus from './mockStatus/mockStatusReducer'\r\nimport deleteMock from './deleteMock/deleteMockReducer'\r\nimport createPreviewMock from './previewMock/previewMockReducer'\r\nimport updateAuthType from './updateAuthReducer/updateAuthReducer'\r\nimport fetchToken from './fetchToken/fetchToken'\r\nimport updateToken from './updateToken/updateToken'\r\n\r\nconst rootReducer = combineReducers({\r\n login,\r\n createMock,\r\n mockList,\r\n projectList,\r\n createProject,\r\n fileUpload,\r\n updateSession,\r\n saveReference,\r\n mockStatus,\r\n deleteMock,\r\n createPreviewMock,\r\n fetchToken,\r\n updateToken,\r\n updateAuthType\r\n})\r\n\r\nexport default rootReducer\r\n","import {LOGIN_USER_SUCCESS, LOGIN_USER_ERROR, LOGIN_USER_CLEAR} from '../../actions/actionTypes'\r\n\r\nexport default function login(state = [], action) {\r\n const response = action.user\r\n const emptyResponse = []\r\n switch (action.type) {\r\n case LOGIN_USER_SUCCESS:\r\n return {...state, response}\r\n case LOGIN_USER_ERROR:\r\n return {...state, response}\r\n case LOGIN_USER_CLEAR:\r\n return emptyResponse\r\n default:\r\n return state\r\n }\r\n}\r\n","import {\r\n CREATE_MOCK_SUCCESS,\r\n CREATE_MOCK_ERROR,\r\n CREATE_MOCK_CLEAR,\r\n FETCH_LIST_BY_ID_SUCCESS,\r\n FETCH_LIST_BY_ID_ERROR,\r\n} from '../../actions/actionTypes'\r\nimport {createMockInitialState} from '../initialState'\r\n\r\nexport default function createMock(state = createMockInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case CREATE_MOCK_SUCCESS:\r\n return {...state, response}\r\n case CREATE_MOCK_ERROR:\r\n return {...state, response}\r\n case CREATE_MOCK_CLEAR:\r\n return createMockInitialState\r\n case FETCH_LIST_BY_ID_SUCCESS:\r\n return {...state, response}\r\n case FETCH_LIST_BY_ID_ERROR:\r\n return {...state, response}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {MOCK_LIST_SUCCESS, MOCK_LIST_ERROR, MOCK_LIST_PENDING} from '../../actions/actionTypes'\r\nimport {mockListInitialState} from '../initialState'\r\n\r\nexport default function createMock(state = mockListInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case MOCK_LIST_SUCCESS:\r\n return {...state, response}\r\n case MOCK_LIST_ERROR:\r\n return {...state, response}\r\n case MOCK_LIST_PENDING:\r\n return {...state, isPending: action.isPending,}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {PROJECT_LIST_SUCCESS, PROJECT_LIST_ERROR, PROJECT_LIST_PENDING} from '../../actions/actionTypes'\r\nimport {projectListInitialState} from '../initialState'\r\n\r\nexport default function projectList(state = projectListInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case PROJECT_LIST_SUCCESS:\r\n return {...state, response}\r\n case PROJECT_LIST_ERROR:\r\n return {...state, response}\r\n case PROJECT_LIST_PENDING:\r\n return {\r\n ...state,\r\n isPending: action.isPending,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import {CREATE_PROJECT_SUCCESS, CREATE_PROJECT_ERROR} from '../../actions/actionTypes'\r\nimport {createProjectInitialState} from '../initialState'\r\n\r\nexport default function createProject(state = createProjectInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case CREATE_PROJECT_SUCCESS:\r\n return {...state, response}\r\n case CREATE_PROJECT_ERROR:\r\n return {...state, response}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {FILE_UPLOAD_SUCCESS, FILE_UPLOAD_ERROR, FILE_UPLOAD_CLEAR} from '../../actions/actionTypes'\r\nimport {fileUploadInitialState} from '../initialState'\r\n\r\nexport default function fileUpload(state = fileUploadInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case FILE_UPLOAD_SUCCESS:\r\n return {...state, response}\r\n case FILE_UPLOAD_ERROR:\r\n return {...state, response}\r\n case FILE_UPLOAD_CLEAR:\r\n return fileUploadInitialState\r\n default:\r\n return state\r\n }\r\n}\r\n","import {SESSION_UPDATE_SUCCESS, SESSION_UPDATE_ERROR} from '../../actions/actionTypes'\r\nimport {updateSessionInitialState} from '../initialState'\r\n\r\nexport default function updateSession(state = updateSessionInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case SESSION_UPDATE_SUCCESS:\r\n return {...state, response}\r\n case SESSION_UPDATE_ERROR:\r\n return {...state, response}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {SAVE_REFERENCE_ID, SAVE_REFERENCE_ID_ERROR} from '../../actions/actionTypes'\r\n\r\nconst initialState = ''\r\n\r\nexport default function saveReference(state = initialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case SAVE_REFERENCE_ID:\r\n return response\r\n case SAVE_REFERENCE_ID_ERROR:\r\n return response\r\n default:\r\n return state\r\n }\r\n}\r\n","import {MOCK_STATUS_SUCCESS, MOCK_STATUS_ERROR, MOCK_STATUS_CLEAR} from '../../actions/actionTypes'\r\nimport {mockStatusInitialState} from '../initialState'\r\n\r\nexport default function mockStatus(state = mockStatusInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case MOCK_STATUS_SUCCESS:\r\n return {...state, response}\r\n case MOCK_STATUS_CLEAR:\r\n return mockStatusInitialState\r\n case MOCK_STATUS_ERROR:\r\n return {...state, response}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {DELETE_MOCK_SUCCESS, DELETE_MOCK_ERROR, DELETE_MOCK_PENDING} from '../../actions/actionTypes'\r\n\r\nexport default function deleteMock(state = [], action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case DELETE_MOCK_SUCCESS:\r\n return {...state, response}\r\n case DELETE_MOCK_ERROR:\r\n return {...state, response}\r\n case DELETE_MOCK_PENDING:\r\n return {...state, isPending: action.isPending}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {\r\n PREVIEW_MOCK_SUCCESS,\r\n PREVIEW_MOCK_ERROR,\r\n PREVIEW_MOCK_CLEAR,\r\n PREVIEW_MOCK_PENDING\r\n } from '../../actions/actionTypes'\r\n import {createPreviewMockInitialState} from '../initialState'\r\n \r\n export default function createPreviewMock(state = createPreviewMockInitialState, action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case PREVIEW_MOCK_SUCCESS:\r\n return {...state, response}\r\n case PREVIEW_MOCK_ERROR:\r\n return {...state, response}\r\n case PREVIEW_MOCK_PENDING:\r\n return {...state, isPending: action.isPending}\r\n case PREVIEW_MOCK_CLEAR:\r\n return createPreviewMockInitialState\r\n default:\r\n return state\r\n }\r\n }","import {FETCH_TOKEN_SUCCESS, FETCH_TOKEN_ERROR} from '../../actions/actionTypes'\r\n\r\nexport default function fetchToken(state = [], action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case FETCH_TOKEN_SUCCESS:\r\n return {...state, response}\r\n case FETCH_TOKEN_ERROR:\r\n return {...state, response}\r\n default:\r\n return state\r\n }\r\n}\r\n","import {UPDATE_TOKEN_SUCCESS, UPDATE_TOKEN_ERROR, RESET_STORE, UPDATE_TOKEN_PENDING} from '../../actions/actionTypes'\r\n\r\nexport default function updateTokenReducer(state = [], action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case UPDATE_TOKEN_SUCCESS:\r\n return {...state, response}\r\n case UPDATE_TOKEN_ERROR:\r\n return {...state, response}\r\n case RESET_STORE:\r\n return {state:null, response:null}\r\n case UPDATE_TOKEN_PENDING:\r\n return {...state, isPending: action.isPending}\r\n default:\r\n return state\r\n }\r\n}","import {UPDATE_AUTH_TYPE_SUCCESS, UPDATE_AUTH_TYPE_ERROR, UPDATE_AUTH_TYPE_PENDING} from '../../actions/actionTypes'\r\n\r\nexport default function updateAuth(state = [], action) {\r\n const response = action.data\r\n switch (action.type) {\r\n case UPDATE_AUTH_TYPE_SUCCESS:\r\n return {...state, response}\r\n case UPDATE_AUTH_TYPE_ERROR:\r\n return {...state, response}\r\n case UPDATE_AUTH_TYPE_PENDING:\r\n return {...state, isPending: action.isPending}\r\n default:\r\n return state\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nconst loginUserService = request => {\r\n const {API_BASE_URL} = process.env\r\n const LOGIN_API_ENDPOINT = `${API_BASE_URL}/login`\r\n\r\n return axios({\r\n method: 'post',\r\n url: LOGIN_API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.user,\r\n })\r\n .then(response => {\r\n const token = response.headers[\"x-access-token\"]\r\n localStorage.setItem(\"token\", token)\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default loginUserService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport history from '../history/createBrowserHistory'\r\nimport loginUserService from '../service/login/authenticationService'\r\nimport {LOGIN_USER_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/login/authenticationActions'\r\nimport {DashboardUrl} from '../constants/url'\r\n\r\nexport default function* loginSaga(payload) {\r\n try {\r\n const response = yield call(loginUserService, payload)\r\n response.type = LOGIN_USER_SUCCESS\r\n yield put(receiveDataAction(response))\r\n history.push(DashboardUrl)\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nexport const createMockService = request => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/create`\r\n const URLParam = request.data.mockId\r\n ? `${API_BASE_URL}/mock/item/${request.data.mockId}`\r\n : API_ENDPOINT\r\n\r\n return axios({\r\n method: request.data.mockId ? 'put' : 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport const fetchListByIdService = request => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`\r\n\r\n return axios({\r\n method: 'get',\r\n url: API_ENDPOINT + request.data,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError, notifySuccess} from '../components/common/Toast'\r\nimport {createMockService} from '../service/createMock/createMockService'\r\nimport {CREATE_MOCK_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/createMock/createMockAction'\r\n\r\nexport default function* createMockSaga(payload) {\r\n try {\r\n const response = yield call(createMockService, payload)\r\n if (response.status === 200) {\r\n if (payload.data.isPreview) {\r\n response.type = 'PREVIEW_MOCK'\r\n yield put(receiveDataAction(response))\r\n } else {\r\n response.type = CREATE_MOCK_SUCCESS\r\n yield put(receiveDataAction(response))\r\n notifySuccess('Mock updated successfully!')\r\n }\r\n }\r\n if (response.status === 201) {\r\n if (payload.data.isPreview) {\r\n yield put(receiveDataAction(response))\r\n } else {\r\n response.type = CREATE_MOCK_SUCCESS\r\n yield put(receiveDataAction(response))\r\n notifySuccess('Mock created successfully!')\r\n }\r\n }\r\n if (response.status === 417) {\r\n notifyError('Endpoint already exists. Choose different endpoint.')\r\n }\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport mockListService from '../service/mockList/mockListService'\r\nimport {MOCK_LIST_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError, isMockListPending} from '../actions/mockList/mockListActions'\r\n\r\nexport default function* createMockSaga(payload) {\r\n try {\r\n yield put(isMockListPending(true))\r\n const response = yield call(mockListService, payload)\r\n response.type = MOCK_LIST_SUCCESS\r\n yield put(receiveDataAction(response))\r\n yield put(isMockListPending(false))\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Record not found')\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst projectListService = ({data}) => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/project/list`\r\n\r\n return axios({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default projectListService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport projectListService from '../service/projectList/projectListService'\r\nimport {PROJECT_LIST_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, isProjectListPending} from '../actions/projectList/projectListAction'\r\n\r\nexport default function* projectListSaga(payload) {\r\n try {\r\n yield put(isProjectListPending(true))\r\n const response = yield call(projectListService, payload)\r\n response.type = PROJECT_LIST_SUCCESS\r\n yield put(receiveDataAction(response))\r\n yield put(isProjectListPending(false))\r\n } catch (error) {\r\n const resp = {data: {projectList: []}}\r\n yield put(receiveDataAction(resp))\r\n }\r\n}\r\n","import client from '../axiosInstance/axiosInstance'\r\n\r\nconst createProjectService = ({data}) => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/project/create`\r\n\r\n return client({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default createProjectService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport createProjectService from '../service/createProject/createProjectService'\r\nimport {CREATE_PROJECT_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/createMock/createMockAction'\r\n\r\nexport default function* createMockSaga(payload) {\r\n try {\r\n const response = yield call(createProjectService, payload)\r\n if (response.status === 201) {\r\n response.type = CREATE_PROJECT_SUCCESS\r\n yield put(receiveDataAction(response))\r\n }\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport {fetchListByIdService} from '../service/createMock/createMockService'\r\nimport {FETCH_LIST_BY_ID_SUCCESS} from '../actions/actionTypes'\r\nimport {fetchListByIdSuccess, fetchListByIdError} from '../actions/createMock/createMockAction'\r\n\r\nexport default function* editMockSaga(payload) {\r\n try {\r\n const response = yield call(fetchListByIdService, payload)\r\n response.type = FETCH_LIST_BY_ID_SUCCESS\r\n yield put(fetchListByIdSuccess(response))\r\n } catch (error) {\r\n yield put(fetchListByIdError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst uploadFileService = request => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/file/json-upload`\r\n\r\n return axios({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default uploadFileService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport fileUploadService from '../service/fileUpload/fileUploadService'\r\nimport {FILE_UPLOAD_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/fileUpload/fileUploadAction'\r\n\r\nexport default function* fileUploadSaga(payload) {\r\n try {\r\n const response = yield call(fileUploadService, payload)\r\n response.type = FILE_UPLOAD_SUCCESS\r\n yield put(receiveDataAction(response))\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nconst registerUserService = request => {\r\n const {API_BASE_URL} = process.env\r\n const REGISTER_API_ENDPOINT = `${API_BASE_URL}/register`\r\n\r\n return axios({\r\n method: 'post',\r\n url: REGISTER_API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.user,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default registerUserService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport registerUserService from '../service/register/authenticationService'\r\nimport {REGISTER_USER_SUCCESS, REGISTER_USER_ERROR} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/register/authenticationActions'\r\nimport {notifyError, notifySuccess} from '../components/common/Toast'\r\n\r\nexport default function* registerSaga(payload) {\r\n try {\r\n const response = yield call(registerUserService, payload)\r\n if (response.status === 201) {\r\n response.type = REGISTER_USER_SUCCESS\r\n yield put(receiveDataAction(response))\r\n notifySuccess('You are successfully registered!')\r\n setTimeout(() => {\r\n window.location.href = '/'\r\n }, 1000)\r\n } else {\r\n response.type = REGISTER_USER_ERROR\r\n yield put(receiveError(response))\r\n notifyError(response.message)\r\n }\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import client from '../axiosInstance/axiosInstance'\r\n\r\nconst updateSessionService = ({data}) => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/updatesession`\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default updateSessionService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport updateSessionService from '../service/updateSession/updateSessionService'\r\nimport {SESSION_UPDATE_SUCCESS} from '../actions/actionTypes'\r\nimport {sessionDataAction, sessionError} from '../actions/sessionUpdate/sessionUpdateAction'\r\n\r\nexport default function* updateSessionSaga(payload) {\r\n try {\r\n const response = yield call(updateSessionService, payload)\r\n response.type = SESSION_UPDATE_SUCCESS\r\n yield put(sessionDataAction(response))\r\n } catch (error) {\r\n yield put(sessionError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import {SAVE_REFERENCE_ID, SAVE_REFERENCE_ID_ERROR} from '../actionTypes'\r\n\r\nexport const saveReferenceId = data => {\r\n return {\r\n type: SAVE_REFERENCE_ID,\r\n data,\r\n }\r\n}\r\n\r\nexport const saveReferenceIdError = data => {\r\n return {\r\n type: SAVE_REFERENCE_ID_ERROR,\r\n data,\r\n }\r\n}\r\n","import {call} from 'redux-saga/effects'\r\nimport {saveReferenceId} from '../actions/saveReference/saveReferenceAction'\r\n\r\nexport default function* saveReference(data) {\r\n try {\r\n yield call(saveReferenceId(data))\r\n } catch (error) {\r\n // yield call(saveReferenceIdError(data))\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nexport const mockStatusService = data => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`\r\n const params = data.data.id\r\n return axios({\r\n method: 'patch',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: {mockStatus: data.data.mockStatus},\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default mockStatusService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport StatuService from '../service/mockStatus/mockStatusService'\r\nimport {MOCK_STATUS_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError} from '../actions/mockStatus/mockStatusActions'\r\n\r\nexport default function* mockStatusSaga(payload) {\r\n try {\r\n const response = yield call(StatuService, payload)\r\n response.type = MOCK_STATUS_SUCCESS\r\n yield put(receiveDataAction(response))\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Record not found')\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nexport const deleteMockService = data => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`\r\n const params = data.data.id\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default deleteMockService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {deleteMockService} from '../service/deleteMock/deleteMockService'\r\nimport {DELETE_MOCK_SUCCESS} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError, isDeleteMockPending} from '../actions/deleteMock/deleteMockAction'\r\n\r\nexport default function* deleteMockSaga(payload) {\r\n try {\r\n yield put(isDeleteMockPending(true))\r\n const response = yield call(deleteMockService, payload)\r\n response.type = DELETE_MOCK_SUCCESS\r\n yield put(receiveDataAction(response))\r\n yield put(isDeleteMockPending(false))\r\n } catch (error) {\r\n yield put(receiveError({message: 'Something Went Wrong.'}))\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst createPreviewService = request => {\r\n const {API_BASE_URL} = process.env\r\n const mockObj = {}\r\n\r\n // If isPreview tag is present in payload\r\n if (request.data.isPreview) {\r\n const payload = {...request.data}\r\n delete payload._id\r\n const bulkSize = payload.bulkDataSize * 1024\r\n payload.bulkDataSize = bulkSize\r\n const URLParam = `${API_BASE_URL}/mock/create?isPreview=true`\r\n\r\n return axios({\r\n method: 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: payload,\r\n })\r\n .then(resp => {\r\n const {headers} = resp\r\n const respObj = resp.data\r\n respObj.headers = headers\r\n respObj.mockResponse = mockObj\r\n return respObj\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n }\r\n}\r\n\r\nexport default createPreviewService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport createPreviewService from '../service/previewMock/previewMockService'\r\nimport {receiveDataAction, receiveError, isPreviewMockPending} from '../actions/previewMock/previewMockAction'\r\nimport {PREVIEW_MOCK_SUCCESS} from '../actions/actionTypes'\r\n\r\nexport default function* createPreviewMockSaga(payload) {\r\n try {\r\n yield put(isPreviewMockPending(true))\r\n const response = yield call(createPreviewService, payload)\r\n response.type = PREVIEW_MOCK_SUCCESS\r\n yield put(receiveDataAction(response))\r\n yield put(isPreviewMockPending(false))\r\n } catch (error) {\r\n yield put(receiveError({message: 'Something Went Wrong.'}))\r\n }\r\n}\r\n","import client from '../axiosInstance/axiosInstance'\r\n\r\nconst fetchTokenService = (payload) => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = payload.isMockToken ? `${API_BASE_URL}/token/mockId/${payload?.data}` :\r\n `${API_BASE_URL}/token/projectId/${payload?.data}`\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default fetchTokenService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport fetchTokenService from '../service/fetchToken/fetchToken'\r\nimport {FETCH_TOKEN} from '../actions/actionTypes'\r\nimport {fetchTokenSuccessAction, fetchTokenFailureAction} from '../actions/fetchToken/fetchToken'\r\n\r\nexport default function* fetchTokenSaga(payload) {\r\n try {\r\n const response = yield call(fetchTokenService, payload)\r\n response.type = FETCH_TOKEN\r\n yield put(fetchTokenSuccessAction(response))\r\n } catch (error) {\r\n yield put(fetchTokenFailureAction())\r\n notifyError('Record not found')\r\n }\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nexport const updateTokenService = req => {\r\n const {API_BASE_URL} = process.env\r\n const {data} = req\r\n const API_ENDPOINT = req.isMockToken ? `${API_BASE_URL}/token/mockId/${data.id}` : `${API_BASE_URL}/token/projectId/${data.id}`\r\n delete data.id\r\n return axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default updateTokenService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport {updateTokenService} from '../service/updateToken/updateToken'\r\nimport {UPDATE_TOKEN} from '../actions/actionTypes'\r\nimport {updateTokenActionError, updateTokenActionSuccess, resetStore, isUpdateTokenPending} from '../actions/updateToken/updateToken'\r\n\r\nexport default function* updateTokenSaga(payload) {\r\n try {\r\n yield put(isUpdateTokenPending(true))\r\n const response = yield call(updateTokenService, payload)\r\n response.type = UPDATE_TOKEN\r\n yield put(updateTokenActionSuccess(response))\r\n yield put(isUpdateTokenPending(false))\r\n } catch (error) {\r\n yield put(updateTokenActionError())\r\n notifyError('Something went wrong!')\r\n }\r\n yield put(resetStore())\r\n}\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst updateAuthTypeService = req => {\r\n const {API_BASE_URL} = process.env\r\n const {data} = req\r\n const API_ENDPOINT = req.isMockAuth ? `${API_BASE_URL}/authentication/mockId/${data.id}` : \r\n `${API_BASE_URL}/authentication/projectId/${data.id}`\r\n delete data.id\r\n return axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default updateAuthTypeService\r\n","import {put, call} from 'redux-saga/effects'\r\nimport {notifyError} from '../components/common/Toast'\r\nimport updateAuthTypeService from '../service/updateAuthType/updateAuthType'\r\nimport {UPDATE_AUTH_TYPE} from '../actions/actionTypes'\r\nimport {receiveDataAction, receiveError, isUpdateAuthPending} from '../actions/updateAuthType/updateAuthType'\r\n\r\nexport default function* updateAuthTypeSaga(payload) {\r\n try {\r\n yield put(isUpdateAuthPending(true))\r\n const response = yield call(updateAuthTypeService, payload)\r\n response.type = UPDATE_AUTH_TYPE\r\n yield put(receiveDataAction(response))\r\n yield put(isUpdateAuthPending(false))\r\n } catch (error) {\r\n yield put(receiveError())\r\n notifyError('Something went wrong!')\r\n }\r\n}\r\n","import {takeLatest} from 'redux-saga/effects'\r\nimport loginSaga from './authenticationSaga'\r\nimport createMockSaga from './createMockSaga'\r\nimport mockListSaga from './mockListSaga'\r\nimport projectListSaga from './projectListSaga'\r\nimport ceateProjectSaga from './createProjectSaga'\r\nimport editMockSaga from './editMockSaga'\r\nimport fileUploadSaga from './fileUploadSaga'\r\nimport registerSaga from './registerSaga'\r\nimport updateSessionSaga from './updateSessionSaga'\r\nimport saveReferenceSaga from './saveReferenceSaga'\r\nimport mockStatusSaga from './mockStatusSaga'\r\nimport deleteMockSaga from './deleteMockSaga'\r\nimport createPreviewMockSaga from './createPreviewMockSaga'\r\nimport fetchTokenSaga from './fetchTokenSaga'\r\nimport updateTokenSaga from './updateToken'\r\nimport updateAuthTypeSaga from './updateAuthTypeSaga'\r\n\r\n\r\nimport {\r\n LOGIN_USER,\r\n CREATE_MOCK,\r\n MOCK_LIST,\r\n PROJECT_LIST,\r\n CREATE_PROJECT,\r\n FETCH_LIST_BY_ID,\r\n FILE_UPLOAD,\r\n SESSION_UPDATE,\r\n REGISTER_USER,\r\n SAVE_REFERENCE_ID,\r\n MOCK_STATUS,\r\n DELETE_MOCK,\r\n PREVIEW_MOCK,\r\n FETCH_TOKEN,\r\n UPDATE_TOKEN,\r\n UPDATE_AUTH_TYPE\r\n} from '../actions/actionTypes'\r\n\r\nexport default function* watchUserAuthentication() {\r\n yield takeLatest(LOGIN_USER, loginSaga)\r\n yield takeLatest(REGISTER_USER, registerSaga)\r\n yield takeLatest(CREATE_MOCK, createMockSaga)\r\n yield takeLatest(MOCK_LIST, mockListSaga)\r\n yield takeLatest(PROJECT_LIST, projectListSaga)\r\n yield takeLatest(CREATE_PROJECT, ceateProjectSaga)\r\n yield takeLatest(FETCH_LIST_BY_ID, editMockSaga)\r\n yield takeLatest(FILE_UPLOAD, fileUploadSaga)\r\n yield takeLatest(SESSION_UPDATE, updateSessionSaga)\r\n yield takeLatest(SAVE_REFERENCE_ID, saveReferenceSaga)\r\n yield takeLatest(MOCK_STATUS, mockStatusSaga)\r\n yield takeLatest(DELETE_MOCK, deleteMockSaga)\r\n yield takeLatest(PREVIEW_MOCK, createPreviewMockSaga)\r\n yield takeLatest(FETCH_TOKEN, fetchTokenSaga)\r\n yield takeLatest(UPDATE_TOKEN, updateTokenSaga)\r\n yield takeLatest(UPDATE_AUTH_TYPE, updateAuthTypeSaga)\r\n}\r\n","import {fork} from 'redux-saga/effects'\r\nimport watchUserAuthentication from './watchers'\r\n\r\nexport default function* startForman() {\r\n yield fork(watchUserAuthentication)\r\n}\r\n","import {createStore, applyMiddleware, compose} from 'redux'\r\nimport createSagaMiddleware from 'redux-saga'\r\nimport reduxLogger from 'redux-logger'\r\nimport ReduxThunk from 'redux-thunk'\r\nimport rootReducer from '../reducers'\r\nimport rootSaga from '../sagas'\r\n\r\nconst configureStore = () => {\r\n const sagaMiddleware = createSagaMiddleware()\r\n\r\n const middleware = [sagaMiddleware, ReduxThunk]\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n middleware.push(reduxLogger)\r\n\r\n // eslint-disable-next-line no-underscore-dangle\r\n const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\r\n\r\n return {\r\n ...createStore(rootReducer, composeEnhancers(applyMiddleware(...middleware))),\r\n runSaga: sagaMiddleware.run(rootSaga),\r\n }\r\n }\r\n\r\n return {\r\n ...createStore(rootReducer, applyMiddleware(...middleware)),\r\n runSaga: sagaMiddleware.run(rootSaga),\r\n }\r\n}\r\n\r\nexport default configureStore\r\n","import React, {useRef, useState, useEffect} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {bindActionCreators} from 'redux'\r\nimport IdleTimer from 'react-idle-timer'\r\nimport history from '../../history/createBrowserHistory'\r\nimport SessionTimeoutPopup from './SessionTimeoutPopup'\r\nimport {sessionUpdateAction} from '../../actions/sessionUpdate/sessionUpdateAction'\r\nimport './style.css'\r\n\r\nlet countDownInterval\r\nlet timeout\r\n\r\nconst SessionTimeout = props => {\r\n const [timeoutModalOpen, setModalOpen] = useState(false)\r\n const [timeoutCountDown, setCountDown] = useState(0)\r\n const idleTimer = useRef(null)\r\n const timeoutTime = process.env.SESSION_TIME * 1000\r\n\r\n const clearSessionTimeout = () => {\r\n clearTimeout(timeout)\r\n }\r\n\r\n const clearSessionInterval = () => {\r\n clearInterval(countDownInterval)\r\n }\r\n\r\n const handleLogout = async () => {\r\n try {\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('name')\r\n setModalOpen(false)\r\n clearSessionInterval()\r\n clearSessionTimeout()\r\n history.push('/')\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n const handleContinue = () => {\r\n props.sessionUpdateAction()\r\n setModalOpen(false)\r\n clearSessionInterval()\r\n clearSessionTimeout()\r\n }\r\n\r\n const onActive = () => {\r\n if (!timeoutModalOpen) {\r\n clearSessionInterval()\r\n clearSessionTimeout()\r\n }\r\n }\r\n\r\n const onIdle = () => {\r\n const delay = 1000\r\n if (props.isAuthenticated && !timeoutModalOpen) {\r\n timeout = setTimeout(() => {\r\n let countDown = 20\r\n setModalOpen(true)\r\n setCountDown(countDown)\r\n countDownInterval = setInterval(() => {\r\n if (countDown > 0) {\r\n countDown -= 1\r\n setCountDown(countDown)\r\n } else {\r\n handleLogout()\r\n }\r\n }, 1000)\r\n }, delay)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n clearSessionInterval()\r\n clearSessionTimeout()\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n <IdleTimer\r\n ref={idleTimer}\r\n onActive={onActive}\r\n onIdle={onIdle}\r\n debounce={250}\r\n timeout={timeoutTime}\r\n />\r\n {timeoutModalOpen && (\r\n <SessionTimeoutPopup\r\n countdown={timeoutCountDown}\r\n onContinue={handleContinue}\r\n onLogout={handleLogout}\r\n hide={timeoutModalOpen}\r\n />\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n sessionUpdateAction,\r\n },\r\n dispatch\r\n )\r\n\r\nexport default connect(null, mapDispatchToProps)(SessionTimeout)\r\n","import React from 'react'\r\n\r\nconst SessionTimeoutPopup = ({countdown, onLogout, onContinue}) => {\r\nconst text = `The current session is about to expire in ${countdown} seconds.`\r\n\r\n return <div className='modalStyle'>\r\n <p className='paraStyle'>{text}</p>\r\n <div className='flexStyle'>\r\n <button className='btnStyle' onClick={onLogout}>Logout</button>\r\n <button className='btnStyle continueBtn' onClick={onContinue}>Continue</button>\r\n </div>\r\n </div>\r\n}\r\n\r\nexport default SessionTimeoutPopup","import React from 'react'\r\nimport {Redirect, Route} from 'react-router-dom'\r\nimport isEmpty from 'lodash/isEmpty'\r\nimport {HomePageUrl} from '../constants/url'\r\nimport SessionTimeout from '../components/common/SessionTimeout'\r\n\r\nconst PrivateRoute = ({component: Component, ...rest}) => {\r\n const token = localStorage.getItem('token')\r\n\r\n return (\r\n <>\r\n {!isEmpty(token) && <SessionTimeout isAuthenticated={!isEmpty(token)} />}\r\n <Route\r\n {...rest}\r\n render={props => {\r\n if (!isEmpty(token)) {\r\n return <Component {...props} />\r\n }\r\n return <Redirect to={HomePageUrl} />\r\n }}\r\n />\r\n </>\r\n )\r\n}\r\n\r\nexport default PrivateRoute\r\n","import React, {useState, useEffect} from 'react'\r\nimport {Redirect, Link} from 'react-router-dom'\r\nimport {connect, useSelector} from 'react-redux'\r\nimport {RegisterPageUrl, DashboardUrl} from '../../constants/url'\r\nimport {loginUserAction} from '../../actions/login/authenticationActions'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport '../../assets/styles/style.css'\r\nimport img from '../../assets/images/iRest_files/irest_logo.png'\r\n\r\nconst LoginPage = props => {\r\n const token = localStorage.getItem('token')\r\n const counter = useSelector(state => {\r\n if (state?.login?.response?.data) {\r\n localStorage.name = state.login.response.data.name\r\n }\r\n return state.login.response\r\n })\r\n const initialValue = {email: '', password: ''}\r\n const [user, setUser] = useState(initialValue)\r\n\r\n const [loginClick, setLoginClick] = useState(false)\r\n const {userState} = props\r\n\r\n useEffect(() => {\r\n setLoginClick(false)\r\n }, [userState])\r\n\r\n const inputChangeHandler = name => event => {\r\n setUser({...user, [name]: event.target.value})\r\n if (counter) {\r\n counter.message = ''\r\n }\r\n }\r\n\r\n const loginHandler = event => {\r\n event.preventDefault()\r\n if (!user.email || !user.password) return\r\n setLoginClick(true)\r\n setTimeout(() => {\r\n props.dispatch(loginUserAction(user))\r\n setUser(initialValue)\r\n }, 500)\r\n }\r\n\r\n const flashMessage = () => {\r\n setTimeout(() => {\r\n if (document.getElementById('hide')) {\r\n document.getElementById('hide').style.display = 'none'\r\n }\r\n }, 1000)\r\n }\r\n\r\n if (token) {\r\n return <Redirect to={DashboardUrl} />\r\n }\r\n\r\n return (\r\n <div id=\"login\">\r\n <div className=\"login-background col-xs-12 col-sm-8 col-md-6 col-lg-5\">\r\n <img src={img} alt=\"sample_logo\" className=\"rest_logo\" />\r\n </div>\r\n <div className=\"login-width col-xs-12 col-sm-8 col-md-6 col-lg-7\">\r\n <div id=\"login-column w-100\">\r\n <div id=\"login-box\">\r\n <form id=\"login-form\" className=\"form\" onSubmit={loginHandler}>\r\n <div className=\"login-header\">\r\n <h4 className=\"\">Sign in to your iRest account</h4>\r\n </div>\r\n <br />\r\n <div className=\"form-group\">\r\n <label className=\"details-label\">Enter your details to proceed further</label>\r\n <br />\r\n <br />\r\n <label htmlFor=\"email\" className=\"email-label\">\r\n Email\r\n </label>\r\n <br />\r\n <input\r\n data-testid=\"email-input\"\r\n type=\"email\"\r\n name=\"email\"\r\n id=\"Email\"\r\n className=\"form-control\"\r\n value={user.email}\r\n required\r\n onChange={inputChangeHandler('email')}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"password\" className=\"password-label\">\r\n Password\r\n </label>\r\n <br />\r\n <input\r\n data-testid=\"email-pass\"\r\n type=\"password\"\r\n name=\"password\"\r\n id=\"password\"\r\n className=\"form-control\"\r\n value={user.password}\r\n required\r\n onChange={inputChangeHandler('password')}\r\n />\r\n </div>\r\n <div className=\"text-danger text-center\" id=\"hide\" data-testid=\"Counter\">\r\n {counter?.message ? flashMessage() : ' '}\r\n </div>\r\n <br />\r\n <div className=\"form-group text-center mb-0 button-container\">\r\n <input\r\n data-testid=\"loginbtn\"\r\n type=\"submit\"\r\n name=\"submit\"\r\n className=\"btn btn-info btn-md login-btn\"\r\n value=\"Sign In\"\r\n />\r\n <Link to={RegisterPageUrl}>\r\n <input\r\n type=\"button\"\r\n className=\"btn btn-info btn-md create-account-btn\"\r\n value=\"Create Account\"\r\n />\r\n </Link>\r\n </div>\r\n <br />\r\n <div className=\"form-group text-center mb-0\">\r\n {loginClick && userState?.response?.status !== 200 && (\r\n <div className=\"spinner-border text-primary\" />\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n <div className=\"copyright-container\">\r\n <p className=\"copyright-label\">Copyright &copy;2022 Impetus, All rights Reserved</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n userState: state.login,\r\n})\r\n\r\nexport default connect(mapStateToProps, null)(LoginPage)\r\n","import React, {useState} from 'react'\r\nimport './style.css'\r\n\r\nconst Tooltip = props => {\r\n let timeout\r\n const [active, setActive] = useState(false)\r\n\r\n const showTip = () => {\r\n timeout = setTimeout(() => {\r\n setActive(true)\r\n }, props.delay || 400)\r\n }\r\n\r\n const hideTip = () => {\r\n clearInterval(timeout)\r\n setActive(false)\r\n }\r\n\r\n return (\r\n <div className=\"Tooltip-Wrapper\" data-testid=\"tooltip-tip\" onMouseEnter={showTip} onMouseLeave={hideTip}>\r\n {props.children}\r\n {active && <div className={`Tooltip-Tip ${props.direction || 'top'}`} >{props.content}</div>}\r\n </div>\r\n )\r\n}\r\n\r\nexport default Tooltip\r\n","import React from 'react'\r\nimport {Link, NavLink} from 'react-router-dom'\r\nimport history from '../../history/createBrowserHistory'\r\nimport './style.css'\r\nimport logo from '../../assets/images/iRest_files/irest_logo_icon.png'\r\nimport hamburgerMenu from '../../assets/images/iRest_files/nav_bar_ham.svg'\r\nimport closeButton from '../../assets/images/iRest_files/close_button.svg'\r\nimport {FirstPageUrl, SidebarData} from '../../constants/url'\r\n\r\nclass Nav extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {sidebar: false}\r\n this.box = React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('click', this.handleOutsideClick)\r\n }\r\n\r\n handleOutsideClick = event => {\r\n if (\r\n this.state.sidebar &&\r\n this.box &&\r\n !this.box.current?.contains(event.target) &&\r\n event.target.className !== 'navbar-hamburger'\r\n ) {\r\n if (this.state.sidebar) this.showSidebar()\r\n }\r\n }\r\n\r\n showSidebar = () => {\r\n this.setState(prevState => ({...prevState, sidebar: !prevState.sidebar}))\r\n }\r\n\r\n handleLogoutUser = e => {\r\n this.handleLogout(e)\r\n this.props.handleClearUser()\r\n }\r\n\r\n handleLogout = e => {\r\n e.preventDefault()\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('name')\r\n history.push(FirstPageUrl)\r\n }\r\n\r\n displayShortName = name => {\r\n let newName = ''\r\n if (name === null || name === '') {\r\n newName = ''\r\n } else {\r\n const updatedName = name\r\n .split(' ')\r\n .map(e => e[0])\r\n .join('')\r\n newName = updatedName\r\n }\r\n return newName\r\n }\r\n\r\n render() {\r\n const {pageTitle, link} = this.props\r\n\r\n return (\r\n <div>\r\n <nav className=\"navbar fixed-top navbar-expand-md navbar-dark d-flex navbar-custom\">\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n <Link to=\"#\" className=\"menu-bars\">\r\n <img\r\n src={hamburgerMenu}\r\n alt=\"sample_menu\"\r\n className=\"navbar-hamburger\"\r\n onClick={this.showSidebar}\r\n />\r\n </Link>\r\n <img src={logo} alt=\"header_sample_logo_icon\" className=\"navbar-brand navbar-logo\" />\r\n <a className=\"navbar-brand\" href={link}>\r\n {pageTitle}\r\n </a>\r\n <div className=\"navbar-nav ml-auto\">\r\n <div className=\"dropdown\">\r\n <div className=\"dropdown-container\">\r\n <div className=\"profile-dot\">\r\n {this.displayShortName(localStorage.getItem('name'))}\r\n </div>\r\n <div className=\"dropbtn\">{localStorage.getItem('name')}</div>\r\n <div className=\"arrow-down\" />\r\n </div>\r\n <div className=\"dropdown-content\">\r\n <a onClick={e => this.handleLogoutUser(e)} href=\"#!\">\r\n Logout\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n <nav className={this.state.sidebar ? 'nav-menu active' : 'nav-menu'} ref={this.box}>\r\n <ul className=\"nav-menu-items\" onClick={this.showSidebar}>\r\n <li className=\"navbar-toggle\">\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n <Link to=\"#\" className=\"menu-bars\">\r\n <img src={closeButton} alt=\"sample_logo_icon\" />\r\n </Link>\r\n </li>\r\n {SidebarData.map((item, index) => {\r\n return (\r\n <li key={index} className={item.cName}>\r\n <NavLink\r\n to={item.path}\r\n className={isActive => (isActive ? 'nav-active-link' : 'nav-inactive-link')}\r\n >\r\n <span className='nav-title'>{item.title}</span>\r\n </NavLink>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n </nav>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default Nav\r\n","import React from 'react'\r\nimport {Spinner} from 'react-bootstrap'\r\n\r\nfunction Loader({isOverlay}) {\r\n return (\r\n <div data-testid = 'spinner' className={isOverlay ? \"overlay\" : \"form-group text-center mb-0\"} >\r\n <Spinner animation=\"border\" variant=\"primary\" />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Loader","import React from 'react'\r\nimport Clipboard from 'react-clipboard.js'\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger'\r\nimport Tooltip from 'react-bootstrap/Tooltip'\r\nimport CopyToClipboard from 'react-copy-to-clipboard'\r\nimport './copyUrl.css'\r\nimport clipboard from '../../assets/images/iRest_files/clipboard.svg'\r\n\r\nclass CopyUrl extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {show: false}\r\n this.getText = this.getText.bind(this)\r\n }\r\n\r\n getTruncateUrl(str, num) {\r\n if (str.length > num) {\r\n const subStr = str.substring(0, num)\r\n return `${subStr}...`\r\n }\r\n return str\r\n }\r\n\r\n getText() {\r\n return this.props.textBody\r\n }\r\n\r\n renderTooltip = props => <Tooltip {...props}>Copied</Tooltip>\r\n\r\n render() {\r\n return (\r\n <Clipboard component=\"span\" option-text={this.getText}>\r\n <CopyToClipboard text={this.props.textBody}>\r\n <span className=\"d-flex\">\r\n {this.props.method === 'GET' && this.props.serviceResponseType === 'default' ? (\r\n <a\r\n href={this.props.textBody}\r\n className=\"copy-endpoint\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n <span className=\"p-r-5 no_wrap_list_url copy-url\">\r\n {this.getTruncateUrl(this.props.textBody, 35)}\r\n </span>\r\n </a>\r\n ) : (\r\n <span className=\"p-r-5 no_wrap_list_url copy-url\">\r\n {this.getTruncateUrl(this.props.textBody, 35)}\r\n </span>\r\n )}\r\n\r\n <div className=\"copyImage\">\r\n <OverlayTrigger placement=\"top\" overlay={this.renderTooltip} show={this.state.show}>\r\n <span\r\n data-testid=\"copyImage\"\r\n onClick={() => {\r\n this.setState({show: true})\r\n }}\r\n onMouseLeave={() => this.setState({show: false})}\r\n >\r\n <img src={clipboard} alt=\"clipboard\" />\r\n </span>\r\n </OverlayTrigger>\r\n </div>\r\n </span>\r\n </CopyToClipboard>\r\n </Clipboard>\r\n )\r\n }\r\n}\r\n\r\nexport default CopyUrl\r\n","import React, {useState} from 'react'\r\nimport arrowUp from '../../assets/images/iRest_files/arrowUp.png'\r\nimport arrowDown from '../../assets/images/iRest_files/arrowDown.png'\r\nimport './mockList.css'\r\n\r\nconst TableSorting = ({tableHeader, onSorting}) => {\r\n const [sortingField, setSortingField] = useState('')\r\n const [sortingOrder, setSortingOrder] = useState('asc')\r\n\r\n const onSortingChange = field => {\r\n const order = field === sortingField && sortingOrder === 'asc' ? 'desc' : 'asc'\r\n setSortingField(field)\r\n setSortingOrder(order)\r\n onSorting(field, order)\r\n }\r\n\r\n const processImage = () => {\r\n if (sortingOrder === 'asc') {\r\n return <img src={arrowUp} alt=\"arrow_up\" />\r\n }\r\n return <img src={arrowDown} alt=\"arrow_up\" />\r\n }\r\n\r\n return (\r\n <thead className=\"table-theme\">\r\n <tr>\r\n {tableHeader.map(({name, field, sortable}) => (\r\n <th\r\n key={name}\r\n onClick={() => (sortable ? onSortingChange(field) : null)}\r\n style={{cursor: 'pointer'}}\r\n className=\"table-label\"\r\n >\r\n {name} {sortingField && sortingField === field && processImage()}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n )\r\n}\r\n\r\nexport default TableSorting\r\n","import React from 'react'\r\nimport 'rapidoc'\r\nimport '../createMock/style.css'\r\n\r\nfunction RapiDoc({\r\n style,\r\n data,\r\n renderStyle = 'read',\r\n showHeader = true,\r\n showInfo = true,\r\n allowAuthentication = true,\r\n allowAdvancedSearch = true,\r\n allowSpecFileLoad = true,\r\n allowSearch = true,\r\n usePathInNavBar = true,\r\n keyName,\r\n keyValue,\r\n keyLocation\r\n}) {\r\n return (\r\n <rapi-doc\r\n data-testid=\"rapidocflow\"\r\n style={style || {height: '100vh', width: '100%'}}\r\n ref={data}\r\n theme=\"light\"\r\n header-color=\"#004F9F\"\r\n primary-color=\"#004F9F\"\r\n render-style={renderStyle || 'read'}\r\n show-header={showHeader || true}\r\n show-info={showInfo || true}\r\n allow-authentication={allowAuthentication || true}\r\n allow-advanced-search={allowAdvancedSearch || true}\r\n allow-spec-file-load={allowSpecFileLoad || true}\r\n allow-search={allowSearch || true}\r\n use-path-in-nav-bar={usePathInNavBar || false}\r\n show-method-in-nav-bar=\"as-colored-text\"\r\n api-key-name={keyName}\r\n api-key-value={keyValue}\r\n api-key-location={keyLocation || \"\"}\r\n />\r\n )\r\n}\r\n\r\nexport default RapiDoc\r\n","import React, {useEffect, useRef} from 'react'\r\nimport {useSelector, connect, useDispatch} from 'react-redux'\r\nimport {mockListAction} from '../../actions/mockList/mockListActions'\r\nimport RapiDoc from '../common/RapiDoc'\r\n\r\nfunction MocklistWrapper() {\r\n const method = {\r\n get:[{\r\n \"in\": \"query\",\r\n \"name\": \"IREST_RECORD_ID\",\r\n \"description\": \" IREST_RECORD_ID\",\r\n \"required\": false,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"IREST_RECORD_ID\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n }\r\n }\r\n }],\r\n post: [{\r\n \"in\": \"body\",\r\n \"name\": \"body\",\r\n \"description\": \"Post api call\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"Body\",\r\n ],\r\n \"properties\": {\r\n \"Body\": {\r\n \"type\": \"object\",\r\n \"example\": {}\r\n },\r\n }\r\n }\r\n }],\r\n patch:[{\r\n \"in\": \"query\",\r\n \"name\": \"IREST_RECORD_ID\",\r\n \"description\": \" IREST_RECORD_ID\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"IREST_RECORD_ID\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n }\r\n }\r\n },{\r\n \"in\": \"body\",\r\n \"name\": \"body\",\r\n \"description\": \"Item id that needs to be updated and its name\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"Body\": {\r\n \"type\": \"object\",\r\n \"example\": {}\r\n },\r\n }\r\n }\r\n }],\r\n put:[{\r\n \"in\": \"query\",\r\n \"name\": \"IREST_RECORD_ID\",\r\n \"description\": \" IREST_RECORD_ID\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"IREST_RECORD_ID\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n }\r\n }\r\n },{\r\n \"in\": \"body\",\r\n \"name\": \"body\",\r\n \"description\": \"Item id that needs to be updated and its name\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"Body\": {\r\n \"type\": \"object\",\r\n \"example\": {}\r\n },\r\n }\r\n }\r\n }],\r\n delete:[{\r\n \"in\": \"query\",\r\n \"name\": \"IREST_RECORD_ID\",\r\n \"description\": \" IREST_RECORD_ID\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"object\",\r\n \"required\": [\r\n \"IREST_RECORD_ID\"\r\n ],\r\n \"properties\": {\r\n \"IREST_RECORD_ID\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n }\r\n }\r\n }]\r\n }\r\n const data = useRef(null)\r\n const result = {}\r\n const mockListResponse = useSelector(state => state.mockList.response)\r\n const dispatch = useDispatch()\r\n const mocklist = mockListResponse?.data?.mockList\r\n mocklist.forEach(item => {\r\n const {statusCode} = item\r\n const staticFields = {\r\n apitype: item.serviceResponseType,\r\n endpoint: item.endpoint.split('/').pop(),\r\n tags: [item.projectName],\r\n description: 'About iRest',\r\n operationId: '',\r\n consumes: [\"application/json\"],\r\n produces: ['application/json'],\r\n responses: {\r\n [statusCode]: {\r\n description: statusCode === '200' ? 'successful operation': '',\r\n } \r\n },\r\n }\r\n const host = window.location.href.split('/dashboard')\r\n const dataurl = item.endpoint.split(host[0])\r\n const methods = {}\r\n item.allowedMethods.forEach(apiMethod => {\r\n methods[apiMethod.toLowerCase()] = {\r\n ...staticFields,\r\n summary: staticFields.endpoint,\r\n parameters: staticFields.apitype.toLowerCase() === \"default\" ? '' : method[apiMethod.toLowerCase()],\r\n }\r\n })\r\n result[dataurl[1]] = {\r\n ...methods,\r\n }\r\n })\r\n\r\n const spec = () => {\r\n const strSpec = {\r\n swagger: '2.0',\r\n info: {\r\n description: '',\r\n version: '1.0.6',\r\n title: 'Swagger iRest',\r\n termsOfService: 'http://swagger.io/terms/',\r\n contact: {\r\n email: 'iRest@impetus.com',\r\n },\r\n license: {\r\n name: 'Apache 2.0',\r\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html',\r\n },\r\n },\r\n host: 'iRest.swagger.io',\r\n basePath: '/v2',\r\n tags: [\r\n {\r\n name: 'iRest',\r\n description: 'Everything about iRest',\r\n externalDocs: {\r\n description: 'Find out more',\r\n url: 'http://swagger.io',\r\n },\r\n },\r\n ],\r\n\r\n paths: {...result},\r\n securityDefinitions: {\r\n api_key: {\r\n type: 'apiKey',\r\n name: 'api_key',\r\n in: 'header',\r\n },\r\n iRest_auth: {\r\n type: 'oauth2',\r\n authorizationUrl: 'https://iRest.swagger.io/oauth/authorize',\r\n flow: 'implicit',\r\n scopes: {\r\n 'read:iRest': 'read your iRest',\r\n 'write:iRest': 'modify iRest in your account',\r\n },\r\n },\r\n },\r\n definitions: {\r\n Category: {\r\n type: 'object',\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n name: {\r\n type: 'string',\r\n },\r\n },\r\n xml: {\r\n name: 'Category',\r\n },\r\n },\r\n iRest: {\r\n type: 'object',\r\n required: ['name'],\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n category: {\r\n $ref: '#/definitions/Category',\r\n },\r\n name: {\r\n type: 'string',\r\n example: 'iRest',\r\n },\r\n tags: {\r\n type: 'array',\r\n xml: {\r\n wrapped: true,\r\n },\r\n items: {\r\n xml: {\r\n name: 'tag',\r\n },\r\n $ref: '#/definitions/Tag',\r\n },\r\n },\r\n },\r\n xml: {\r\n name: 'iRest',\r\n },\r\n },\r\n Tag: {\r\n type: 'object',\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n name: {\r\n type: 'string',\r\n },\r\n },\r\n xml: {\r\n name: 'Tag',\r\n },\r\n },\r\n },\r\n externalDocs: {\r\n description: 'Find out more about Swagger',\r\n url: 'http://swagger.io',\r\n },\r\n }\r\n data.current.loadSpec(strSpec)\r\n }\r\n\r\n useEffect(() => {\r\n spec()\r\n }, [])\r\n\r\n useEffect(() => {\r\n dispatch(mockListAction())\r\n }, [])\r\n \r\n return (\r\n <div>\r\n <RapiDoc\r\n renderStyle=\"focused\"\r\n data={data}\r\n showHeader=\"false\"\r\n showInfo=\"false\"\r\n allowAuthentication=\"false\"\r\n allowAdvancedSearch=\"false\"\r\n allowSpecFileLoad=\"false\"\r\n usePathInNavBar=\"true\"\r\n keyName=\"rapidDoc\"\r\n keyValue\r\n keyLocation=\"query\"\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default connect(null)(MocklistWrapper)\r\n","import React from 'react'\r\nimport Modal from 'react-modal'\r\nimport MocklistWrapper from './MocklistWrapper'\r\nimport './style.css'\r\nimport '../../assets/styles/style.css'\r\nimport preview_close from '../../assets/images/iRest_files/preview_close_button.svg'\r\n\r\nfunction ModalShow(props) {\r\n const onClose = () => {\r\n props.closeRequest(false)\r\n }\r\n\r\n if (props.urlShowTo) {\r\n window.location.hash = props.urlShowTo\r\n }\r\n\r\n return (\r\n props.urlShowTo && (\r\n <Modal isOpen={props.isOpen} ariaHideApp={false} className=\"rapidoc-modal\">\r\n <span className=\"rapidoc-close-try\">\r\n <span onClick={() => onClose()} data-testid=\"closeButton\">\r\n <img src={preview_close} alt=\"preview_close_button\" className=\"preview-close-button\" />\r\n </span>\r\n </span>\r\n <MocklistWrapper />\r\n </Modal>\r\n )\r\n )\r\n}\r\n\r\nexport default ModalShow\r\n","import React from 'react'\r\nimport Modal from 'react-modal'\r\nimport './modalPopup.css'\r\nimport img from '../../assets/images/iRest_files/black_trash.png'\r\n\r\nfunction ModalPopup(props) {\r\n const customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '32%',\r\n height: '35%',\r\n },\r\n }\r\n\r\n const onClose = () => {\r\n props.closeDeleteModal(false, false)\r\n }\r\n\r\n const onDelete = () => {\r\n props.closeDeleteModal(false, true)\r\n }\r\n\r\n return (\r\n <Modal isOpen={props.isOpen} style={customStyles} ariaHideApp=\"false\">\r\n <div className=\"modalContainer\">\r\n <div className=\"modalDeleteContainer\">\r\n <img src={img} alt=\"trash\" className=\"trashImage\" />\r\n <p>Delete</p>\r\n </div>\r\n <div className=\"paraContainer\">\r\n <p>Are you sure you want to delete?</p>\r\n </div>\r\n <div className=\"modalButtonContainer\">\r\n <button onClick={onClose} className=\"cancelBtn\">\r\n CANCEL\r\n </button>\r\n <button onClick={onDelete} className=\"deleteBtn\">\r\n DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default ModalPopup\r\n","import React from 'react'\r\nimport Modal from 'react-modal'\r\nimport '../modalPopup.css'\r\nimport img from '../../../assets/images/iRest_files/black_trash.png'\r\n\r\nfunction DeleteTokenModal(props) {\r\n const customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '32%',\r\n height: '35%',\r\n zIndex:4\r\n },\r\n }\r\n\r\n const onClose = () => {\r\n props.closeDeleteTokenModal()\r\n }\r\n\r\n const onDelete = () => {\r\n props.updateToken({id: props?.details?._id, token: ''})\r\n props.setDeleteTokenMsg()\r\n props.closeDeleteTokenModal()\r\n props.closeTokenModal(false)\r\n props.closeAuthModal(false)\r\n }\r\n\r\n return (\r\n <Modal isOpen={props.isOpen} style={customStyles} ariaHideApp=\"false\">\r\n <div className=\"modalContainer\">\r\n <div className=\"modalDeleteContainer\">\r\n <img src={img} alt=\"trash\" className=\"trashImage\" />\r\n <p>Delete</p>\r\n </div>\r\n <div className=\"paraContainer\">\r\n <p>Are you sure you want to delete token?</p>\r\n </div>\r\n <div className=\"modalButtonContainer\">\r\n <button onClick={onClose} className=\"cancelBtn\">\r\n CANCEL\r\n </button>\r\n <button onClick={onDelete} className=\"deleteBtn\">\r\n DELETE\r\n </button>\r\n </div>\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default DeleteTokenModal\r\n","// api status constants\r\nexport const status = {\r\n ENABLED: 'enabled',\r\n DISABLED: 'disabled',\r\n}\r\n\r\n// mock service response options\r\nexport const serviceResponseType = {\r\n DEFAULT_SERVICE_RESPONSE: 'default',\r\n SAVE: 'save',\r\n EXISTING_API: 'existing',\r\n}\r\n\r\nexport const mockMethodList = {\r\n GET: 'GET',\r\n POST: 'POST',\r\n PUT: 'PUT',\r\n PATCH: 'PATCH',\r\n DELETE: 'DELETE',\r\n}\r\n\r\n// schemas model name constants\r\nexport const modelList = {\r\n USER_MODEL: 'User',\r\n PROJECT_MODEL: 'Project',\r\n SERVICE_RESPONSE_MODEL: 'ServiceResponse',\r\n MOCK_MODEL: 'Mock',\r\n PREVIEW_MOCK_MODEL: 'TempMock',\r\n PREVIEW_SERVICE_RESPONSE_MODEL: 'TempServiceResponse',\r\n TOKEN_MODEL: 'Token'\r\n}\r\n\r\nexport const statusCode = {\r\n statusCode200: 200,\r\n statusCode401: 401,\r\n statusCode404: 404,\r\n statusCode500: 500,\r\n statusCode502: 502,\r\n}\r\n\r\nexport const contentEncoding = {\r\n DEFAULT_ENCODING: 'UTF-8',\r\n}\r\n\r\nexport const contentTypeList = {\r\n PLAIN_TEXT: 'Text/Plain',\r\n APPLICATION_JSON: 'Application/Json',\r\n}\r\n\r\nexport const dataLimits = {\r\n dataSize: 20971520, // 20 MB\r\n dataCount: 1000000, // 10 Lakh\r\n nonStreamDataSize: 1048576, // 1 MB\r\n nonStreamDataCount: 100000 // 1 Lakh\r\n}\r\n\r\nexport const MOCK_TOKEN_AUTEHNTICATION_TYPE = {\r\n PROJECT_SPECIFIC: \"PROJECT_SPECIFIC\",\r\n MOCK_SPECIFIC:\"MOCK_SPECIFIC\",\r\n OFF:\"OFF\"\r\n}\r\n\r\nexport const iRestAuthToken = \"iRest-auth-token\"","const {v4: uuidv4} = require('uuid')\r\n\r\nconst generateToken = () => uuidv4()\r\n\r\nexport default generateToken","import React, {useState, useEffect} from 'react'\r\nimport Modal from 'react-modal'\r\nimport {MOCK_TOKEN_AUTEHNTICATION_TYPE} from '../../../../server/constants/schemaDefaults'\r\nimport generateToken from '../../../../server/helpers/generateUuidToken'\r\nimport '../modalPopup.css'\r\nimport deleteIcon from '../../../assets/images/iRest_files/red_trash.png'\r\nimport refreshImage from '../../../assets/images/iRest_files/refresh.png'\r\nimport Tooltip from '../../common/Tooltip'\r\n\r\nfunction UpdateAuthModal(props) {\r\n const customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '32%',\r\n },\r\n }\r\n \r\n const [authType, setAuthtype] = useState(props?.mockdata?.authenticationType)\r\n const [tokenval, setTokenVal] = useState(props?.tokenData)\r\n const isAuthMockSpecific = authType === MOCK_TOKEN_AUTEHNTICATION_TYPE.MOCK_SPECIFIC\r\n const tokenLabel = `An arbitrary bearer token required by the ${props?.isMock ? `mock` : `project`} (for private APIs only)`\r\n const onClose = () => {\r\n setAuthtype(props?.mockdata?.authenticationType)\r\n setTokenVal(props?.tokenData)\r\n props.closeAuthModal(false)\r\n }\r\n\r\n const onUpdate = () => {\r\n if (authType !== props?.mockdata?.authenticationType) {\r\n props.updateMockAuthType({id: props?.mockdata?._id, authenticationType: authType})\r\n }\r\n if (isAuthMockSpecific && tokenval !== props?.tokenData) {\r\n props.updateToken({id: props?.mockdata?._id, token: tokenval})\r\n }\r\n if (!props.isMock) {\r\n props.updateToken({id: props?.projData?._id, token: tokenval}, false)\r\n\r\n }\r\n props.closeAuthModal(false)\r\n }\r\n\r\n const changeToken =()=>{\r\n setTokenVal(generateToken())\r\n }\r\n\r\n useEffect(() => {\r\n setAuthtype(props?.mockdata?.authenticationType)\r\n }, [props?.mockdata])\r\n \r\n useEffect(() => {\r\n setTokenVal(props?.tokenData)\r\n }, [props?.tokenData])\r\n\r\n return (\r\n <Modal isOpen={props.isOpen} style={customStyles}>\r\n <div className=\"modalContainer\">\r\n <div className=\"modalDeleteContainer\">\r\n <p>API secret</p>\r\n </div>\r\n <div className=\"paraContainer\">\r\n {props?.isMock && <div className=\"form-group md-5\">\r\n <label htmlFor=\"filter\" className=\"filter-label\">\r\n Select Authentication Type\r\n </label>\r\n <select\r\n onChange={e => {\r\n setAuthtype(e.target.value)\r\n setTokenVal(props?.tokenData)\r\n }}\r\n value={authType}\r\n className=\"form-control\"\r\n aria-label=\"auth-select\"\r\n >\r\n <option value={MOCK_TOKEN_AUTEHNTICATION_TYPE.PROJECT_SPECIFIC}>Project Specific</option>\r\n <option value={MOCK_TOKEN_AUTEHNTICATION_TYPE.MOCK_SPECIFIC}>Mock Specific</option>\r\n <option value={MOCK_TOKEN_AUTEHNTICATION_TYPE.OFF}>Off</option>\r\n </select>\r\n </div>}\r\n {(isAuthMockSpecific || !props?.isMock) && <div className=\"form-group md-5\">\r\n <label className=\"filter-label\">\r\n Token\r\n </label>\r\n <div className='flex-style'>\r\n <input\r\n style={{marginRight:\"6px\"}}\r\n className=\"input-val\"\r\n value={tokenval}\r\n onChange={e => {\r\n setTokenVal(e.target.value)\r\n }}\r\n />\r\n <Tooltip content=\"Autogenerated Token\" direction=\"left\">\r\n <button\r\n className='tryme'\r\n onClick={changeToken}\r\n >\r\n <img src={refreshImage} alt=\"togglePlus\" />\r\n </button>\r\n </Tooltip>\r\n <Tooltip content=\"Delete Token\" direction=\"left\">\r\n <button\r\n className={props?.tokenData?.length===0 ? 'tryme delete-token-btn' : 'tryme'}\r\n disabled={props?.tokenData?.length===0}\r\n onClick={()=>props.openTokenDeleteModal(props?.mockdata?._id)}\r\n >\r\n <img src={deleteIcon} alt=\"delete_icon\" />\r\n </button>\r\n </Tooltip>\r\n </div>\r\n <p className=\"token-note\">{tokenLabel}</p>\r\n </div>\r\n }\r\n </div>\r\n <div className=\"modalButtonContainer\">\r\n <button onClick={onClose} className=\"cancelBtn\">\r\n CANCEL\r\n </button>\r\n <button\r\n onClick={onUpdate}\r\n className={(authType === props?.mockdata?.authenticationType && tokenval === props?.tokenData) ? 'deleteBtn deleteDisableBtn' : 'deleteBtn'}\r\n disabled={authType === props?.mockdata?.authenticationType && tokenval === props?.tokenData}\r\n >\r\n UPDATE\r\n </button>\r\n </div>\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default UpdateAuthModal\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst editMockService = request => {\r\n const {API_BASE_URL} = process.env\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`\r\n\r\n return axios({\r\n method: 'get',\r\n url: API_ENDPOINT + request.data,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default editMockService\r\n","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {Link} from 'react-router-dom'\r\nimport {bindActionCreators} from 'redux'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport './mockList.css'\r\nimport Pagination from 'react-js-pagination'\r\nimport queryString from 'query-string'\r\nimport {toast} from 'react-toastify'\r\nimport startCase from 'lodash/startCase'\r\nimport 'react-toastify/dist/ReactToastify.css'\r\nimport Tooltips from '../common/Tooltip'\r\nimport {notifySuccess} from '../common/Toast'\r\nimport Nav from '../common/nav'\r\nimport Loader from '../common/Loader'\r\nimport CopyBoard from '../common/copyUrl'\r\nimport {mockListPageTitle} from '../../constants/helperText'\r\nimport {createMockUrl, DashboardUrl, EditMockUrl} from '../../constants/url'\r\nimport {mockListAction} from '../../actions/mockList/mockListActions'\r\nimport {mockStatusAction} from '../../actions/mockStatus/mockStatusActions'\r\nimport {deleteMockAction} from '../../actions/deleteMock/deleteMockAction'\r\nimport {updateAuthTypeAction} from '../../actions/updateAuthType/updateAuthType'\r\nimport {fetchTokenAction} from '../../actions/fetchToken/fetchToken'\r\nimport {updateTokenAction} from '../../actions/updateToken/updateToken'\r\nimport {projectListAction} from '../../actions/projectList/projectListAction'\r\nimport TableSorting from './TableSorting'\r\nimport {flushUserData} from '../../actions/login/authenticationActions'\r\nimport ModalShow from '../modal/ModalShow'\r\nimport ModalPopup from '../modal/ModalPopup'\r\nimport DeleteTokenModal from '../modal/deleteTokenModal/deleteTokenModal'\r\nimport UpdateAuthTypeModal from '../modal/updateAuthTypeModal/updateAuthTypeModal'\r\nimport editIcon from '../../assets/images/iRest_files/edit_icon.png'\r\nimport keyIcon from '../../assets/images/iRest_files/key_icon.png'\r\nimport addIcon from '../../assets/images/iRest_files/plus_circle.svg'\r\nimport deleteIcon from '../../assets/images/iRest_files/blue_delete_trash.svg'\r\nimport previewEye from '../../assets/images/iRest_files/try_eye.svg'\r\nimport downloadIcon from '../../assets/images/iRest_files/download.svg'\r\nimport mockListService from '../../service/mockList/mockListService'\r\nimport editMockService from '../../service/editMock/editMockService'\r\n\r\ntoast.configure()\r\n\r\nclass MockList extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n activePage: 1,\r\n limit: 5,\r\n offset: 0,\r\n totalMock: 0,\r\n mockListData: null,\r\n search: '',\r\n onChangeSearch: '',\r\n serviceResponseType: '',\r\n allProjectName: [],\r\n allProjectName1: [],\r\n projectName: '',\r\n tableHeader: [\r\n {name: 'MOCK NAME', field: 'mockName', sortable: true},\r\n {name: 'PROJECT', field: 'projectName', sortable: true},\r\n {name: 'API TYPE', field: 'serviceResponseType', sortable: true},\r\n {name: 'URL', field: 'endpoint', sortable: true},\r\n {name: 'METHOD', field: 'method', sortable: true},\r\n {name: 'AUTH TYPE', field: 'authenticationType', sortable: true},\r\n {name: 'STATUS', field: 'statusCode', sortable: false},\r\n {name: 'MOCK STATUS', field: 'mockStatus', sortable: false},\r\n {name: 'ACTION', field: '', sortable: false},\r\n ],\r\n sorting: {field: '', order: ''},\r\n show: false,\r\n urlShow: '',\r\n deleteModalShow: false,\r\n deleteId: -1,\r\n showAuthModal: false,\r\n showTokenModal: false,\r\n mockdata:null,\r\n showTokenDelModal: false,\r\n tokenMockId: null,\r\n tokenDeleteMsg: null,\r\n }\r\n this.openModal = this.openModal.bind(this)\r\n this.closeModal = this.closeModal.bind(this)\r\n this.urlHit = this.urlHit.bind(this)\r\n this.openDeleteModal = this.openDeleteModal.bind(this)\r\n this.closeDeleteModal = this.closeDeleteModal.bind(this)\r\n this.handleAuthTypeModal = this.handleAuthTypeModal.bind(this)\r\n this.updateMockAuthType = this.updateMockAuthType.bind(this)\r\n this.openTokenModal = this.openTokenModal.bind(this)\r\n this.closeTokenModal = this.closeTokenModal.bind(this)\r\n this.updateMockToken = this.updateMockToken.bind(this)\r\n this.openTokenDeleteModal = this.openTokenDeleteModal.bind(this)\r\n this.closeDeleteTokenModal = this.closeDeleteTokenModal.bind(this)\r\n this.setDeleteTokenMsg = this.setDeleteTokenMsg.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n limit,\r\n sorting: {field, order},\r\n offset,\r\n search,\r\n serviceResponseType,\r\n projectName,\r\n } = this.state\r\n const parsed = queryString.parse(this.props.location.search)\r\n if (parsed.activePage !== undefined) {\r\n const sorting = {field: parsed.sortBy, order: parsed.order}\r\n this.setState(state => ({\r\n sorting,\r\n activePage: JSON.parse(parsed.activePage),\r\n search: parsed.search,\r\n onChangeSearch: parsed.search,\r\n serviceResponseType: parsed.serviceResponseType,\r\n projectName: parsed.projectName,\r\n offset: parsed.offset,\r\n }))\r\n }\r\n this.props.mockListAction({\r\n limit: parsed.limit || limit,\r\n offset: parsed.offset || offset,\r\n sortBy: parsed.sortBy || field,\r\n order: parsed.order || order,\r\n search: parsed.search || search,\r\n serviceResponseType: parsed.serviceResponseType || serviceResponseType,\r\n projectName: parsed.projectName || projectName,\r\n })\r\n this.props.projectListAction()\r\n }\r\n \r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const {\r\n limit,\r\n offset,\r\n activePage,\r\n sorting: {field, order},\r\n search,\r\n serviceResponseType,\r\n projectName,\r\n } = this.state\r\n if (\r\n this.state.sorting !== prevState.sorting ||\r\n activePage !== prevState.activePage ||\r\n search !== prevState.search ||\r\n serviceResponseType !== prevState.serviceResponseType ||\r\n projectName !== prevState.projectName || this.props.updateMockAuthTypeRes !== prevProps.updateMockAuthTypeRes\r\n ) {\r\n this.props.history.replace({\r\n pathname: '/dashboard',\r\n search: `?search=${search}&sortBy=${field}&order=${order}&limit=${limit}&offset=${offset}&activePage=${activePage}&serviceResponseType=${serviceResponseType}&projectName=${projectName}`,\r\n })\r\n this.props.mockListAction({\r\n limit,\r\n offset,\r\n sortBy: field,\r\n order,\r\n search,\r\n serviceResponseType,\r\n projectName,\r\n })\r\n if (this.props?.updateMockAuthTypeRes?.status === 201) {\r\n notifySuccess(this.props?.updateMockAuthTypeRes?.message)\r\n }\r\n }\r\n if (this.props?.fetchToken !== prevProps?.fetchToken) {\r\n this.openTokenModal()\r\n }\r\n if (this.props?.updateMockToken!==prevProps.updateMockToken && !this.state.tokenDeleteMsg) {\r\n const mockData = this.props?.mockListResponse?.data?.mockList\r\n mockData.forEach((mock)=>{\r\n if (!this.state.tokenDeleteMsg && mock._id ===this.state.mockdata._id ) {\r\n mock.authenticationType=\"MOCK_SPECIFIC\"\r\n }\r\n })\r\n this.setState({mockListData: mockData})\r\n notifySuccess(this.props?.updateMockToken?.message)\r\n }\r\n if (this.state?.tokenDeleteMsg?.length>0 && this.state.tokenDeleteMsg !== prevState.tokenDeleteMsg) {\r\n notifySuccess(this.state.tokenDeleteMsg)\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n const {mockListResponse, projectListResponse} = props\r\n if (mockListResponse?.data?.mockList?.length > 0) {\r\n if (props?.mockStatusResponse) {\r\n const getUpdatedStatus = (mocks, mock) => {\r\n const index = mocks.findIndex(obj => obj._id === mock._id)\r\n const mockClone = [...mocks]\r\n mockClone[index].mockStatus = mock.mockStatus\r\n return mockClone\r\n }\r\n return {\r\n ...state,\r\n mockListData: [\r\n ...getUpdatedStatus(mockListResponse.data.mockList, props.mockStatusResponse),\r\n ],\r\n }\r\n }\r\n return {\r\n ...state,\r\n mockListData: mockListResponse.data.mockList,\r\n totalMock: mockListResponse.data.totalMocks,\r\n allProjectName: projectListResponse?.data?.projectList,\r\n }\r\n }\r\n return {\r\n ...state,\r\n mockListData: [],\r\n totalMock: 0,\r\n allProjectName: projectListResponse?.data?.projectList,\r\n }\r\n }\r\n\r\n handleClickSearch(e) {\r\n e.preventDefault()\r\n this.setState(state => ({\r\n search: state.onChangeSearch,\r\n offset: 0,\r\n activePage: 1,\r\n }))\r\n }\r\n\r\n handleClickReset() {\r\n this.setState({\r\n search: '',\r\n onChangeSearch: '',\r\n offset: 0,\r\n activePage: 1,\r\n })\r\n }\r\n\r\n handleClearUser = () => {\r\n this.props.flushUserData()\r\n }\r\n\r\n handleAuthTypeModal(open) {\r\n this.setState({showAuthModal: open})\r\n }\r\n\r\n setDeleteTokenMsg() {\r\n this.setState({tokenDeleteMsg: \"Token deleted successfully\"})\r\n }\r\n\r\n transformData = Data => {\r\n const {mockList = {}} = Data\r\n const {API_BASE_URL} = process.env\r\n const mockArray = mockList.map(data => {\r\n return {\r\n name: data.projectName,\r\n description: '',\r\n item: data.allowedMethods.map(method => {\r\n return {\r\n name: `${method} -/${data.endpoint}`,\r\n request: {\r\n url: `${API_BASE_URL}${data.endpoint}`,\r\n method,\r\n header: [...data.headers],\r\n body: {\r\n mode: 'raw',\r\n raw: '',\r\n },\r\n description: '',\r\n },\r\n }\r\n }),\r\n }\r\n })\r\n const formattedData = {\r\n variables: [],\r\n info: {\r\n name: 'iRest: Rest API Simulator',\r\n _postman_id: '50578d9a-80f4-964c-b3f8-dd09c392bead',\r\n description: 'iRest',\r\n schema: 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json',\r\n },\r\n items: [...mockArray],\r\n protocolProfileBehavior: {},\r\n }\r\n return formattedData\r\n }\r\n\r\n handleDownloadButton = async (event, done) => {\r\n const mockList = await mockListService()\r\n const promises = await mockList.data.mockList.map(async infos => {\r\n const mockDetails = await editMockService({data: infos._id})\r\n return mockDetails\r\n })\r\n const details = await Promise.all(promises)\r\n details.forEach(mockValue => {\r\n const index = mockList.data.mockList.findIndex(\r\n item => item._id === mockValue.data.mock._id\r\n )\r\n const detailedMock = {...mockList.data.mockList[index], ...mockValue.data.mock}\r\n mockList.data.mockList[index] = detailedMock\r\n })\r\n const {data = {}} = mockList\r\n if (data) {\r\n const transformedData = this.transformData(data)\r\n const jsonString = `data:text/json;chatset=utf-8,${encodeURIComponent(\r\n JSON.stringify(transformedData)\r\n )}`\r\n const link = document.createElement('a')\r\n link.href = jsonString\r\n link.download = 'PostmanCollection.json'\r\n link.click()\r\n }\r\n }\r\n\r\n mockStatusChange(id, currentStatus) {\r\n if (currentStatus === 'enabled') {\r\n this.setState({mockStatus: 'disabled'}, () => {\r\n this.props.mockStatusAction({id, mockStatus: this.state.mockStatus})\r\n })\r\n } else {\r\n this.setState({mockStatus: 'enabled'}, () => {\r\n this.props.mockStatusAction({id, mockStatus: this.state.mockStatus})\r\n })\r\n }\r\n }\r\n\r\n openModal() {\r\n this.setState({show: true})\r\n }\r\n\r\n closeModal(closeRequest) {\r\n this.setState({show: closeRequest})\r\n }\r\n\r\n urlHit(method, endpoint) {\r\n const host = window.location.href.split('dashboard')\r\n const url = endpoint.split(host[0])\r\n\r\n if (method === 'GET') {\r\n const methodCall = '#get-/'\r\n const finalCall = methodCall + url[1]\r\n this.setState({urlShow: finalCall, show: true})\r\n } else if (method === 'POST') {\r\n const methodCall = '#post-/'\r\n const finalCall = methodCall + url[1]\r\n this.setState({urlShow: finalCall, show: true})\r\n } else {\r\n const methodCall = '#patch-/'\r\n const finalCall = methodCall + url[1]\r\n this.setState({urlShow: finalCall, show: true})\r\n }\r\n }\r\n\r\n deleteMockPopup(id) {\r\n const {limit, offset, search, serviceResponseType, projectName, sorting} = this.state\r\n\r\n this.props.deleteMockAction({id})\r\n\r\n this.props.mockListAction({\r\n limit,\r\n offset,\r\n sortBy: sorting.field,\r\n order: sorting.order,\r\n search,\r\n serviceResponseType,\r\n projectName,\r\n })\r\n\r\n notifySuccess('Mock deleted successfully!')\r\n }\r\n\r\n openDeleteModal() {\r\n this.setState({deleteModalShow: true})\r\n }\r\n\r\n closeDeleteModal(closeReq, isDelete) {\r\n this.setState({deleteModalShow: closeReq})\r\n if (isDelete) {\r\n this.deleteMockPopup(this.state.deleteId)\r\n }\r\n }\r\n\r\n openTokenModal() {\r\n this.setState({showTokenModal: true, tokenDeleteMsg: null})\r\n }\r\n\r\n closeTokenModal() {\r\n this.setState({showTokenModal: false})\r\n }\r\n\r\n openTokenDeleteModal(id) {\r\n this.setState({showTokenDelModal: true,showTokenModal: false, showAuthModal: false, tokenMockId: id})\r\n }\r\n\r\n closeDeleteTokenModal() {\r\n this.setState({showTokenDelModal: false,showTokenModal: true, showAuthModal: true,})\r\n }\r\n\r\n updateMockAuthType(payload) {\r\n this.props.updateAuthTypeAction(payload, true)\r\n }\r\n\r\n updateMockToken(payload) {\r\n this.props.updateTokenAction(payload, true)\r\n }\r\n\r\n render() {\r\n const {\r\n serviceResponseType,\r\n onChangeSearch,\r\n tableHeader,\r\n activePage,\r\n limit,\r\n totalMock,\r\n mockListData,\r\n projectName,\r\n } = this.state\r\n \r\n const searchProject = this.state.allProjectName\r\n\r\n const {isPending, isDeletePending, isUpdateAuthPending} = this.props\r\n return (\r\n <div className=\"mocklist-page\" style={{display: this.state.show ? 'none' : 'block'}}>\r\n <Nav\r\n pageTitle={mockListPageTitle}\r\n link={DashboardUrl}\r\n handleClearUser={this.handleClearUser}\r\n />\r\n <ModalPopup isOpen={this.state.deleteModalShow} closeDeleteModal={this.closeDeleteModal} />\r\n <DeleteTokenModal \r\n isOpen={this.state.showTokenDelModal} \r\n setDeleteTokenMsg ={this.setDeleteTokenMsg} \r\n closeTokenModal ={this.closeTokenModal} \r\n closeDeleteTokenModal={this.closeDeleteTokenModal} \r\n updateToken={this.updateMockToken} \r\n details = {this.state.mockdata}\r\n closeAuthModal={this.handleAuthTypeModal} \r\n isMock\r\n />\r\n <UpdateAuthTypeModal \r\n isMock\r\n mockdata = {this.state.mockdata} \r\n isOpen={this.state.showAuthModal} \r\n closeAuthModal={this.handleAuthTypeModal} \r\n updateMockAuthType={this.updateMockAuthType} \r\n updateToken={this.updateMockToken} \r\n tokenData={this.props.fetchToken?.data?.token}\r\n openTokenDeleteModal={this.openTokenDeleteModal}\r\n />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-sm-11 custom_offset_list\">\r\n <div className=\"card m-t-100 card-shadow\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex justify-content-between\">\r\n <div className=\"form-group w-100\">\r\n <label htmlFor=\"filter\" className=\"keyword-label\">\r\n Dashboard\r\n </label>\r\n <br />\r\n <br />\r\n <form className=\"d-flex flex-row\" onSubmit={e => this.handleClickSearch(e)}>\r\n <input\r\n className=\"form-control p-2 input-field\"\r\n type=\"text\"\r\n onChange={e => this.setState({onChangeSearch: e.target.value})}\r\n value={onChangeSearch}\r\n placeholder=\"Search\"\r\n aria-label=\"Recipient's username\"\r\n aria-describedby=\"basic-addon2\"\r\n />\r\n <button className=\"btn btn-outline-primary mx-1 button-text\" type=\"submit\">\r\n Search\r\n </button>\r\n <button\r\n className=\"btn btn-outline-danger button-text\"\r\n onClick={() => this.handleClickReset()}\r\n type=\"button\"\r\n >\r\n Reset\r\n </button>\r\n </form>\r\n <br />\r\n <div className=\"d-flex float-end\">\r\n <div className=\"form-group\">\r\n <label htmlFor=\"filter\" className=\"filter-label\">\r\n Filter By Project Name\r\n </label>\r\n <select\r\n onChange={e =>\r\n this.setState({offset: 0, projectName: e.target.value, activePage: 1})\r\n }\r\n value={projectName}\r\n className=\"form-control select-width input-field\"\r\n aria-label=\"Default select example\"\r\n >\r\n <option value=\"\">Select Project</option>\r\n {searchProject &&\r\n searchProject.length > 0 &&\r\n searchProject.map(item => (\r\n <option key={item.projectName} value={item.projectName}>\r\n {item.projectName}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n <div className=\"form-group ml-5\">\r\n <label htmlFor=\"filter\" className=\"filter-label\">\r\n Filter By API Type\r\n </label>\r\n <select\r\n onChange={e =>\r\n this.setState({\r\n offset: 0,\r\n serviceResponseType: e.target.value,\r\n activePage: 1,\r\n })\r\n }\r\n value={serviceResponseType}\r\n className=\"form-control select-width input-field\"\r\n aria-label=\"Default select example\"\r\n >\r\n <option value=\"\">Select API</option>\r\n <option value=\"default\">Fetch</option>\r\n <option value=\"save\">Save</option>\r\n </select>\r\n </div>\r\n {mockListData && mockListData.length > 0 && <div className=\"postman-table\">\r\n <Tooltips content=\"Export as Postman Collection\" direction=\"left\">\r\n <button className=\"tryme\" onClick={this.handleDownloadButton}>\r\n <img src={downloadIcon} alt=\"Download Icon\" />\r\n </button>\r\n </Tooltips>\r\n </div>}\r\n </div>\r\n </div>\r\n </div>\r\n {isPending || isDeletePending || isUpdateAuthPending ?(\r\n <Loader isOverlay /> \r\n ) : (\r\n <>\r\n\r\n <table className=\"table fs-13 mock-table\">\r\n <TableSorting\r\n tableHeader={tableHeader}\r\n onSorting={(field, order) => this.setState({sorting: {field, order}})}\r\n />\r\n <tbody>\r\n {mockListData &&\r\n mockListData.length > 0 &&\r\n mockListData.map(item => (\r\n <tr key={item._id}>\r\n <td>\r\n <div title={item.mockName} className=\"no_wrap_list mockname-label\">\r\n {item.mockName}\r\n </div>\r\n </td>\r\n <td>\r\n <div title={item.projectName} className=\"no_wrap_list project-label\">\r\n {item.projectName}\r\n </div>\r\n </td>\r\n <td>\r\n <div\r\n title={item.serviceResponseType}\r\n className=\"no_wrap_list api-wrap-label\"\r\n >\r\n {item.serviceResponseType === 'default'\r\n ? 'fetch'\r\n : item.serviceResponseType}\r\n </div>\r\n </td>\r\n <td style={{width: '200px'}} className=\"table-label\">\r\n <CopyBoard\r\n textBody={item.endpoint}\r\n method={item.allowedMethods.toString()}\r\n serviceResponseType={item.serviceResponseType}\r\n />\r\n </td>\r\n <td className=\"table-label\">{item.allowedMethods.toString()}</td>\r\n <td className=\"text-left\">\r\n <div className=\"d-flex \">\r\n <span className=\"table-label\">\r\n {startCase(item?.authenticationType?.replace(\"_\", \" \").toLowerCase())}\r\n </span>\r\n </div>\r\n </td>\r\n <td className=\"text-center table-label\">{item.statusCode}</td>\r\n <td className=\"text-center\">\r\n <div\r\n className=\"custom-control custom-switch\"\r\n style={this.state.deleteModalShow ? {display: 'none'} : {}}\r\n >\r\n <Tooltips content=\"Toggle Status\" direction=\"extreme\">\r\n <input\r\n data-testid=\"mockStatusId\"\r\n id={`${item._id}_tooltip`}\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n onChange={() =>\r\n this.mockStatusChange(item._id, item.mockStatus)\r\n }\r\n value={item.mockStatus === 'enabled' ? 'enabled' : 'disabled'}\r\n checked={item.mockStatus !== 'disabled'}\r\n />\r\n\r\n <label\r\n className=\"custom-control-label table-label\"\r\n data-testid=\"box\"\r\n htmlFor={`${item._id}_tooltip`}\r\n />\r\n </Tooltips>\r\n </div>\r\n </td>\r\n <td className=\"text-center\">\r\n <div className=\"d-flex \">\r\n <Tooltips content=\"Delete Mock\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n onClick={() => {\r\n this.openDeleteModal()\r\n this.setState({deleteId: item._id})\r\n }}\r\n >\r\n <img src={deleteIcon} alt=\"Delete Icon\" />\r\n </button>\r\n </Tooltips>\r\n <Tooltips content=\"Edit Mock\" direction=\"left\">\r\n <Link to={`${EditMockUrl}/${item._id}`}>\r\n <img src={editIcon} alt=\"edit_icon\" className=\"edit-icon\" />\r\n </Link>\r\n </Tooltips>\r\n <Tooltips content=\"Try Mock\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n onClick={() =>\r\n this.urlHit(item.allowedMethods[0], item.endpoint)\r\n }\r\n >\r\n <img src={previewEye} alt=\"Try out\" />\r\n </button>\r\n </Tooltips>\r\n <Tooltips content=\"API secret\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n onClick={() => {\r\n this.handleAuthTypeModal(true)\r\n this.props.fetchTokenAction(item?._id, true)\r\n this.setState({mockdata: item})\r\n }}\r\n >\r\n <img src={keyIcon} className=\"secret-key\" alt=\"API secret\" />\r\n </button>\r\n </Tooltips>\r\n </div>\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n <div className=\"record-container\">\r\n {this.props?.mockListResponse?.data?.mockList?.length === 0 && (\r\n <p className=\"record-label\">No record found.</p>\r\n )}\r\n </div>\r\n </>)}\r\n </div>\r\n \r\n </div>\r\n {totalMock > limit && (\r\n <div className=\"d-flex flex-row-reverse m-t-10\">\r\n <Pagination\r\n activePage={activePage}\r\n itemsCountPerPage={limit}\r\n totalItemsCount={totalMock}\r\n nextPageText=\"Next\"\r\n prevPageText=\"Prev\"\r\n itemClass=\"page-item\"\r\n linkClass=\"page-link\"\r\n onChange={value =>\r\n this.setState({activePage: value, offset: (value - 1) * limit})\r\n }\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"create-btn-wrapper\">\r\n <Tooltips content=\"Create Mock\" direction=\"left\">\r\n <Link to={createMockUrl}>\r\n <img src={addIcon} alt=\"add_icon\" />\r\n </Link>\r\n </Tooltips>\r\n </div>\r\n </div>\r\n <ModalShow\r\n isOpen={this.state.show}\r\n urlShowTo={this.state.urlShow}\r\n closeRequest={this.closeModal}\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n projectListResponse: state.projectList.response,\r\n mockListResponse: state.mockList.response,\r\n userState: state.login,\r\n mockStatusResponse: state.mockStatus.response.data.mock,\r\n isPending: state.mockList.isPending,\r\n updateMockAuthTypeRes: state.updateAuthType.response,\r\n fetchToken: state.fetchToken.response,\r\n updateMockToken: state.updateToken?.response,\r\n isDeletePending: state.deleteMock.isPending,\r\n isUpdateAuthPending: state.updateAuthType.isPending\r\n})\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n projectListAction,\r\n mockListAction,\r\n mockStatusAction,\r\n deleteMockAction,\r\n flushUserData,\r\n updateAuthTypeAction,\r\n fetchTokenAction,\r\n updateTokenAction,\r\n },\r\n dispatch\r\n )\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MockList)\r\n","export const mockListPageTitle = 'iRest'\r\n\r\nexport const createMockPageTitle = 'Create Mock'\r\n","import React, {useState, useEffect, useRef} from 'react'\r\nimport 'rapidoc'\r\nimport RapiDoc from '../common/RapiDoc'\r\nimport './style.css'\r\n\r\nfunction PreviewWrapper(props) {\r\n const dataRef = useRef(null)\r\n const [result, setResult] = useState({})\r\n\r\n const spec = () => {\r\n const strSpec = {\r\n swagger: '2.0',\r\n info: {\r\n description: '',\r\n version: '',\r\n title: '',\r\n termsOfService: '',\r\n contact: {\r\n email: '',\r\n },\r\n },\r\n host: 'iRest.swagger.io',\r\n basePath: '/v2',\r\n tags: [\r\n {\r\n name: 'iRest',\r\n description: 'Everything about iRest',\r\n externalDocs: {\r\n description: 'Find out more',\r\n url: 'http://swagger.io',\r\n },\r\n },\r\n ],\r\n paths: {...result},\r\n securityDefinitions: {\r\n api_key: {\r\n type: 'apiKey',\r\n name: 'api_key',\r\n in: 'header',\r\n },\r\n iRest_auth: {\r\n type: 'oauth2',\r\n authorizationUrl: 'https://iRest.swagger.io/oauth/authorize',\r\n flow: 'implicit',\r\n scopes: {\r\n 'read:iRest': 'read your iRest',\r\n 'write:iRest': 'modify iRest in your account',\r\n },\r\n },\r\n },\r\n definitions: {},\r\n externalDocs: {\r\n description: 'Find out more about Swagger',\r\n url: 'http://swagger.io',\r\n },\r\n }\r\n dataRef.current.loadSpec(strSpec)\r\n }\r\n\r\n useEffect(() => {\r\n spec()\r\n }, [result])\r\n\r\n useEffect(() => {\r\n if (props?.mock?.data?.mockUrl) {\r\n /* eslint-disable prefer-template */\r\n const newApi = '/api/mockPreview?tempId=' + props?.mock?.data?.id\r\n const method = props?.method.toLowerCase()\r\n const statusCode = props?.statusCode\r\n setResult({\r\n [newApi]: {\r\n [method]: {\r\n summary: '',\r\n description: props?.mock?.data?.mockName,\r\n operationId: '',\r\n consumes: ['multipart/form-data'],\r\n produces: ['application/json'],\r\n parameters: [],\r\n responses: {\r\n [statusCode]: {\r\n description: '',\r\n schema: {\r\n $ref: '#/definitions/iRest',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n })\r\n }\r\n }, [props.mock])\r\n\r\n return (\r\n <div className='preview-wrapper'>\r\n <RapiDoc\r\n style={{height: '100vh', width: '105%', marginLeft: '-20px', marginTop: '-20px'}}\r\n data={dataRef}\r\n renderStyle=\"focused\"\r\n showHeader=\"false\"\r\n showInfo=\"false\"\r\n allowAuthentication=\"false\"\r\n allowAdvancedSearch=\"false\"\r\n allowSpecFileLoad=\"false\"\r\n allowSearch=\"false\"\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PreviewWrapper\r\n","import React, {useEffect} from 'react'\r\nimport {Modal} from 'react-bootstrap'\r\nimport PreviewWrapper from './PreviewWrapper'\r\nimport './style.css'\r\nimport '../../assets/styles/style.css'\r\nimport preview_close from '../../assets/images/iRest_files/preview_close_button.svg'\r\nimport Loader from '../common/Loader'\r\n\r\nfunction Preview(props) {\r\n const [data, setData] = React.useState({})\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n\r\n useEffect(() => {\r\n if (props.createPreviewMock?.response?.mockResponse) {\r\n setData(props.createPreviewMock?.response)\r\n }\r\n if (props.isPending) {\r\n setIsLoading(true)\r\n }\r\n else if (!props.isPending) {\r\n setIsLoading(false)\r\n }\r\n }, [props.createPreviewMock?.response?.mockResponse, props.isPending])\r\n\r\n window.location.hash = ''\r\n\r\n return (\r\n <div>\r\n {isLoading ? (<Loader isOverlay />):( <Modal show={props.modalOpen} onHide={() => props.setModalOpen(false)} data-testId=\"previewmodal\">\r\n <Modal.Body className=\"modalBody\">\r\n <div className=\"rapidoc-modal\">\r\n <PreviewWrapper mock={data} method={props?.values.allowedMethods[0] || \"GET\"} statusCode={props?.statusCode} />\r\n </div>\r\n </Modal.Body>\r\n <span className=\"rapidoc-close-btn\">\r\n <span\r\n onClick={() => {\r\n props.setModalOpen(false)\r\n }}\r\n >\r\n <img src={preview_close} alt=\"preview_close_button\" className=\"preview-close-button\" />\r\n </span>\r\n </span>\r\n </Modal>)}\r\n \r\n </div>\r\n )\r\n}\r\n\r\nexport default Preview\r\n","import React, {\r\n Component\r\n} from 'react'\r\nimport JSONEditor from 'jsoneditor'\r\nimport 'jsoneditor/dist/jsoneditor.css'\r\nimport './JsonEditor.css'\r\n\r\nexport default class JsonEditor extends Component {\r\n componentDidMount() {\r\n const that = this\r\n const options = {\r\n ...this.props,\r\n onValidationError(errors) {\r\n if (errors.length > 0) {\r\n that.props.setJsonEditorError(true)\r\n } else {\r\n that.props.setJsonEditorError(false)\r\n }\r\n },\r\n }\r\n delete options.json\r\n delete options.text\r\n this.jsoneditor = new JSONEditor(this.container, options)\r\n if ('json' in this.props) {\r\n this.jsoneditor.set(this.props.json)\r\n }\r\n if ('text' in this.props) {\r\n this.jsoneditor.setText(this.props.text)\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if ('json' in this.props) {\r\n this.jsoneditor.update(this.props.json)\r\n }\r\n if ('text' in this.props) {\r\n this.jsoneditor.updateText(this.props.text)\r\n }\r\n if ('mode' in this.props) {\r\n this.jsoneditor.setMode(this.props.mode)\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.jsoneditor) {\r\n this.jsoneditor.destroy()\r\n }\r\n }\r\n\r\n render() {\r\n return ( <\r\n div className = \"jsoneditor-react-container\"\r\n style = {\r\n {\r\n minHeight: `${this.props.mode}==='tree` ? '310px' : 'auto',\r\n paddingBottom: '35px'\r\n }\r\n }\r\n ref = {\r\n (elem) => {\r\n this.container = elem\r\n }\r\n }\r\n />\r\n )\r\n }\r\n}\r\n","import React, {Component} from 'react'\r\nimport JSONEditor from 'jsoneditor'\r\nimport 'jsoneditor/dist/jsoneditor.css'\r\nimport './JsonEditor.css'\r\nimport isEqual from 'lodash/isEqual'\r\n\r\nexport default class JsonEditorKey extends Component {\r\n componentDidMount() {\r\n const that = this\r\n const options = {\r\n ...this.props,\r\n onEditable(node) {\r\n return false\r\n },\r\n onClassName({path}) {\r\n if (that.props.value.length > 0) {\r\n const data = JSON.parse(that.props.value)\r\n return isEqual(data, path) ? 'different_element' : 'the_same_element'\r\n }\r\n },\r\n onCreateMenu(items, node) {\r\n const {\r\n path\r\n } = node\r\n if (typeof path.slice(-1)[0] === \"string\") {\r\n const {dynamicKeys, setDynamicKeys} = that.props\r\n if ( dynamicKeys.length === path.length && dynamicKeys.slice(-1)[0] === path.slice(-1)[0] ) {\r\n setDynamicKeys([''])\r\n } else {\r\n setDynamicKeys(path)\r\n }\r\n }\r\n },\r\n }\r\n delete options.json\r\n delete options.text\r\n this.jsoneditor = new JSONEditor(this.container, options)\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.IsJsonString(this.props.text)) {\r\n if ('text' in this.props) {\r\n this.jsoneditor.setText(this.props.text)\r\n }\r\n }\r\n this.jsoneditor.expandAll()\r\n this.jsoneditor.refresh()\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.jsoneditor) {\r\n this.jsoneditor.destroy()\r\n }\r\n }\r\n\r\n IsJsonString(str) {\r\n try {\r\n const json = JSON.parse(str)\r\n return typeof json === 'object'\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"container\"\r\n className=\"jsoneditor-react-container\"\r\n style={{\r\n minHeight: `${this.props.mode}==='tree` ? '310px' : 'auto',\r\n }}\r\n ref={elem => {\r\n this.container = elem\r\n }}\r\n />\r\n )\r\n }\r\n}\r\n","const fakerObj = {\r\n\t\"address\": [{\r\n\t\t\"key\": \"buildingNumber\",\r\n\t\t\"value\": \"buildingNumber\",\r\n\t\t\"displayValue\": \"$address.buildingNumber\"\r\n\t}, {\r\n\t\t\"key\": \"cardinalDirection\",\r\n\t\t\"value\": \"cardinalDirection\",\r\n\t\t\"displayValue\": \"$address.cardinalDirection\"\r\n\t}, {\r\n\t\t\"key\": \"city\",\r\n\t\t\"value\": \"city\",\r\n\t\t\"displayValue\": \"$address.city\"\r\n\t}, {\r\n\t\t\"key\": \"cityName\",\r\n\t\t\"value\": \"cityName\",\r\n\t\t\"displayValue\": \"$address.cityName\"\r\n\t}, {\r\n\t\t\"key\": \"country\",\r\n\t\t\"value\": \"country\",\r\n\t\t\"displayValue\": \"$address.country\"\r\n\t}, {\r\n\t\t\"key\": \"countryCode\",\r\n\t\t\"value\": \"countryCode\",\r\n\t\t\"displayValue\": \"$address.countryCode\"\r\n\t}, {\r\n\t\t\"key\": \"county\",\r\n\t\t\"value\": \"county\",\r\n\t\t\"displayValue\": \"$address.county\"\r\n\t}, {\r\n\t\t\"key\": \"direction\",\r\n\t\t\"value\": \"direction\",\r\n\t\t\"displayValue\": \"$address.direction\"\r\n\t}, {\r\n\t\t\"key\": \"latitude\",\r\n\t\t\"value\": \"latitude\",\r\n\t\t\"displayValue\": \"$address.latitude\"\r\n\t}, {\r\n\t\t\"key\": \"longitude\",\r\n\t\t\"value\": \"longitude\",\r\n\t\t\"displayValue\": \"$address.longitude\"\r\n\t}, {\r\n\t\t\"key\": \"nearbyGPSCoordinate\",\r\n\t\t\"value\": \"nearbyGPSCoordinate\",\r\n\t\t\"displayValue\": \"$address.nearbyGPSCoordinate\"\r\n\t}, {\r\n\t\t\"key\": \"ordinalDirection\",\r\n\t\t\"value\": \"ordinalDirection\",\r\n\t\t\"displayValue\": \"$address.ordinalDirection\"\r\n\t}, {\r\n\t\t\"key\": \"secondaryAddress\",\r\n\t\t\"value\": \"secondaryAddress\",\r\n\t\t\"displayValue\": \"$address.secondaryAddress\"\r\n\t}, {\r\n\t\t\"key\": \"state\",\r\n\t\t\"value\": \"state\",\r\n\t\t\"displayValue\": \"$address.state\"\r\n\t}, {\r\n\t\t\"key\": \"stateAbbr\",\r\n\t\t\"value\": \"stateAbbr\",\r\n\t\t\"displayValue\": \"$address.stateAbbr\"\r\n\t}, {\r\n\t\t\"key\": \"street\",\r\n\t\t\"value\": \"street\",\r\n\t\t\"displayValue\": \"$address.street\"\r\n\t}, {\r\n\t\t\"key\": \"streetAddress\",\r\n\t\t\"value\": \"streetAddress\",\r\n\t\t\"displayValue\": \"$address.streetAddress\"\r\n\t}, {\r\n\t\t\"key\": \"streetName\",\r\n\t\t\"value\": \"streetName\",\r\n\t\t\"displayValue\": \"$address.streetName\"\r\n\t}, {\r\n\t\t\"key\": \"timeZone\",\r\n\t\t\"value\": \"timeZone\",\r\n\t\t\"displayValue\": \"$address.timeZone\"\r\n\t}, {\r\n\t\t\"key\": \"zipCode\",\r\n\t\t\"value\": \"zipCode\",\r\n\t\t\"displayValue\": \"$address.zipCode\"\r\n\t}, {\r\n\t\t\"key\": \"zipCodeByState\",\r\n\t\t\"value\": \"zipCodeByState\",\r\n\t\t\"displayValue\": \"$address.zipCodeByState\"\r\n\t}],\r\n\t\"animal\": [{\r\n\t\t\"key\": \"bear\",\r\n\t\t\"value\": \"bear\",\r\n\t\t\"displayValue\": \"$animal.bear\"\r\n\t}, {\r\n\t\t\"key\": \"bird\",\r\n\t\t\"value\": \"bird\",\r\n\t\t\"displayValue\": \"$animal.bird\"\r\n\t}, {\r\n\t\t\"key\": \"cat\",\r\n\t\t\"value\": \"cat\",\r\n\t\t\"displayValue\": \"$animal.cat\"\r\n\t}, {\r\n\t\t\"key\": \"cetacean\",\r\n\t\t\"value\": \"cetacean\",\r\n\t\t\"displayValue\": \"$animal.cetacean\"\r\n\t}, {\r\n\t\t\"key\": \"cow\",\r\n\t\t\"value\": \"cow\",\r\n\t\t\"displayValue\": \"$animal.cow\"\r\n\t}, {\r\n\t\t\"key\": \"crocodilia\",\r\n\t\t\"value\": \"crocodilia\",\r\n\t\t\"displayValue\": \"$animal.crocodilia\"\r\n\t}, {\r\n\t\t\"key\": \"dog\",\r\n\t\t\"value\": \"dog\",\r\n\t\t\"displayValue\": \"$animal.dog\"\r\n\t}, {\r\n\t\t\"key\": \"fish\",\r\n\t\t\"value\": \"fish\",\r\n\t\t\"displayValue\": \"$animal.fish\"\r\n\t}, {\r\n\t\t\"key\": \"horse\",\r\n\t\t\"value\": \"horse\",\r\n\t\t\"displayValue\": \"$animal.horse\"\r\n\t}, {\r\n\t\t\"key\": \"insect\",\r\n\t\t\"value\": \"insect\",\r\n\t\t\"displayValue\": \"$animal.insect\"\r\n\t}, {\r\n\t\t\"key\": \"lion\",\r\n\t\t\"value\": \"lion\",\r\n\t\t\"displayValue\": \"$animal.lion\"\r\n\t}, {\r\n\t\t\"key\": \"rabbit\",\r\n\t\t\"value\": \"rabbit\",\r\n\t\t\"displayValue\": \"$animal.rabbit\"\r\n\t}, {\r\n\t\t\"key\": \"snake\",\r\n\t\t\"value\": \"snake\",\r\n\t\t\"displayValue\": \"$animal.snake\"\r\n\t}, {\r\n\t\t\"key\": \"type\",\r\n\t\t\"value\": \"type\",\r\n\t\t\"displayValue\": \"$animal.type\"\r\n\t}],\r\n\t\"color\": [{\r\n\t\t\"key\": \"cmyk\",\r\n\t\t\"value\": \"cmyk\",\r\n\t\t\"displayValue\": \"$color.cmyk\"\r\n\t}, {\r\n\t\t\"key\": \"colorByCSSColorSpace\",\r\n\t\t\"value\": \"colorByCSSColorSpace\",\r\n\t\t\"displayValue\": \"$color.colorByCSSColorSpace\"\r\n\t}, {\r\n\t\t\"key\": \"cssSupportedFunction\",\r\n\t\t\"value\": \"cssSupportedFunction\",\r\n\t\t\"displayValue\": \"$color.cssSupportedFunction\"\r\n\t}, {\r\n\t\t\"key\": \"cssSupportedSpace\",\r\n\t\t\"value\": \"cssSupportedSpace\",\r\n\t\t\"displayValue\": \"$color.cssSupportedSpace\"\r\n\t}, {\r\n\t\t\"key\": \"hsl\",\r\n\t\t\"value\": \"hsl\",\r\n\t\t\"displayValue\": \"$color.hsl\"\r\n\t}, {\r\n\t\t\"key\": \"human\",\r\n\t\t\"value\": \"human\",\r\n\t\t\"displayValue\": \"$color.human\"\r\n\t}, {\r\n\t\t\"key\": \"hwb\",\r\n\t\t\"value\": \"hwb\",\r\n\t\t\"displayValue\": \"$color.hwb\"\r\n\t}, {\r\n\t\t\"key\": \"lab\",\r\n\t\t\"value\": \"lab\",\r\n\t\t\"displayValue\": \"$color.lab\"\r\n\t}, {\r\n\t\t\"key\": \"lch\",\r\n\t\t\"value\": \"lch\",\r\n\t\t\"displayValue\": \"$color.lch\"\r\n\t}, {\r\n\t\t\"key\": \"rgb\",\r\n\t\t\"value\": \"rgb\",\r\n\t\t\"displayValue\": \"$color.rgb\"\r\n\t}, {\r\n\t\t\"key\": \"space\",\r\n\t\t\"value\": \"space\",\r\n\t\t\"displayValue\": \"$color.space\"\r\n\t}],\r\n\t\"commerce\": [{\r\n\t\t\"key\": \"department\",\r\n\t\t\"value\": \"department\",\r\n\t\t\"displayValue\": \"$commerce.department\"\r\n\t}, {\r\n\t\t\"key\": \"price\",\r\n\t\t\"value\": \"price\",\r\n\t\t\"displayValue\": \"$commerce.price\"\r\n\t}, {\r\n\t\t\"key\": \"product\",\r\n\t\t\"value\": \"product\",\r\n\t\t\"displayValue\": \"$commerce.product\"\r\n\t}, {\r\n\t\t\"key\": \"productAdjective\",\r\n\t\t\"value\": \"productAdjective\",\r\n\t\t\"displayValue\": \"$commerce.productAdjective\"\r\n\t}, {\r\n\t\t\"key\": \"productDescription\",\r\n\t\t\"value\": \"productDescription\",\r\n\t\t\"displayValue\": \"$commerce.productDescription\"\r\n\t}, {\r\n\t\t\"key\": \"productMaterial\",\r\n\t\t\"value\": \"productMaterial\",\r\n\t\t\"displayValue\": \"$commerce.productMaterial\"\r\n\t}, {\r\n\t\t\"key\": \"productName\",\r\n\t\t\"value\": \"productName\",\r\n\t\t\"displayValue\": \"$commerce.productName\"\r\n\t}],\r\n\t\"company\": [{\r\n\t\t\"key\": \"bs\",\r\n\t\t\"value\": \"bs\",\r\n\t\t\"displayValue\": \"$company.bs\"\r\n\t}, {\r\n\t\t\"key\": \"bsAdjective\",\r\n\t\t\"value\": \"bsAdjective\",\r\n\t\t\"displayValue\": \"$company.bsAdjective\"\r\n\t}, {\r\n\t\t\"key\": \"bsBuzz\",\r\n\t\t\"value\": \"bsBuzz\",\r\n\t\t\"displayValue\": \"$company.bsBuzz\"\r\n\t}, {\r\n\t\t\"key\": \"bsNoun\",\r\n\t\t\"value\": \"bsNoun\",\r\n\t\t\"displayValue\": \"$company.bsNoun\"\r\n\t}, {\r\n\t\t\"key\": \"catchPhrase\",\r\n\t\t\"value\": \"catchPhrase\",\r\n\t\t\"displayValue\": \"$company.catchPhrase\"\r\n\t}, {\r\n\t\t\"key\": \"catchPhraseAdjective\",\r\n\t\t\"value\": \"catchPhraseAdjective\",\r\n\t\t\"displayValue\": \"$company.catchPhraseAdjective\"\r\n\t}, {\r\n\t\t\"key\": \"catchPhraseDescriptor\",\r\n\t\t\"value\": \"catchPhraseDescriptor\",\r\n\t\t\"displayValue\": \"$company.catchPhraseDescriptor\"\r\n\t}, {\r\n\t\t\"key\": \"catchPhraseNoun\",\r\n\t\t\"value\": \"catchPhraseNoun\",\r\n\t\t\"displayValue\": \"$company.catchPhraseNoun\"\r\n\t}, {\r\n\t\t\"key\": \"companySuffix\",\r\n\t\t\"value\": \"companySuffix\",\r\n\t\t\"displayValue\": \"$company.companySuffix\"\r\n\t}, {\r\n\t\t\"key\": \"name\",\r\n\t\t\"value\": \"name\",\r\n\t\t\"displayValue\": \"$company.name\"\r\n\t}, {\r\n\t\t\"key\": \"suffixes\",\r\n\t\t\"value\": \"suffixes\",\r\n\t\t\"displayValue\": \"$company.suffixes\"\r\n\t}],\r\n\t\"database\": [{\r\n\t\t\"key\": \"collation\",\r\n\t\t\"value\": \"collation\",\r\n\t\t\"displayValue\": \"$database.collation\"\r\n\t}, {\r\n\t\t\"key\": \"column\",\r\n\t\t\"value\": \"column\",\r\n\t\t\"displayValue\": \"$database.column\"\r\n\t}, {\r\n\t\t\"key\": \"engine\",\r\n\t\t\"value\": \"engine\",\r\n\t\t\"displayValue\": \"$database.engine\"\r\n\t}, {\r\n\t\t\"key\": \"mongodbObjectId\",\r\n\t\t\"value\": \"mongodbObjectId\",\r\n\t\t\"displayValue\": \"$database.mongodbObjectId\"\r\n\t}, {\r\n\t\t\"key\": \"type\",\r\n\t\t\"value\": \"type\",\r\n\t\t\"displayValue\": \"$database.type\"\r\n\t}],\r\n\t\"datatype\": [{\r\n\t\t\"key\": \"array\",\r\n\t\t\"value\": \"array\",\r\n\t\t\"displayValue\": \"$datatype.array\"\r\n\t}, {\r\n\t\t\"key\": \"bigInt\",\r\n\t\t\"value\": \"bigInt\",\r\n\t\t\"displayValue\": \"$datatype.bigInt\"\r\n\t}, {\r\n\t\t\"key\": \"boolean\",\r\n\t\t\"value\": \"boolean\",\r\n\t\t\"displayValue\": \"$datatype.boolean\"\r\n\t}, {\r\n\t\t\"key\": \"datetime\",\r\n\t\t\"value\": \"datetime\",\r\n\t\t\"displayValue\": \"$datatype.datetime\"\r\n\t}, {\r\n\t\t\"key\": \"float\",\r\n\t\t\"value\": \"float\",\r\n\t\t\"displayValue\": \"$datatype.float\"\r\n\t}, {\r\n\t\t\"key\": \"hexadecimal\",\r\n\t\t\"value\": \"hexadecimal\",\r\n\t\t\"displayValue\": \"$datatype.hexadecimal\"\r\n\t}, {\r\n\t\t\"key\": \"json\",\r\n\t\t\"value\": \"json\",\r\n\t\t\"displayValue\": \"$datatype.json\"\r\n\t}, {\r\n\t\t\"key\": \"number\",\r\n\t\t\"value\": \"number\",\r\n\t\t\"displayValue\": \"$datatype.number\"\r\n\t}, {\r\n\t\t\"key\": \"string\",\r\n\t\t\"value\": \"string\",\r\n\t\t\"displayValue\": \"$datatype.string\"\r\n\t}, {\r\n\t\t\"key\": \"uuid\",\r\n\t\t\"value\": \"uuid\",\r\n\t\t\"displayValue\": \"$datatype.uuid\"\r\n\t}],\r\n\t\"date\": [{\r\n\t\t\"key\": \"between\",\r\n\t\t\"value\": \"between\",\r\n\t\t\"displayValue\": \"$date.between\"\r\n\t}, {\r\n\t\t\"key\": \"betweens\",\r\n\t\t\"value\": \"betweens\",\r\n\t\t\"displayValue\": \"$date.betweens\"\r\n\t}, {\r\n\t\t\"key\": \"birthdate\",\r\n\t\t\"value\": \"birthdate\",\r\n\t\t\"displayValue\": \"$date.birthdate\"\r\n\t}, {\r\n\t\t\"key\": \"future\",\r\n\t\t\"value\": \"future\",\r\n\t\t\"displayValue\": \"$date.future\"\r\n\t}, {\r\n\t\t\"key\": \"month\",\r\n\t\t\"value\": \"month\",\r\n\t\t\"displayValue\": \"$date.month\"\r\n\t}, {\r\n\t\t\"key\": \"past\",\r\n\t\t\"value\": \"past\",\r\n\t\t\"displayValue\": \"$date.past\"\r\n\t}, {\r\n\t\t\"key\": \"recent\",\r\n\t\t\"value\": \"recent\",\r\n\t\t\"displayValue\": \"$date.recent\"\r\n\t}, {\r\n\t\t\"key\": \"soon\",\r\n\t\t\"value\": \"soon\",\r\n\t\t\"displayValue\": \"$date.soon\"\r\n\t}, {\r\n\t\t\"key\": \"weekday\",\r\n\t\t\"value\": \"weekday\",\r\n\t\t\"displayValue\": \"$date.weekday\"\r\n\t}],\r\n\t\"finance\": [{\r\n\t\t\"key\": \"account\",\r\n\t\t\"value\": \"account\",\r\n\t\t\"displayValue\": \"$finance.account\"\r\n\t}, {\r\n\t\t\"key\": \"accountName\",\r\n\t\t\"value\": \"accountName\",\r\n\t\t\"displayValue\": \"$finance.accountName\"\r\n\t}, {\r\n\t\t\"key\": \"amount\",\r\n\t\t\"value\": \"amount\",\r\n\t\t\"displayValue\": \"$finance.amount\"\r\n\t}, {\r\n\t\t\"key\": \"bic\",\r\n\t\t\"value\": \"bic\",\r\n\t\t\"displayValue\": \"$finance.bic\"\r\n\t}, {\r\n\t\t\"key\": \"bitcoinAddress\",\r\n\t\t\"value\": \"bitcoinAddress\",\r\n\t\t\"displayValue\": \"$finance.bitcoinAddress\"\r\n\t}, {\r\n\t\t\"key\": \"creditCardCVV\",\r\n\t\t\"value\": \"creditCardCVV\",\r\n\t\t\"displayValue\": \"$finance.creditCardCVV\"\r\n\t}, {\r\n\t\t\"key\": \"creditCardIssuer\",\r\n\t\t\"value\": \"creditCardIssuer\",\r\n\t\t\"displayValue\": \"$finance.creditCardIssuer\"\r\n\t}, {\r\n\t\t\"key\": \"creditCardNumber\",\r\n\t\t\"value\": \"creditCardNumber\",\r\n\t\t\"displayValue\": \"$finance.creditCardNumber\"\r\n\t}, {\r\n\t\t\"key\": \"currencyName\",\r\n\t\t\"value\": \"currencyName\",\r\n\t\t\"displayValue\": \"$finance.currencyName\"\r\n\t}, {\r\n\t\t\"key\": \"currencySymbol\",\r\n\t\t\"value\": \"currencySymbol\",\r\n\t\t\"displayValue\": \"$finance.currencySymbol\"\r\n\t}, {\r\n\t\t\"key\": \"ethereumAddress\",\r\n\t\t\"value\": \"ethereumAddress\",\r\n\t\t\"displayValue\": \"$finance.ethereumAddress\"\r\n\t}, {\r\n\t\t\"key\": \"iban\",\r\n\t\t\"value\": \"iban\",\r\n\t\t\"displayValue\": \"$finance.iban\"\r\n\t}, {\r\n\t\t\"key\": \"litecoinAddress\",\r\n\t\t\"value\": \"litecoinAddress\",\r\n\t\t\"displayValue\": \"$finance.litecoinAddress\"\r\n\t}, {\r\n\t\t\"key\": \"mask\",\r\n\t\t\"value\": \"mask\",\r\n\t\t\"displayValue\": \"$finance.mask\"\r\n\t}, {\r\n\t\t\"key\": \"pin\",\r\n\t\t\"value\": \"pin\",\r\n\t\t\"displayValue\": \"$finance.pin\"\r\n\t}, {\r\n\t\t\"key\": \"routingNumber\",\r\n\t\t\"value\": \"routingNumber\",\r\n\t\t\"displayValue\": \"$finance.routingNumber\"\r\n\t}, {\r\n\t\t\"key\": \"transactionDescription\",\r\n\t\t\"value\": \"transactionDescription\",\r\n\t\t\"displayValue\": \"$finance.transactionDescription\"\r\n\t}, {\r\n\t\t\"key\": \"transactionType\",\r\n\t\t\"value\": \"transactionType\",\r\n\t\t\"displayValue\": \"$finance.transactionType\"\r\n\t}],\r\n\t\"git\": [{\r\n\t\t\"key\": \"branch\",\r\n\t\t\"value\": \"branch\",\r\n\t\t\"displayValue\": \"$git.branch\"\r\n\t}, {\r\n\t\t\"key\": \"commitEntry\",\r\n\t\t\"value\": \"commitEntry\",\r\n\t\t\"displayValue\": \"$git.commitEntry\"\r\n\t}, {\r\n\t\t\"key\": \"commitMessage\",\r\n\t\t\"value\": \"commitMessage\",\r\n\t\t\"displayValue\": \"$git.commitMessage\"\r\n\t}, {\r\n\t\t\"key\": \"commitSha\",\r\n\t\t\"value\": \"commitSha\",\r\n\t\t\"displayValue\": \"$git.commitSha\"\r\n\t}, {\r\n\t\t\"key\": \"shortSha\",\r\n\t\t\"value\": \"shortSha\",\r\n\t\t\"displayValue\": \"$git.shortSha\"\r\n\t}],\r\n\t\"hacker\": [{\r\n\t\t\"key\": \"abbreviation\",\r\n\t\t\"value\": \"abbreviation\",\r\n\t\t\"displayValue\": \"$hacker.abbreviation\"\r\n\t}, {\r\n\t\t\"key\": \"adjective\",\r\n\t\t\"value\": \"adjective\",\r\n\t\t\"displayValue\": \"$hacker.adjective\"\r\n\t}, {\r\n\t\t\"key\": \"ingverb\",\r\n\t\t\"value\": \"ingverb\",\r\n\t\t\"displayValue\": \"$hacker.ingverb\"\r\n\t}, {\r\n\t\t\"key\": \"noun\",\r\n\t\t\"value\": \"noun\",\r\n\t\t\"displayValue\": \"$hacker.noun\"\r\n\t}, {\r\n\t\t\"key\": \"phrase\",\r\n\t\t\"value\": \"phrase\",\r\n\t\t\"displayValue\": \"$hacker.phrase\"\r\n\t}, {\r\n\t\t\"key\": \"verb\",\r\n\t\t\"value\": \"verb\",\r\n\t\t\"displayValue\": \"$hacker.verb\"\r\n\t}],\r\n\t\"helpers\": [{\r\n\t\t\"key\": \"arrayElement\",\r\n\t\t\"value\": \"arrayElement\",\r\n\t\t\"displayValue\": \"$helpers.arrayElement\"\r\n\t}, {\r\n\t\t\"key\": \"arrayElements\",\r\n\t\t\"value\": \"arrayElements\",\r\n\t\t\"displayValue\": \"$helpers.arrayElements\"\r\n\t}, {\r\n\t\t\"key\": \"maybe\",\r\n\t\t\"value\": \"maybe\",\r\n\t\t\"displayValue\": \"$helpers.maybe\"\r\n\t}, {\r\n\t\t\"key\": \"mustache\",\r\n\t\t\"value\": \"mustache\",\r\n\t\t\"displayValue\": \"$helpers.mustache\"\r\n\t}, {\r\n\t\t\"key\": \"objectKey\",\r\n\t\t\"value\": \"objectKey\",\r\n\t\t\"displayValue\": \"$helpers.objectKey\"\r\n\t}, {\r\n\t\t\"key\": \"objectValue\",\r\n\t\t\"value\": \"objectValue\",\r\n\t\t\"displayValue\": \"$helpers.objectValue\"\r\n\t}, {\r\n\t\t\"key\": \"regexpStyleStringParse\",\r\n\t\t\"value\": \"regexpStyleStringParse\",\r\n\t\t\"displayValue\": \"$helpers.regexpStyleStringParse\"\r\n\t}, {\r\n\t\t\"key\": \"replaceCreditCardSymbols\",\r\n\t\t\"value\": \"replaceCreditCardSymbols\",\r\n\t\t\"displayValue\": \"$helpers.replaceCreditCardSymbols\"\r\n\t}, {\r\n\t\t\"key\": \"replaceSymbolWithNumber\",\r\n\t\t\"value\": \"replaceSymbolWithNumber\",\r\n\t\t\"displayValue\": \"$helpers.replaceSymbolWithNumber\"\r\n\t}, {\r\n\t\t\"key\": \"replaceSymbols\",\r\n\t\t\"value\": \"replaceSymbols\",\r\n\t\t\"displayValue\": \"$helpers.replaceSymbols\"\r\n\t}, {\r\n\t\t\"key\": \"shuffle\",\r\n\t\t\"value\": \"shuffle\",\r\n\t\t\"displayValue\": \"$helpers.shuffle\"\r\n\t}, {\r\n\t\t\"key\": \"slugify\",\r\n\t\t\"value\": \"slugify\",\r\n\t\t\"displayValue\": \"$helpers.slugify\"\r\n\t}, {\r\n\t\t\"key\": \"uniqueArray\",\r\n\t\t\"value\": \"uniqueArray\",\r\n\t\t\"displayValue\": \"$helpers.uniqueArray\"\r\n\t}],\r\n\t\"image\": [{\r\n\t\t\"key\": \"abstract\",\r\n\t\t\"value\": \"abstract\",\r\n\t\t\"displayValue\": \"$image.abstract\"\r\n\t}, {\r\n\t\t\"key\": \"animals\",\r\n\t\t\"value\": \"animals\",\r\n\t\t\"displayValue\": \"$image.animals\"\r\n\t}, {\r\n\t\t\"key\": \"avatar\",\r\n\t\t\"value\": \"avatar\",\r\n\t\t\"displayValue\": \"$image.avatar\"\r\n\t}, {\r\n\t\t\"key\": \"business\",\r\n\t\t\"value\": \"business\",\r\n\t\t\"displayValue\": \"$image.business\"\r\n\t}, {\r\n\t\t\"key\": \"cats\",\r\n\t\t\"value\": \"cats\",\r\n\t\t\"displayValue\": \"$image.cats\"\r\n\t}, {\r\n\t\t\"key\": \"city\",\r\n\t\t\"value\": \"city\",\r\n\t\t\"displayValue\": \"$image.city\"\r\n\t}, {\r\n\t\t\"key\": \"dataUri\",\r\n\t\t\"value\": \"dataUri\",\r\n\t\t\"displayValue\": \"$image.dataUri\"\r\n\t}, {\r\n\t\t\"key\": \"fashion\",\r\n\t\t\"value\": \"fashion\",\r\n\t\t\"displayValue\": \"$image.fashion\"\r\n\t}, {\r\n\t\t\"key\": \"food\",\r\n\t\t\"value\": \"food\",\r\n\t\t\"displayValue\": \"$image.food\"\r\n\t}, {\r\n\t\t\"key\": \"image\",\r\n\t\t\"value\": \"image\",\r\n\t\t\"displayValue\": \"$image.image\"\r\n\t}, {\r\n\t\t\"key\": \"imageUrl\",\r\n\t\t\"value\": \"imageUrl\",\r\n\t\t\"displayValue\": \"$image.imageUrl\"\r\n\t}, {\r\n\t\t\"key\": \"nature\",\r\n\t\t\"value\": \"nature\",\r\n\t\t\"displayValue\": \"$image.nature\"\r\n\t}, {\r\n\t\t\"key\": \"people\",\r\n\t\t\"value\": \"people\",\r\n\t\t\"displayValue\": \"$image.people\"\r\n\t}, {\r\n\t\t\"key\": \"sports\",\r\n\t\t\"value\": \"sports\",\r\n\t\t\"displayValue\": \"$image.sports\"\r\n\t}, {\r\n\t\t\"key\": \"technics\",\r\n\t\t\"value\": \"technics\",\r\n\t\t\"displayValue\": \"$image.technics\"\r\n\t}, {\r\n\t\t\"key\": \"transport\",\r\n\t\t\"value\": \"transport\",\r\n\t\t\"displayValue\": \"$image.transport\"\r\n\t}],\r\n\t\"internet\": [{\r\n\t\t\"key\": \"avatar\",\r\n\t\t\"value\": \"avatar\",\r\n\t\t\"displayValue\": \"$internet.avatar\"\r\n\t}, {\r\n\t\t\"key\": \"color\",\r\n\t\t\"value\": \"color\",\r\n\t\t\"displayValue\": \"$internet.color\"\r\n\t}, {\r\n\t\t\"key\": \"domainName\",\r\n\t\t\"value\": \"domainName\",\r\n\t\t\"displayValue\": \"$internet.domainName\"\r\n\t}, {\r\n\t\t\"key\": \"domainSuffix\",\r\n\t\t\"value\": \"domainSuffix\",\r\n\t\t\"displayValue\": \"$internet.domainSuffix\"\r\n\t}, {\r\n\t\t\"key\": \"domainWord\",\r\n\t\t\"value\": \"domainWord\",\r\n\t\t\"displayValue\": \"$internet.domainWord\"\r\n\t}, {\r\n\t\t\"key\": \"email\",\r\n\t\t\"value\": \"email\",\r\n\t\t\"displayValue\": \"$internet.email\"\r\n\t}, {\r\n\t\t\"key\": \"emoji\",\r\n\t\t\"value\": \"emoji\",\r\n\t\t\"displayValue\": \"$internet.emoji\"\r\n\t}, {\r\n\t\t\"key\": \"exampleEmail\",\r\n\t\t\"value\": \"exampleEmail\",\r\n\t\t\"displayValue\": \"$internet.exampleEmail\"\r\n\t}, {\r\n\t\t\"key\": \"httpvalue\",\r\n\t\t\"value\": \"httpvalue\",\r\n\t\t\"displayValue\": \"$internet.httpvalue\"\r\n\t}, {\r\n\t\t\"key\": \"httpStatusCode\",\r\n\t\t\"value\": \"httpStatusCode\",\r\n\t\t\"displayValue\": \"$internet.httpStatusCode\"\r\n\t}, {\r\n\t\t\"key\": \"ip\",\r\n\t\t\"value\": \"ip\",\r\n\t\t\"displayValue\": \"$internet.ip\"\r\n\t}, {\r\n\t\t\"key\": \"ipv4\",\r\n\t\t\"value\": \"ipv4\",\r\n\t\t\"displayValue\": \"$internet.ipv4\"\r\n\t}, {\r\n\t\t\"key\": \"ipv6\",\r\n\t\t\"value\": \"ipv6\",\r\n\t\t\"displayValue\": \"$internet.ipv6\"\r\n\t}, {\r\n\t\t\"key\": \"password\",\r\n\t\t\"value\": \"password\",\r\n\t\t\"displayValue\": \"$internet.password\"\r\n\t}, {\r\n\t\t\"key\": \"port\",\r\n\t\t\"value\": \"port\",\r\n\t\t\"displayValue\": \"$internet.port\"\r\n\t}, {\r\n\t\t\"key\": \"protocol\",\r\n\t\t\"value\": \"protocol\",\r\n\t\t\"displayValue\": \"$internet.protocol\"\r\n\t}, {\r\n\t\t\"key\": \"url\",\r\n\t\t\"value\": \"url\",\r\n\t\t\"displayValue\": \"$internet.url\"\r\n\t}, {\r\n\t\t\"key\": \"userAgent\",\r\n\t\t\"value\": \"userAgent\",\r\n\t\t\"displayValue\": \"$internet.userAgent\"\r\n\t}, {\r\n\t\t\"key\": \"userName\",\r\n\t\t\"value\": \"userName\",\r\n\t\t\"displayValue\": \"$internet.userName\"\r\n\t}],\r\n\t\"lorem\": [{\r\n\t\t\"key\": \"lines\",\r\n\t\t\"value\": \"lines\",\r\n\t\t\"displayValue\": \"$lorem.lines\"\r\n\t}, {\r\n\t\t\"key\": \"paragraph\",\r\n\t\t\"value\": \"paragraph\",\r\n\t\t\"displayValue\": \"$lorem.paragraph\"\r\n\t}, {\r\n\t\t\"key\": \"paragraphs\",\r\n\t\t\"value\": \"paragraphs\",\r\n\t\t\"displayValue\": \"$lorem.paragraphs\"\r\n\t}, {\r\n\t\t\"key\": \"sentence\",\r\n\t\t\"value\": \"sentence\",\r\n\t\t\"displayValue\": \"$lorem.sentence\"\r\n\t}, {\r\n\t\t\"key\": \"sentences\",\r\n\t\t\"value\": \"sentences\",\r\n\t\t\"displayValue\": \"$lorem.sentences\"\r\n\t}, {\r\n\t\t\"key\": \"slug\",\r\n\t\t\"value\": \"slug\",\r\n\t\t\"displayValue\": \"$lorem.slug\"\r\n\t}, {\r\n\t\t\"key\": \"text\",\r\n\t\t\"value\": \"text\",\r\n\t\t\"displayValue\": \"$lorem.text\"\r\n\t}, {\r\n\t\t\"key\": \"word\",\r\n\t\t\"value\": \"word\",\r\n\t\t\"displayValue\": \"$lorem.word\"\r\n\t}, {\r\n\t\t\"key\": \"words\",\r\n\t\t\"value\": \"words\",\r\n\t\t\"displayValue\": \"$lorem.words\"\r\n\t}],\r\n\t\"music\": [{\r\n\t\t\"key\": \"genre\",\r\n\t\t\"value\": \"genre\",\r\n\t\t\"displayValue\": \"$music.genre\"\r\n\t}, {\r\n\t\t\"key\": \"songName\",\r\n\t\t\"value\": \"songName\",\r\n\t\t\"displayValue\": \"$music.songName\"\r\n\t}],\r\n\t\"name\": [{\r\n\t\t\"key\": \"fullName\",\r\n\t\t\"value\": \"fullName\",\r\n\t\t\"displayValue\": \"$name.fullName\"\r\n\t}, {\r\n\t\t\"key\": \"firstName\",\r\n\t\t\"value\": \"firstName\",\r\n\t\t\"displayValue\": \"$name.firstName\"\r\n\t}, {\r\n\t\t\"key\": \"gender\",\r\n\t\t\"value\": \"gender\",\r\n\t\t\"displayValue\": \"$name.gender\"\r\n\t}, {\r\n\t\t\"key\": \"jobArea\",\r\n\t\t\"value\": \"jobArea\",\r\n\t\t\"displayValue\": \"$name.jobArea\"\r\n\t}, {\r\n\t\t\"key\": \"jobDescriptor\",\r\n\t\t\"value\": \"jobDescriptor\",\r\n\t\t\"displayValue\": \"$name.jobDescriptor\"\r\n\t}, {\r\n\t\t\"key\": \"jobTitle\",\r\n\t\t\"value\": \"jobTitle\",\r\n\t\t\"displayValue\": \"$name.jobTitle\"\r\n\t}, {\r\n\t\t\"key\": \"jobType\",\r\n\t\t\"value\": \"jobType\",\r\n\t\t\"displayValue\": \"$name.jobType\"\r\n\t}, {\r\n\t\t\"key\": \"lastName\",\r\n\t\t\"value\": \"lastName\",\r\n\t\t\"displayValue\": \"$name.lastName\"\r\n\t}, {\r\n\t\t\"key\": \"middleName\",\r\n\t\t\"value\": \"middleName\",\r\n\t\t\"displayValue\": \"$name.middleName\"\r\n\t}, {\r\n\t\t\"key\": \"prefix\",\r\n\t\t\"value\": \"prefix\",\r\n\t\t\"displayValue\": \"$name.prefix\"\r\n\t}, {\r\n\t\t\"key\": \"suffix\",\r\n\t\t\"value\": \"suffix\",\r\n\t\t\"displayValue\": \"$name.suffix\"\r\n\t}],\r\n\t\"phone\": [{\r\n\t\t\"key\": \"imei\",\r\n\t\t\"value\": \"imei\",\r\n\t\t\"displayValue\": \"$phone.imei\"\r\n\t}, {\r\n\t\t\"key\": \"number\",\r\n\t\t\"value\": \"number\",\r\n\t\t\"displayValue\": \"$phone.number\"\r\n\t}],\r\n\t\"random\": [{\r\n\t\t\"key\": \"alpha\",\r\n\t\t\"value\": \"alpha\",\r\n\t\t\"displayValue\": \"$random.alpha\"\r\n\t}, {\r\n\t\t\"key\": \"alphaNumeric\",\r\n\t\t\"value\": \"alphaNumeric\",\r\n\t\t\"displayValue\": \"$random.alphaNumeric\"\r\n\t}, {\r\n\t\t\"key\": \"locale\",\r\n\t\t\"value\": \"locale\",\r\n\t\t\"displayValue\": \"$random.locale\"\r\n\t}, {\r\n\t\t\"key\": \"numeric\",\r\n\t\t\"value\": \"numeric\",\r\n\t\t\"displayValue\": \"$random.numeric\"\r\n\t}, {\r\n\t\t\"key\": \"word\",\r\n\t\t\"value\": \"word\",\r\n\t\t\"displayValue\": \"$random.word\"\r\n\t}, {\r\n\t\t\"key\": \"words\",\r\n\t\t\"value\": \"words\",\r\n\t\t\"displayValue\": \"$random.words\"\r\n\t}],\r\n\t\"science\": [{\r\n\t\t\"key\": \"chemicalElement\",\r\n\t\t\"value\": \"chemicalElement\",\r\n\t\t\"displayValue\": \"$science.chemicalElement\"\r\n\t}, {\r\n\t\t\"key\": \"unit\",\r\n\t\t\"value\": \"unit\",\r\n\t\t\"displayValue\": \"$science.unit\"\r\n\t}],\r\n\t\"system\": [{\r\n\t\t\"key\": \"commonFileExt\",\r\n\t\t\"value\": \"commonFileExt\",\r\n\t\t\"displayValue\": \"$system.commonFileExt\"\r\n\t}, {\r\n\t\t\"key\": \"commonFileType\",\r\n\t\t\"value\": \"commonFileType\",\r\n\t\t\"displayValue\": \"$system.commonFileType\"\r\n\t}, {\r\n\t\t\"key\": \"directoryPath\",\r\n\t\t\"value\": \"directoryPath\",\r\n\t\t\"displayValue\": \"$system.directoryPath\"\r\n\t}, {\r\n\t\t\"key\": \"fileExt\",\r\n\t\t\"value\": \"fileExt\",\r\n\t\t\"displayValue\": \"$system.fileExt\"\r\n\t}, {\r\n\t\t\"key\": \"fileName\",\r\n\t\t\"value\": \"fileName\",\r\n\t\t\"displayValue\": \"$system.fileName\"\r\n\t}, {\r\n\t\t\"key\": \"filePath\",\r\n\t\t\"value\": \"filePath\",\r\n\t\t\"displayValue\": \"$system.filePath\"\r\n\t}, {\r\n\t\t\"key\": \"fileType\",\r\n\t\t\"value\": \"fileType\",\r\n\t\t\"displayValue\": \"$system.fileType\"\r\n\t}, {\r\n\t\t\"key\": \"mimeType\",\r\n\t\t\"value\": \"mimeType\",\r\n\t\t\"displayValue\": \"$system.mimeType\"\r\n\t}, {\r\n\t\t\"key\": \"chemicalElement\",\r\n\t\t\"value\": \"chemicalElement\",\r\n\t\t\"displayValue\": \"$system.chemicalElement\"\r\n\t}, {\r\n\t\t\"key\": \"semver\",\r\n\t\t\"value\": \"semver\",\r\n\t\t\"displayValue\": \"$system.semver\"\r\n\t}],\r\n\t\"vehicle\": [{\r\n\t\t\"key\": \"bicycle\",\r\n\t\t\"value\": \"bicycle\",\r\n\t\t\"displayValue\": \"$vehicle.bicycle\"\r\n\t}, {\r\n\t\t\"key\": \"color\",\r\n\t\t\"value\": \"color\",\r\n\t\t\"displayValue\": \"$vehicle.color\"\r\n\t}, {\r\n\t\t\"key\": \"fuel\",\r\n\t\t\"value\": \"fuel\",\r\n\t\t\"displayValue\": \"$vehicle.fuel\"\r\n\t}, {\r\n\t\t\"key\": \"manufacturer\",\r\n\t\t\"value\": \"manufacturer\",\r\n\t\t\"displayValue\": \"$vehicle.manufacturer\"\r\n\t}, {\r\n\t\t\"key\": \"model\",\r\n\t\t\"value\": \"model\",\r\n\t\t\"displayValue\": \"$vehicle.model\"\r\n\t}, {\r\n\t\t\"key\": \"type\",\r\n\t\t\"value\": \"type\",\r\n\t\t\"displayValue\": \"$vehicle.type\"\r\n\t}, {\r\n\t\t\"key\": \"vehicle\",\r\n\t\t\"value\": \"vehicle\",\r\n\t\t\"displayValue\": \"$vehicle.vehicle\"\r\n\t}, {\r\n\t\t\"key\": \"vin\",\r\n\t\t\"value\": \"vin\",\r\n\t\t\"displayValue\": \"$vehicle.vin\"\r\n\t}, {\r\n\t\t\"key\": \"vrm\",\r\n\t\t\"value\": \"vrm\",\r\n\t\t\"displayValue\": \"$vehicle.vrm\"\r\n\t}],\r\n\t\"word\": [{\r\n\t\t\"key\": \"adjective\",\r\n\t\t\"value\": \"adjective\",\r\n\t\t\"displayValue\": \"$vword.adjective\"\r\n\t}, {\r\n\t\t\"key\": \"adverb\",\r\n\t\t\"value\": \"adverb\",\r\n\t\t\"displayValue\": \"$word.adverb\"\r\n\t}, {\r\n\t\t\"key\": \"conjunction\",\r\n\t\t\"value\": \"conjunction\",\r\n\t\t\"displayValue\": \"$word.conjunction\"\r\n\t}, {\r\n\t\t\"key\": \"interjection\",\r\n\t\t\"value\": \"interjection\",\r\n\t\t\"displayValue\": \"$word.interjection\"\r\n\t}, {\r\n\t\t\"key\": \"noun\",\r\n\t\t\"value\": \"noun\",\r\n\t\t\"displayValue\": \"$word.noun\"\r\n\t}, {\r\n\t\t\"key\": \"preposition\",\r\n\t\t\"value\": \"preposition\",\r\n\t\t\"displayValue\": \"$word.preposition\"\r\n\t}, {\r\n\t\t\"key\": \"verb\",\r\n\t\t\"value\": \"verb\",\r\n\t\t\"displayValue\": \"$word.verb\"\r\n\t}]\r\n}\r\n\r\nexport default fakerObj\r\n","import {faker} from '@faker-js/faker'\r\nimport fakerObj from '../constants/fakerModel'\r\n\r\nexport const isSpecialCharacter = input => {\r\n const format = /[!~@#$%^&*()+\\=[\\]{};':\"\\\\|,.<>/?]+/\r\n if (format.test(input)) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nexport const IsJsonString = str => {\r\n try {\r\n if (str.length === 0) {\r\n return str.length === 0\r\n }\r\n const jsn = JSON.parse(str)\r\n if (typeof jsn === 'object') {\r\n return true\r\n }\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nexport const manipulateData = fdata => {\r\n const actual = []\r\n\r\n /* eslint-disable guard-for-in */\r\n for (const k in fdata) {\r\n const key = k\r\n const value = fdata[key]\r\n const b = {name: key, parent: 'Sample Object'}\r\n b.children = []\r\n value.forEach((f) => {\r\n b.children.push({name: f.displayValue, parent: key})\r\n })\r\n actual.push(b)\r\n }\r\n return actual\r\n}\r\n\r\nlet n =0\r\nconst increment = () => {\r\n n += 1\r\n return n\r\n}\r\n\r\nexport const getFakerData =(key,ele, prop)=>{\r\n let customData\r\n if (key === 'custom') {\r\n switch (ele.toLowerCase()) {\r\n case 'number':\r\n customData = increment()\r\n break\r\n case 'boolean':\r\n customData = Math.random() < 0.5\r\n break\r\n case \"string\":\r\n customData = `${prop} ${n}`\r\n break\r\n case \"array\":\r\n customData = []\r\n break\r\n case \"object\":\r\n customData = {}\r\n break\r\n case 'date':\r\n customData = parseInt(Date.now()/1000, 10)\r\n break\r\n default:\r\n customData = ''\r\n break\r\n }\r\n return customData\r\n }\r\n \r\n return faker.helpers.fake(`{{${key}.${ele}}}`)\r\n}\r\n\r\nexport const generateFakerData = (obj, req, objectArr, isObject, realObj, isStreamline) => {\r\n const realObject = JSON.parse(JSON.stringify(realObj))\r\n let isAnyObj = isObject\r\n if (obj!==null) {\r\n Object.keys(obj).forEach(property => {\r\n if (Array.isArray(obj[property])) {\r\n for (let i=0; i<obj[property].length; i++) {\r\n if (typeof obj[property][i] === 'object') {\r\n generateFakerData(obj[property][i], req, objectArr, false,realObj,isStreamline)\r\n }\r\n else if (typeof obj[property][i] !== 'object' && obj[property][i].constructor !== Object && (obj[property][i]).toString().includes(\"$\")) {\r\n const getArr = obj[property][i].split(\".\")\r\n const baseKey = getArr[0].slice(1)\r\n const baseEle = getArr[1]\r\n const data = getFakerData(baseKey,baseEle)\r\n // eslint-disable-next-line no-param-reassign\r\n obj[property][i] = data\r\n }\r\n }\r\n }\r\n if (typeof obj[property] !== 'object') {\r\n if (obj[property].toString().includes(\"$\")) {\r\n const getArr = obj[property].split(\".\")\r\n const category = getArr[0].slice(1)\r\n const subCategory = getArr[1]\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fakerObj.hasOwnProperty(category) || category.toLowerCase() === 'custom') {\r\n const data = getFakerData(category,subCategory,property)\r\n isAnyObj = false\r\n // eslint-disable-next-line no-param-reassign\r\n obj[property] = data\r\n }\r\n }\r\n } else if (obj[property] !== null && typeof obj[property] === 'object' && obj[property].constructor === Object) {\r\n generateFakerData(obj[property], req, objectArr, true, realObj, isStreamline)\r\n }\r\n })\r\n }\r\n \r\n if (!isAnyObj && obj !== null) {\r\n const objKey = Object.keys(obj)\r\n const realObjKey = Object.keys(realObject)\r\n const isMismatch = objKey.filter(e => !realObjKey.includes(e))\r\n if (isMismatch.length===0) {\r\n if (isStreamline) {\r\n return {...obj}\r\n }\r\n objectArr.push(JSON.parse(JSON.stringify(obj)))\r\n }\r\n return objectArr\r\n }\r\n}","import React from 'react'\r\nimport AccordionContext from 'react-bootstrap/AccordionContext'\r\nimport {useAccordionToggle} from 'react-bootstrap/AccordionToggle'\r\nimport './style.css'\r\nimport togglePlus from '../../assets/images/iRest_files/toggle_plus.svg'\r\nimport toggleMinus from '../../assets/images/iRest_files/toggle_minus.svg'\r\n\r\nfunction CustomToggle({children, eventKey, callback}) {\r\n const currentEventKey = React.useContext(AccordionContext)\r\n const decoratedOnClick = useAccordionToggle(eventKey, () => callback && callback(eventKey))\r\n const isCurrentEventKey = currentEventKey === eventKey\r\n const processImage = () => {\r\n if (isCurrentEventKey) {\r\n return <img src={toggleMinus} className=\"image-toggle\" alt=\"toggle_minus_button\" />\r\n }\r\n return <img src={togglePlus} className=\"image-toggle\" alt=\"toggle_plus_button\" />\r\n }\r\n return (\r\n <button type=\"button\" className=\"custom-toggle\" onClick={decoratedOnClick}>\r\n <div className=\"content-toggle\">\r\n {processImage()}\r\n {children}\r\n </div>\r\n </button>\r\n )\r\n}\r\n\r\nexport default CustomToggle\r\n","export const schemaViewDataTransform = (val) => {\r\n return val.map(x => Object.entries(x))\r\n .map((c) => ({\r\n name: c[0][0],\r\n type: `${c[0][1].includes('custom') ? `${c[0][1].split(/[$.]/)[2]}`: 'Faker.js'}`,\r\n fakerValue:`${c[0][1].includes('custom') ? '': c[0][1]}`\r\n }))\r\n}\r\n\r\nexport const schemaDataTransform = (schemaData) => {\r\n const formattedSchemaData = {}\r\n schemaData.forEach(element => {\r\n formattedSchemaData[element.name] = element.type === \"Faker.js\" ? element.fakerValue : `$custom.${element.type}`\r\n })\r\n return formattedSchemaData\r\n }\r\n","\r\nexport const fieldTypes = [\r\n {key: 'string', value: 'String'},\r\n {key: 'fakerJs', value: 'Faker.js'},\r\n {key: 'boolean', value: 'Boolean'},\r\n {key: 'number', value: 'Number'},\r\n {key: 'object', value: 'Object'},\r\n {key: 'array', value: 'Array'},\r\n {key: 'date', value: 'Date'},\r\n ]\r\n\r\nexport const fakerObj = {\r\n username: '$internet.userName',\r\n knownIps: ['$internet.ip', '$internet.ipv6'],\r\n profile: {\r\n firstName: '$name.firstName',\r\n lastName: '$name.lastName',\r\n staticData: [100, 200, 300],\r\n },\r\n}\r\n\r\nexport const serviceResponseType = Object.freeze({\r\n SAVE: 'save',\r\n EXISTING: 'existing',\r\n DEFAULT: 'default',\r\n})\r\n","import React from 'react'\r\nimport {Field, FieldArray, getIn} from 'formik'\r\nimport fakerObj from '../../../server/constants/fakerModel'\r\nimport {fieldTypes} from '../../constants/createMockConstants'\r\nimport './style.css'\r\n\r\nexport default function SchemaView({values, errors, touched, Dropdown, GroupedDropdown}) {\r\n return (\r\n <div className=\"form-group\">\r\n <FieldArray name=\"schemaResponse\">\r\n {fieldArrayPorps => {\r\n const {schemaResponse} = values\r\n const {form} = fieldArrayPorps\r\n const error = getIn(form.errors, 'schemaResponse')\r\n const touch = getIn(form.touched, 'schemaResponse')\r\n return (\r\n schemaResponse.length >= 1 && (\r\n <>\r\n {schemaResponse.map((row, index) => (\r\n <div className=\"row\" key={index}>\r\n <div className=\"form-group col-md-3\">\r\n <Field\r\n className=\"form-control options-bold-text\"\r\n name={`schemaResponse[${index}].name`}\r\n />\r\n {error &&\r\n touch &&\r\n errors.schemaResponse[index] &&\r\n touched.schemaResponse[index] && (\r\n <div className=\"input-feedback text-danger\">\r\n {errors.schemaResponse[index].name}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"form-group col-md-2\">\r\n <Field\r\n component={Dropdown}\r\n name={`schemaResponse[${index}].type`}\r\n id=\"isSchema\"\r\n options={fieldTypes}\r\n />\r\n </div>\r\n <div\r\n className=\"form-group col-md-2\"\r\n style={{\r\n display: `${schemaResponse[index].type === 'Faker.js' ? 'block' : 'none'}`,\r\n }}\r\n >\r\n {schemaResponse[index].type === 'Faker.js' && (\r\n <Field\r\n component={GroupedDropdown}\r\n name={`schemaResponse[${index}].fakerValue`}\r\n id={`schemaResponse[${index}].fakerValue`}\r\n options={fakerObj}\r\n style={{\r\n display: `${\r\n schemaResponse[index].type === 'Faker.js' ? 'block' : 'none'\r\n }`,\r\n }}\r\n />\r\n )}\r\n </div>\r\n <div className=\"form-group col-md-2\">\r\n {schemaResponse.length > 1 && (\r\n <button\r\n className=\"Button IconButton Secondary button-icon\"\r\n type=\"button\"\r\n onClick={() => fieldArrayPorps.remove(index)}\r\n >\r\n <span style={{pointerEvents: 'none'}}>\r\n <div className=\"Icon\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\r\n </svg>\r\n </div>\r\n </span>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n <button\r\n className=\"Button IconButton Secondary button-icon\"\r\n type=\"button\"\r\n onClick={() => fieldArrayPorps.push({name: '', type: 'string', fakerValue: ''})}\r\n >\r\n <span style={{pointerEvents: 'none'}}>\r\n <div className=\"Icon\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\r\n </svg>\r\n </div>\r\n </span>\r\n </button>\r\n </>\r\n )\r\n )\r\n }}\r\n </FieldArray>\r\n </div>\r\n )\r\n}\r\n","import React, {Component} from 'react'\r\nimport * as d3 from 'd3'\r\nimport './style.css'\r\nimport {manipulateData} from '../../../server/helpers/util'\r\nimport fakerObj from '../../../server/constants/fakerModel'\r\nimport clipboard from '../../assets/images/iRest_files/clipboard.svg'\r\n\r\nconst treeDummy = {\r\n name: 'Faker Object',\r\n parent: 'null',\r\n children: [],\r\n}\r\n\r\ntreeDummy.children = manipulateData(fakerObj)\r\nconst treeData = [treeDummy]\r\n\r\nconst margin = {top: 20, right: 120, bottom: 20, left: 120}\r\nconst width = 1100 - margin.right - margin.left\r\nconst height = 1000 - margin.top - margin.bottom\r\nconst treeWidth = 360\r\n\r\nlet i = 0\r\nconst duration = 700\r\nlet root = null\r\n\r\nlet tree = null\r\nlet diagonal = null\r\nlet svg = null\r\n\r\n/* eslint-disable */\r\nexport default class TreeStructure extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.myRef = React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n this.drawTree()\r\n }\r\n\r\n drawTree = () => {\r\n tree = d3.layout.tree().size([height, width])\r\n\r\n diagonal = d3.svg.diagonal().projection(function(d) {\r\n return [d.y, d.x]\r\n })\r\n\r\n svg = d3\r\n .select(this.myRef.current)\r\n .append('svg')\r\n .attr('width', width + margin.right + margin.left)\r\n .attr('height', height + margin.top + margin.bottom)\r\n .append('g')\r\n .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')\r\n\r\n root = treeData[0]\r\n root.x0 = height / 2\r\n root.y0 = 0\r\n\r\n root.children.forEach(this.collapse)\r\n\r\n this.update(root)\r\n }\r\n\r\n update = source => {\r\n // Compute the new tree layout.\r\n const nodes = tree.nodes(root).reverse()\r\n const links = tree.links(nodes)\r\n\r\n // Normalize for fixed-depth.\r\n nodes.forEach(function(d) {\r\n d.y = d.depth * treeWidth\r\n })\r\n\r\n // Update the nodes…\r\n const node = svg.selectAll('g.node').data(nodes, function(d) {\r\n return d.id || (d.id = ++i)\r\n })\r\n\r\n // Enter any new nodes at the parent's previous position.\r\n const nodeEnter = node\r\n .enter()\r\n .append('g')\r\n .attr('class', 'node')\r\n .attr('transform', function(d) {\r\n return 'translate(' + source.y0 + ',' + source.x0 + ')'\r\n })\r\n .on('click', this.click)\r\n\r\n nodeEnter\r\n .append('circle')\r\n .attr('r', 1e-6)\r\n .style('fill', function(d) {\r\n return d._children ? 'lightsteelblue' : '#fff'\r\n })\r\n\r\n nodeEnter\r\n .append('text')\r\n .attr('x', function(d) {\r\n return d.children || d._children ? -13 : 13\r\n })\r\n .attr('dy', function(d) {\r\n return d.children || d._children ? -8 : '.35em'\r\n })\r\n .attr('text-anchor', function(d) {\r\n return d.children || d._children ? 'end' : 'start'\r\n })\r\n .text(function(d) {\r\n return d.name\r\n })\r\n .style('fill-opacity', 1e-6)\r\n\r\n nodeEnter\r\n .append('svg:image')\r\n .attr('xlink:href', clipboard)\r\n .attr('x', function(d) {\r\n if (d.name.length === 20 || d.name.length === 24) {\r\n return d.name.length * 6 + 35\r\n }\r\n return d.name.length * 6 + 25\r\n })\r\n .attr('y', -7)\r\n .attr('width', 15)\r\n .attr('height', 15)\r\n .attr('display', function(d) {\r\n return d.children || d._children ? 'none' : 'block'\r\n })\r\n .on('click', function(d) {\r\n navigator.clipboard.writeText(d.name)\r\n })\r\n\r\n // Transition nodes to their new position.\r\n const nodeUpdate = node\r\n .transition()\r\n .duration(duration)\r\n .attr('transform', function(d) {\r\n return 'translate(' + d.y + ',' + d.x + ')'\r\n })\r\n\r\n nodeUpdate\r\n .select('circle')\r\n .attr('r', 10)\r\n .style('fill', function(d) {\r\n return d._children ? 'lightsteelblue' : '#fff'\r\n })\r\n\r\n nodeUpdate.select('text').style('fill-opacity', 1)\r\n\r\n // Transition exiting nodes to the parent's new position.\r\n const nodeExit = node\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .attr('transform', function(d) {\r\n return 'translate(' + source.y + ',' + source.x + ')'\r\n })\r\n .remove()\r\n\r\n nodeExit.select('circle').attr('r', 1e-6)\r\n\r\n nodeExit.select('text').style('fill-opacity', 1e-6)\r\n\r\n // Update the links…\r\n const link = svg.selectAll('path.link').data(links, function(d) {\r\n return d.target.id\r\n })\r\n\r\n // Enter any new links at the parent's previous position.\r\n link\r\n .enter()\r\n .insert('path', 'g')\r\n .attr('class', 'link')\r\n .attr('d', function(d) {\r\n const o = {x: source.x0, y: source.y0}\r\n return diagonal({source: o, target: o})\r\n })\r\n\r\n // Transition links to their new position.\r\n link\r\n .transition()\r\n .duration(duration)\r\n .attr('d', diagonal)\r\n\r\n // Transition exiting nodes to the parent's new position.\r\n link\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .attr('d', function(d) {\r\n const o = {x: source.x, y: source.y}\r\n return diagonal({source: o, target: o})\r\n })\r\n .remove()\r\n\r\n // Stash the old positions for transition.\r\n nodes.forEach(function(d) {\r\n d.x0 = d.x\r\n d.y0 = d.y\r\n })\r\n }\r\n\r\n click = d => {\r\n if (d.name === 'Faker Object' || !d._children) {\r\n return\r\n }\r\n if (d.children) {\r\n d._children = d.children\r\n d.children = null\r\n } else {\r\n d.children = d._children\r\n d._children = null\r\n }\r\n\r\n this.update(d)\r\n\r\n root.children.forEach(this.collapse)\r\n }\r\n\r\n collapse = d => {\r\n if (d.children) {\r\n d._children = d.children\r\n d._children.forEach(this.collapse)\r\n d.children = null\r\n }\r\n }\r\n\r\n render() {\r\n return <div ref={this.myRef} />\r\n }\r\n}\r\n","import React from 'react'\r\nimport Accordion from 'react-bootstrap/Accordion'\r\nimport Card from 'react-bootstrap/Card'\r\nimport CustomToggle from '../common/CustomToggle'\r\nimport Tooltip from '../common/Tooltip'\r\nimport TreeStructure from '../common/TreeStructure'\r\nimport JsonEditor from './JsonEditor'\r\nimport clipboard from '../../assets/images/iRest_files/clipboard.svg'\r\nimport {fakerObj} from '../../constants/createMockConstants'\r\n\r\nconst JsonView = props => {\r\n\r\n const {\r\n values,\r\n isResponseBodyVisible,\r\n uploadFileForJSON,\r\n handleChange,\r\n text,\r\n mode,\r\n modes,\r\n onChangeText,\r\n onModeChange,\r\n setJsonEditorError,\r\n responseBodyRef,\r\n saveButtonClicked,\r\n previewButtonClicked,\r\n IsJsonString,\r\n jsonEditorError,\r\n } = props\r\n\r\n\r\n const sampleFakerObj = fakerObj\r\n return (\r\n <div>\r\n {values.serviceResponseType === 'default' ? (\r\n <div className={values.serviceResponseType === 'default' ? 'mb-3' : ''}>\r\n <Accordion className=\"accordion-top-spacing\" defaultActiveKey=\"-1\">\r\n <Card>\r\n <CustomToggle eventKey=\"0\">Response Body - Sample Object</CustomToggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body className=\"card-layout\">\r\n <div>\r\n <div className=\"sample-object\">\r\n <pre>{JSON.stringify(sampleFakerObj, null, 2)}</pre>\r\n <div className=\"clipboard-faker\">\r\n <Tooltip content=\"Copy\" direction=\"right\">\r\n <img\r\n src={clipboard}\r\n alt=\"clipboard\"\r\n onClick={() =>\r\n navigator.clipboard.writeText(JSON.stringify(sampleFakerObj))\r\n }\r\n />\r\n </Tooltip>\r\n </div>\r\n </div>\r\n\r\n <TreeStructure />\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n </div>\r\n ) : null}\r\n <div className=\"row\">\r\n <div\r\n className=\"form-group col-md-12\"\r\n style={!isResponseBodyVisible || values.method === 'EXISTING' ? {display: 'none'} : {}}\r\n >\r\n <label htmlFor=\"inputResBody\" className=\"response-body-text\">\r\n Response Body\r\n </label>\r\n <div className=\"radioButtonSetter\">\r\n <label>\r\n <input\r\n id=\"file\"\r\n name=\"file\"\r\n type=\"file\"\r\n accept=\".json\"\r\n onChange={event => {\r\n uploadFileForJSON(event.currentTarget.files[0])\r\n }}\r\n className=\"form-control\"\r\n style={{display: 'none'}}\r\n />\r\n <span className=\"upload-json-button\">Upload Json File</span>\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dummyInput2\"\r\n name=\"dummyInput2\"\r\n onChange={handleChange}\r\n value=\"true\"\r\n checked=\"true\"\r\n />\r\n </label>\r\n </div>\r\n <span>\r\n <JsonEditor\r\n text={text}\r\n mode={mode}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={onChangeText}\r\n onModeChange={onModeChange}\r\n value={text}\r\n setJsonEditorError={setJsonEditorError}\r\n {...props}\r\n />\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dummyInput4\"\r\n name=\"dummyInput4\"\r\n onChange=\"true\"\r\n checked=\"true\"\r\n ref={responseBodyRef}\r\n />\r\n {(previewButtonClicked || saveButtonClicked) && text === '' && (\r\n <div className=\"input-feedback text-danger\" id=\"input-error-body\">\r\n Response Body required\r\n </div>\r\n )}\r\n {(previewButtonClicked || saveButtonClicked) &&\r\n (jsonEditorError || !IsJsonString(text)) && (\r\n <div className=\"input-feedback text-danger\" id=\"input-error-body\">\r\n Please provide valid json response\r\n </div>\r\n )}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default JsonView\r\n","import React from \"react\"\r\n\r\nexport const Dropdown = ({\r\n field: {name, ...rest},\r\n id,\r\n options,\r\n label,\r\n className,\r\n defaultChecked,\r\n }) => {\r\n return (\r\n <select data-testid=\"dropdown\" name={name} className=\"form-control options-bold-text\" {...rest}>\r\n {options.map(option => {\r\n return <option key={option.key}>{option.value}</option>\r\n })}\r\n </select>\r\n )\r\n }\r\n\r\nexport const GroupedDropdown = ({\r\n field: {name, ...rest},\r\n id,\r\n options,\r\n label,\r\n className,\r\n selected,\r\n }) => {\r\n return (\r\n <select data-testid=\"grouped-dropdown\" name={name} className=\"form-control options-bold-text\" {...rest}>\r\n {Object.keys(options).map(fakerKey => (\r\n <optgroup label={fakerKey}>\r\n {options[fakerKey].map(obj => (\r\n <option\r\n value={obj.displayValue}\r\n >\r\n {obj.key}\r\n </option>\r\n ))}\r\n </optgroup>\r\n ))}\r\n </select>\r\n )\r\n }","import React, {useState, useEffect, useRef} from 'react'\r\nimport {Multiselect} from 'multiselect-react-dropdown'\r\nimport {useDispatch, connect} from 'react-redux'\r\nimport {Field} from 'formik'\r\nimport {Link, useHistory} from 'react-router-dom'\r\nimport {bindActionCreators} from 'redux'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport Accordion from 'react-bootstrap/Accordion'\r\nimport Card from 'react-bootstrap/Card'\r\nimport './style.css'\r\nimport {Typeahead} from 'react-bootstrap-typeahead'\r\nimport isEqual from 'lodash/isEqual'\r\nimport Tooltip from '../common/Tooltip'\r\nimport Nav from '../common/nav'\r\nimport {DashboardUrl, createMockUrl, EditMockUrl} from '../../constants/url'\r\nimport {projectListAction} from '../../actions/projectList/projectListAction'\r\nimport {createProjectAction} from '../../actions/createProject/createProjectAction'\r\nimport {flushUploadedData} from '../../actions/fileUpload/fileUploadAction'\r\nimport {mockListAction} from '../../actions/mockList/mockListActions'\r\nimport {flushMockData, fetchListById} from '../../actions/createMock/createMockAction'\r\nimport Preview from './Preview'\r\nimport JsonEditor from './JsonEditor'\r\nimport JsonEditorKey from './JsonditorKey'\r\nimport {flushMockStatus} from '../../actions/mockStatus/mockStatusActions'\r\nimport {\r\n createPreviewMockAction,\r\n flushPreviewMockData,\r\n} from '../../actions/previewMock/previewMockAction'\r\nimport deleteTrash from '../../assets/images/iRest_files/red_trash.png'\r\nimport buttonCircle from '../../assets/images/iRest_files/button_circle.svg'\r\nimport {CREATE_MOCK_SUCCESS} from '../../actions/actionTypes'\r\nimport {isSpecialCharacter, IsJsonString} from '../../../server/helpers/util'\r\nimport CustomToggle from '../common/CustomToggle'\r\nimport {schemaDataTransform, schemaViewDataTransform} from '../common/utils'\r\nimport SchemaView from './SchemaView'\r\nimport JsonView from './JsonView'\r\nimport {Dropdown, GroupedDropdown} from '../common/Dropdown'\r\nimport {serviceResponseType} from '../../constants/createMockConstants'\r\n\r\nlet json1 = {}\r\nconst CreateMock = props => {\r\n const {\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n values,\r\n successList,\r\n createMockTemp,\r\n setValues,\r\n setFieldValue,\r\n setFieldTouched,\r\n mockId,\r\n } = props\r\n\r\n const {isSchema} = values\r\n const [initialSchemaState, setInitialSchemaState ] = useState(false)\r\n\r\n const [data, updateState] = useState({\r\n isDynamicOptionDisplayed: true,\r\n isAdvaceOptions: null,\r\n isExisting: false,\r\n })\r\n\r\n const [allProjectOptions, setAllProjectsOption] = useState([])\r\n const [projectNameState, setProjectName] = useState()\r\n const [projectLabel, setProjectLabel] = useState()\r\n const [fields, setFields] = useState([])\r\n const [params, setParams] = useState([])\r\n const [methodOptions, setMethodOptions] = useState([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n const [isResponseBodyVisible, setIsResponseBodyVisible] = useState(true)\r\n const [isFullFormDisplay, setIsFullFormDisplay] = useState(false)\r\n const [breadcrumb, setBreadcrumb] = useState('')\r\n const [pagetitle, setPagetitle] = useState('')\r\n const [typeaheadInput, setTypeaheadInputValue] = useState('')\r\n const [modalOpen, setModalOpen] = useState(false)\r\n\r\n const endPointRef = useRef(null)\r\n const [json, setJson] = useState(json1)\r\n const [jsonEditorError, setJsonEditorError] = useState(false)\r\n const [jsonEditorErrorSpecific, setJsonEditorErrorSpecific] = useState(false)\r\n const [dynamicKeys, setDynamicKeys] = useState([])\r\n const modes = ['code', 'tree', 'text']\r\n const [modeSpecificKey, setModeSpecificKey] = useState('code')\r\n const [textSpecificKey, setTextSpecificKey] = useState({jsontext: '', othertext: '', textType: 'json'})\r\n \r\n const [mode, setMode] = useState('code')\r\n const [text, setText] = useState(JSON.stringify(json, null, 2))\r\n const [newProject, setNewProject] = useState(false)\r\n const [saveButtonClicked, setSaveButtonClicked] = useState(false)\r\n const [preSelectedMethod, setPreselectedVal] = useState([{id: 1, method: 'GET'}])\r\n const [previewButtonClicked, setPreviewButtonClicked] = useState(false)\r\n const [defaultResponse, setDefaultResponse] = useState('-1')\r\n const [defaultOptions, setDefaultOptions] = useState('-1')\r\n \r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n const projectNameRef = useRef(null)\r\n const responseBodyRef = useRef(null)\r\n const mockNameRef = useRef(null)\r\n const delayResponseRef = useRef(null)\r\n const dynamicResponseKeyRef = useRef(null)\r\n const dynamicResponseKeyValueRef = useRef(null)\r\n const inputEl = useRef(null)\r\n const optionValues = [200, 404, 500, 401, 502]\r\n\r\n useEffect(() => {\r\n if (dynamicKeys.length > 0) {\r\n setFieldValue('dynamicResponseKey', JSON.stringify(dynamicKeys))\r\n }\r\n }, [dynamicKeys])\r\n\r\n useEffect(() => {\r\n if (isSchema && initialSchemaState && pagetitle !== 'Create Mock') {\r\n setInitialSchemaState(false)\r\n const parsedData = Object.keys(JSON.parse(values.serviceResponseBody)).map(\r\n (key) => ({[key]:JSON.parse(values.serviceResponseBody)[key]}))\r\n const schemaData = schemaViewDataTransform(parsedData)\r\n setFieldValue('schemaResponse', schemaData )\r\n }\r\n }, [isSchema])\r\n\r\n useEffect(() => {\r\n if (mockId) {\r\n props.fetchListById(mockId)\r\n }\r\n return () => {\r\n props.flushMockData()\r\n props.flushPreviewMockData()\r\n }\r\n }, [mockId])\r\n\r\n useEffect(() => {\r\n if (props.fileUploadStatus.response.data && props.fileUploadStatus.response.data.length > 0) {\r\n setFieldValue(\r\n 'serviceResponseBody',\r\n JSON.stringify(JSON.parse(props.fileUploadStatus.response.data[0]))\r\n )\r\n setFieldValue('serviceResponseBodyType', 'default')\r\n }\r\n }, [props.fileUploadStatus.response])\r\n\r\n useEffect(() => {\r\n if (props.createMock.response.data.mock) {\r\n setValues({\r\n ...values,\r\n ...props.createMock.response.data.mock,\r\n })\r\n const headerData = [...props.createMock.response.data.mock.headers]\r\n const paramData = [...props.createMock.response.data.mock.params]\r\n const mock_Status = props.createMock.response.data.mock.mockStatus\r\n const isInitialSchema = props.createMock.response.data.mock.isSchema\r\n setInitialSchemaState(props.createMock.response.data.mock.isSchema)\r\n const serviceResponseData =\r\n props.createMock.response.data.mock.serviceResponse &&\r\n props.createMock.response.data.mock.serviceResponse.serviceResponseBody\r\n setFields(headerData)\r\n setParams(paramData)\r\n setFieldValue('serviceResponseBody', serviceResponseData)\r\n const methodsArr = props.createMock.response.data.mock.allowedMethods.map((ele, i) => ({\r\n id: i,\r\n method: ele,\r\n }))\r\n setFieldValue('allowedMethods', props.createMock.response.data.mock.allowedMethods)\r\n setFieldValue('endpoint', props.createMock.response.data.mock.endpointRequestPath)\r\n setFieldValue('mockStatus', mock_Status === 'enabled' ? 'true' : 'false')\r\n setFieldValue('isSchema', isInitialSchema)\r\n if (props.createMock.response.data.mock.serviceResponseType === serviceResponseType.DEFAULT) {\r\n setPreselectedVal([{id: 1, method: props.createMock.response.data.mock.allowedMethods[0]}])\r\n setMethodOptions([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n setTimeout(() => {\r\n const ele = document.getElementsByClassName('checkbox')\r\n if (ele && methodsArr.length > 1) {\r\n ele[1].click()\r\n ele[1].setAttribute('checked', true)\r\n }\r\n }, 5)\r\n\r\n setIsResponseBodyVisible(true)\r\n updateState({...data, isDynamicOptionDisplayed: true})\r\n } \r\n else {\r\n setPreselectedVal([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n setMethodOptions([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n {id: 3, method: 'PUT'},\r\n {id: 4, method: 'PATCH'},\r\n {id: 5, method: 'DELETE'},\r\n ])\r\n setIsResponseBodyVisible(false)\r\n updateState({...data, isDynamicOptionDisplayed: false, isExisting: false})\r\n const arr = [...props.createMock.response.data.mock.allowedMethods]\r\n setTimeout(() => {\r\n const ele = document.getElementsByClassName('checkbox')\r\n if (arr.includes('PUT')) {\r\n ele[2].click()\r\n ele[2].setAttribute('checked', true)\r\n }\r\n if (arr.includes('PATCH')) {\r\n ele[3].click()\r\n ele[3].setAttribute('checked', true)\r\n }\r\n if (arr.includes('DELETE')) {\r\n ele[4].click()\r\n ele[4].setAttribute('checked', true)\r\n }\r\n }, 5)\r\n }\r\n if (props.createMock.response.data.mock.dynamicResponseSpecific) {\r\n setFieldValue('randomSpecific', 'specific')\r\n setFieldValue('dynamicResponseSpecific', true)\r\n setFieldValue('dynamicResponseRandom', false)\r\n } else {\r\n setFieldValue('randomSpecific', 'random')\r\n setFieldValue('dynamicResponseSpecific', false)\r\n setFieldValue('dynamicResponseRandom', true)\r\n }\r\n if (props.createMock.response.data.mock.isDynamicImportCount) {\r\n setFieldValue('isDynamicImportCount', true)\r\n setFieldValue('isDynamicImportSize', false)\r\n } else {\r\n setFieldValue('isDynamicImportCount', false)\r\n setFieldValue('isDynamicImportSize', true)\r\n }\r\n if (props?.createMock?.response?.data?.mock?.isBulkDataCount) {\r\n setFieldValue('isBulkDataCount', true)\r\n setFieldValue('isBulkDataSize', false)\r\n } else {\r\n setFieldValue('isBulkDataCount', false)\r\n setFieldValue('isBulkDataSize', true)\r\n }\r\n props.flushMockStatus()\r\n props.flushPreviewMockData()\r\n\r\n if (pagetitle === 'Edit Mock') {\r\n setDefaultResponse('0')\r\n if (textSpecificKey.jsontext !== '' && IsJsonString(textSpecificKey.jsontext)) {\r\n setTextSpecificKey({\r\n ...textSpecificKey,\r\n jsontext: textSpecificKey.jsontext,\r\n textType: \"json\"\r\n })\r\n } else {\r\n setTextSpecificKey({\r\n ...textSpecificKey,\r\n othertext: textSpecificKey.othertext,\r\n textType: \"other\"\r\n })\r\n }\r\n }\r\n if (headerData?.length > 0) {\r\n setDefaultOptions('0')\r\n }\r\n }\r\n }, [props.createMock.response.data])\r\n\r\n useEffect(() => {\r\n if (successList.response.data.projectList) {\r\n const tempData = successList.response.data.projectList.map(item => ({\r\n id: item._id,\r\n label: item.projectName,\r\n }))\r\n setAllProjectsOption(tempData)\r\n }\r\n }, [successList.response.data.projectList])\r\n\r\n useEffect(() => {\r\n if (createMockTemp.response.data && createMockTemp.response.data.projectList) {\r\n setFieldValue('projectId', createMockTemp.response.data._id)\r\n setFieldValue('projectName', projectNameState)\r\n }\r\n }, [createMockTemp.response.status])\r\n\r\n useEffect(() => {\r\n if (createMockTemp.response.data && createMockTemp.response.data.projectList) {\r\n setFieldValue('projectId', createMockTemp.response.data._id)\r\n setFieldValue('projectName', projectNameState)\r\n }\r\n }, [createMockTemp.response.status])\r\n\r\n useEffect(() => {\r\n if (createMockTemp.response.data?.projectList) {\r\n setFieldValue('projectId', createMockTemp.response.data._id)\r\n setFieldValue('projectName', projectNameState)\r\n }\r\n }, [createMockTemp.response.data._id])\r\n\r\n useEffect(() => {\r\n if (createMockTemp.response.type === CREATE_MOCK_SUCCESS) {\r\n dispatch(flushMockData())\r\n dispatch(flushUploadedData())\r\n props.flushPreviewMockData()\r\n history.push(DashboardUrl)\r\n }\r\n }, [createMockTemp.response.type])\r\n\r\n const handleChangeCountSize = e => {\r\n if (e.target.name === 'isDynamicImportCount') {\r\n setFieldValue('isDynamicImportCount', true)\r\n setFieldValue('isDynamicImportSize', false)\r\n } else {\r\n setFieldValue('isDynamicImportCount', false)\r\n setFieldValue('isDynamicImportSize', true)\r\n }\r\n }\r\n\r\n const handleChangeBulkCountSize = e => {\r\n if (e.target.name === 'isBulkDataCount') {\r\n setFieldValue('isBulkDataCount', true)\r\n setFieldValue('isBulkDataSize', false)\r\n } else {\r\n setFieldValue('isBulkDataCount', false)\r\n setFieldValue('isBulkDataSize', true)\r\n }\r\n }\r\n\r\n \r\n\r\n const RadioButtonStatus = ({field: {name, value, onChange, onBlur}, id, label, disabled}) => {\r\n let checkBoxValue = ''\r\n if (typeof value === 'string') {\r\n if (value === 'true' || value === 'enabled') {\r\n checkBoxValue = true\r\n } else if (value === 'false' || value === 'disabled') {\r\n checkBoxValue = false\r\n }\r\n } else {\r\n checkBoxValue = value\r\n }\r\n\r\n return (\r\n <div className=\"form-group form-inline \">\r\n <div className=\"radioButtonSetter custom-control custom-switch\">\r\n <Tooltip content=\"Toggle Status\" direction=\"bottom\">\r\n <input\r\n name={name}\r\n id={id}\r\n className=\"custom-control-input\"\r\n type=\"checkbox\"\r\n value={checkBoxValue}\r\n checked={checkBoxValue}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n disabled={disabled}\r\n />\r\n <label htmlFor={id} className=\"custom-control-label options-bold-text\">\r\n {label}\r\n </label>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n function handlerAddHeaders() {\r\n const headerFields = [...fields]\r\n headerFields.push({value: null})\r\n setFields(headerFields)\r\n }\r\n\r\n function handleRemove(i) {\r\n const removeFields = [...fields]\r\n removeFields.splice(i, 1)\r\n props.values.headers.splice(i, 1)\r\n setFields(removeFields)\r\n }\r\n\r\n function handleRemoveParmas(i) {\r\n const removeParams = [...params]\r\n removeParams.splice(i, 1)\r\n props.values.params.splice(i, 1)\r\n setParams(removeParams)\r\n }\r\n\r\n const typeaheadKeyPressedHandler = event => {\r\n setIsFullFormDisplay(false)\r\n setProjectLabel(event)\r\n if (event.length > 3) {\r\n const searchQuery = event\r\n dispatch(projectListAction({searchQuery}))\r\n setProjectName(event)\r\n }\r\n if (event === '') {\r\n setAllProjectsOption([])\r\n setFieldValue('projectId', '')\r\n setFieldValue('projectName', '')\r\n }\r\n }\r\n\r\n const createNewProject = () => {\r\n if (!projectNameState) return\r\n setNewProject(true)\r\n const requestedParam = {projectName: projectNameState}\r\n const checkProjectNameExist = allProjectOptions.filter(item => item.label === projectNameState)\r\n if (checkProjectNameExist.length > 0) return\r\n dispatch(createProjectAction(requestedParam))\r\n setIsFullFormDisplay(true)\r\n }\r\n\r\n const onChangeRandomSpecific = e => {\r\n setFieldValue('randomSpecific', e)\r\n if (e === 'random') {\r\n setFieldValue('dynamicResponseSpecific', false)\r\n setFieldValue('dynamicResponseRandom', true)\r\n } else {\r\n setFieldValue('dynamicResponseSpecific', true)\r\n setFieldValue('dynamicResponseRandom', false)\r\n }\r\n }\r\n\r\n const handleSpecificResponseChange = e => {\r\n setTextSpecificKey({\r\n jsontext: textSpecificKey.jsontext,\r\n othertext: textSpecificKey.othertext,\r\n textType: e.target.value\r\n })\r\n }\r\n\r\n const RandomSpecificToggle = ({field: {name, value, onChange, onBlur}, id, label, disabled}) => {\r\n const {randomSpecific} = values\r\n const checkBoxValue = Boolean(randomSpecific === id)\r\n return (\r\n <div className=\"form-group form-inline \">\r\n <div className=\"radioButtonSetter custom-control custom-switch\">\r\n <Tooltip content=\"Toggle Status\" direction=\"bottom\">\r\n <input\r\n name={name}\r\n id={id}\r\n className=\"custom-control-input\"\r\n type=\"checkbox\"\r\n value={checkBoxValue}\r\n checked={checkBoxValue}\r\n onChange={() => onChangeRandomSpecific(id)}\r\n onBlur={onBlur}\r\n disabled={disabled}\r\n />\r\n <label htmlFor={id} className=\"custom-control-label options-bold-text\">\r\n {label}\r\n </label>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n const defaultSaveExisting = e => {\r\n setFieldValue('serviceResponseType', e.target.value)\r\n if (e.target.value === 'default') {\r\n setFieldValue('allowedMethods', ['GET'])\r\n setFieldValue('method', 'GET')\r\n setPreselectedVal([{id: 1, method: 'GET'}])\r\n setMethodOptions([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n setIsResponseBodyVisible(true)\r\n updateState({...data, isDynamicOptionDisplayed: true, isExisting: false})\r\n } else if (e.target.value === 'existing') {\r\n setFieldValue('method', 'GET')\r\n setMethodOptions([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n setIsResponseBodyVisible(false)\r\n updateState({...data, isDynamicOptionDisplayed: false, isExisting: true})\r\n\r\n if (props.createMock?.response?.data?.mock?.projectId) {\r\n props.mockListAction({\r\n projectId: props.createMock?.response?.data?.mock?.projectId,\r\n existing: true,\r\n })\r\n } else {\r\n props.mockListAction({\r\n projectId: props.values.projectId,\r\n existing: true,\r\n })\r\n }\r\n } else {\r\n setPreselectedVal([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n ])\r\n setFieldValue('allowedMethods', ['GET', 'POST'])\r\n setFieldValue('method', 'POST')\r\n setMethodOptions([\r\n {id: 1, method: 'GET'},\r\n {id: 2, method: 'POST'},\r\n {id: 3, method: 'PUT'},\r\n {id: 4, method: 'PATCH'},\r\n {id: 5, method: 'DELETE'},\r\n ])\r\n setIsResponseBodyVisible(false)\r\n updateState({...data, isDynamicOptionDisplayed: false, isExisting: false})\r\n }\r\n }\r\n\r\n const handlePreviewBtnClick = e => {\r\n setPreviewButtonClicked(true)\r\n if (\r\n (!jsonEditorError &&\r\n IsJsonString(text) &&\r\n text !== '' &&\r\n !values.isDynamicResponse &&\r\n values.mockName !== '' &&\r\n values.endpoint !== '' &&\r\n (values.delaySeconds > 0 &&\r\n values.delaySeconds <= 60)) ||\r\n (!jsonEditorError &&\r\n IsJsonString(text) &&\r\n text !== '' &&\r\n values.isDynamicResponse &&\r\n props.values.dynamicResponseKey !== '' &&\r\n props.values.randomSpecific === 'random' &&\r\n values.mockName !== '' &&\r\n values.endpoint !== '' &&\r\n (values.delaySeconds > 0 &&\r\n values.delaySeconds <= 60)) ||\r\n (!jsonEditorError &&\r\n IsJsonString(text) &&\r\n text !== '' &&\r\n !jsonEditorErrorSpecific &&\r\n IsJsonString(textSpecificKey.jsontext) &&\r\n textSpecificKey.jsontext !== '' &&\r\n values.isDynamicResponse &&\r\n props.values.dynamicResponseKey !== '' &&\r\n props.values.randomSpecific !== 'random' &&\r\n values.mockName !== '' &&\r\n values.endpoint !== '' &&\r\n (values.delaySeconds > 0 &&\r\n values.delaySeconds <= 60))\r\n ) {\r\n setModalOpen(true)\r\n const newData = props.values\r\n const {mockStatus, isSchema} = newData\r\n if (isSchema) {\r\n const schemaResponse = schemaDataTransform(newData.schemaResponse)\r\n newData.serviceResponseBody = JSON.stringify({...schemaResponse})\r\n } else {\r\n newData.serviceResponseBody = text\r\n }\r\n newData.mockStatus =\r\n mockStatus === 'enabled' || mockStatus === 'true' || mockStatus === true\r\n ? 'enabled'\r\n : 'disabled'\r\n newData.isPreview = true\r\n props.createPreviewMockAction(newData)\r\n } else if (projectNameState === '') {\r\n projectNameRef.current.focus()\r\n } else if (values.endpoint === '') {\r\n endPointRef.current.focus()\r\n } else if ((textSpecificKey.textType === \"json\") && jsonEditorError || !IsJsonString(text) || text === '') {\r\n responseBodyRef.current.focus()\r\n } else if (values.isDynamicResponse && props.values.dynamicResponseKey === '') {\r\n dynamicResponseKeyRef.current.focus()\r\n } else if ((textSpecificKey.textType === \"json\") &&\r\n (jsonEditorErrorSpecific || !IsJsonString(textSpecificKey.jsontext) || textSpecificKey.jsontext === '') &&\r\n props.values.randomSpecific !== 'random'\r\n ) {\r\n dynamicResponseKeyValueRef.current.focus()\r\n } else if (values.mockName === '') {\r\n mockNameRef.current.focus()\r\n } else if ((values.delaySeconds < 0) && values.delaySeconds > 60) {\r\n delayResponseRef.current.focus()\r\n }\r\n else if (values.isDynamicResponse &&\r\n props.values.dynamicResponseKey !== '' &&\r\n props.values.randomSpecific !== 'random' &&\r\n values.mockName !== '' &&\r\n textSpecificKey.othertext !== '' && \r\n values.endpoint !== '' && textSpecificKey.textType === \"other\") {\r\n setModalOpen(true)\r\n const newData = props.values\r\n const {mockStatus, isSchema} = newData\r\n if (isSchema) {\r\n const schemaResponse = schemaDataTransform(newData.schemaResponse)\r\n newData.serviceResponseBody = JSON.stringify({...schemaResponse})\r\n } else {\r\n newData.serviceResponseBody = text\r\n }\r\n newData.mockStatus =\r\n mockStatus === 'enabled' || mockStatus === 'true' || mockStatus === true\r\n ? 'enabled'\r\n : 'disabled'\r\n newData.isPreview = true\r\n props.createPreviewMockAction(newData)\r\n }\r\n else if ((textSpecificKey.textType === \"other\") && text === '') {\r\n responseBodyRef.current.focus()\r\n } \r\n else if ((textSpecificKey.textType === \"other\") &&\r\n (textSpecificKey.othertext === '') &&\r\n props.values.randomSpecific !== 'random'\r\n ) {\r\n dynamicResponseKeyValueRef.current.focus()\r\n } \r\n }\r\n\r\n const handleSubmitClick = e => {\r\n setSaveButtonClicked(true)\r\n if (!isSchema) {\r\n const schemaData = values.schemaResponse.filter(value => value.name !== '')\r\n setFieldValue('schemaResponse',schemaData)\r\n setFieldValue('specificResponseType', textSpecificKey.textType)\r\n }\r\n\r\n if (isSchema) {\r\n const schemaData1 = schemaDataTransform(values.schemaResponse)\r\n setFieldValue('serviceResponseBody', (JSON.stringify({...schemaData1})))\r\n }\r\n\r\n if (values.mockName === '') {\r\n mockNameRef.current.focus()\r\n }\r\n\r\n if ((\r\n (!IsJsonString(textSpecificKey.jsontext) || jsonEditorErrorSpecific || textSpecificKey.jsontext === '') &&\r\n props.values.randomSpecific !== 'random' && textSpecificKey.textType === \"json\") || \r\n ((textSpecificKey.othertext === '') &&\r\n props.values.randomSpecific !== 'random' && textSpecificKey.textType === \"other\"\r\n )\r\n ) {\r\n dynamicResponseKeyValueRef.current.focus()\r\n }\r\n if (props.values.dynamicResponseKey === '') {\r\n dynamicResponseKeyRef.current.focus()\r\n }\r\n if (((text === '' || jsonEditorError || !IsJsonString(text)) && textSpecificKey.textType === \"json\") || \r\n ((text === '') && textSpecificKey.textType === \"other\")) {\r\n responseBodyRef.current.focus()\r\n }\r\n if (values.endpoint === '') {\r\n endPointRef.current.focus()\r\n }\r\n if (projectNameState === '') {\r\n projectNameRef.current.focus()\r\n }\r\n }\r\n\r\n const onSelect = (selectedList, selectedItem) => {\r\n const selVal = inputEl.current.getSelectedItems()\r\n const selMethods = selVal.map(x => x.method)\r\n setFieldValue('allowedMethods', selMethods)\r\n if (values.serviceResponseType === serviceResponseType.DEFAULT) {\r\n setIsResponseBodyVisible(true)\r\n updateState({...data, isDynamicOptionDisplayed: true, isExisting: false})\r\n }\r\n }\r\n const onRemove = (selectedList, removedItem) => {\r\n const selVal = inputEl.current.getSelectedItems()\r\n const selMethods = selVal.map(x => x.method)\r\n setFieldValue('allowedMethods', selMethods)\r\n if (values.serviceResponseType === serviceResponseType.DEFAULT) {\r\n setIsResponseBodyVisible(true)\r\n updateState({...data, isDynamicOptionDisplayed: true, isExisting: false})\r\n }\r\n }\r\n\r\n const isMatchingProjectName = name => {\r\n const results = []\r\n allProjectOptions.map(e => {\r\n if (e.label.toLowerCase().includes(name.toLowerCase())) {\r\n results.push(e)\r\n }\r\n return results\r\n })\r\n return results\r\n }\r\n\r\n const readFileAsText = async fileInput => {\r\n return new Promise(resolve => {\r\n const reader = new FileReader()\r\n reader.readAsText(fileInput, 'UTF-8')\r\n const csvtojson = jsonConvertedData => {\r\n const jsonData = jsonConvertedData.replaceAll('\\r', '')\r\n const lines = jsonData.split('\\n')\r\n const result = []\r\n const headers = lines[0].split(',')\r\n for (let i = 1; i < lines.length; i += 1) {\r\n try {\r\n if (!lines[i]) continue\r\n const obj = {}\r\n const currentLine = lines[i].split(',')\r\n for (const [j, header] of headers.entries()) {\r\n let key = header\r\n if (key === undefined || key === '') key = 'data'\r\n obj[key] = currentLine[j]\r\n }\r\n result.push(obj)\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n const convertedJson = result\r\n return convertedJson\r\n }\r\n reader.addEventListener('load', () => {\r\n const renderedResult = reader.result\r\n const jsonParseValue = csvtojson(renderedResult)\r\n if (jsonParseValue.error !== 'error') {\r\n try {\r\n const jsonParsedData = JSON.parse(renderedResult)\r\n setJson(jsonParsedData)\r\n } catch (error) {\r\n return error\r\n }\r\n setFieldValue('dynamicResponseKey', '')\r\n resolve(renderedResult)\r\n } else {\r\n console.log('json file is not valid')\r\n }\r\n })\r\n })\r\n }\r\n const uploadFileForJSON = async fileInput => {\r\n readFileAsText(fileInput)\r\n }\r\n\r\n useEffect(() => {\r\n if (values?.serviceResponseBody) {\r\n if (\r\n values?.serviceResponseBody === null ||\r\n values?.serviceResponseBody === '' ||\r\n values?.serviceResponseBody === undefined ||\r\n values?.serviceResponseBody === '\"' ||\r\n values?.serviceResponseBody === '{' ||\r\n values?.serviceResponseBody === '['\r\n ) {\r\n json1 = {}\r\n } else {\r\n json1 = JSON.parse(values?.serviceResponseBody)\r\n }\r\n setJson(json1)\r\n }\r\n json1 = values?.dynamicResponseSpecificKeyValue\r\n if (json1 !== \"\" && IsJsonString(json1)) {\r\n json1 = JSON.parse(json1)\r\n setTextSpecificKey({...textSpecificKey, jsontext: JSON.stringify(json1), textType: \"json\"})\r\n } else {\r\n setTextSpecificKey({...textSpecificKey, othertext: json1, textType: \"other\"})\r\n }\r\n }, [values?.status === 'enabled'])\r\n\r\n const onChangeText = txt => {\r\n setText(txt)\r\n setSaveButtonClicked(false)\r\n setPreviewButtonClicked(false)\r\n }\r\n\r\n const onChangeTextSpecificKey = txt => {\r\n setTextSpecificKey({...textSpecificKey, jsontext: txt, textType: \"json\"})\r\n setSaveButtonClicked(false)\r\n setPreviewButtonClicked(false)\r\n }\r\n\r\n const onChangeSpecificKey = e => {\r\n let i = e.target.value\r\n // if (i === \"true\") {\r\n // i = true\r\n // } else if (i === \"false\") {\r\n // i = false\r\n // } \r\n // eslint-disable-next-line\r\n if (i !== \"\" && !isNaN(Number(i))) { \r\n i = Number(i)\r\n }\r\n setTextSpecificKey({\r\n ...textSpecificKey,\r\n othertext: i,\r\n textType: \"other\"\r\n })\r\n setSaveButtonClicked(false)\r\n setPreviewButtonClicked(false)\r\n }\r\n\r\n const onModeChangeSpecificKey = mode1 => {\r\n setModeSpecificKey(mode1)\r\n setSaveButtonClicked(false)\r\n setPreviewButtonClicked(false)\r\n }\r\n\r\n const onModeChange = m => {\r\n setMode(m)\r\n }\r\n\r\n useEffect(() => {\r\n if (json) {\r\n setText(JSON.stringify(json, null, 2))\r\n }\r\n }, [json])\r\n\r\n useEffect(() => {\r\n setFieldValue('serviceResponseBody', text)\r\n\r\n const body = props?.values?.serviceResponse?.serviceResponseBody\r\n let txt = {}\r\n let bodyVar = {}\r\n if (textSpecificKey.textType === \"json\") {\r\n try {\r\n txt = JSON.parse(text)\r\n bodyVar = JSON.parse(body.replace(/\\|]/g, ''))\r\n if (!isEqual(txt, bodyVar)) {\r\n setFieldValue('dynamicResponseKey', '')\r\n }\r\n } catch (e) {\r\n setFieldValue('dynamicResponseKey', '')\r\n }\r\n }\r\n }, [text])\r\n\r\n useEffect(() => {\r\n if (textSpecificKey.jsontext !== '' && IsJsonString(textSpecificKey.jsontext)) {\r\n setFieldValue('dynamicResponseSpecificKeyValue', textSpecificKey.jsontext)\r\n } else if (textSpecificKey.othertext !== '' && !IsJsonString(textSpecificKey.othertext)) {\r\n setFieldValue('dynamicResponseSpecificKeyValue', textSpecificKey.othertext)\r\n } else {\r\n setFieldValue('dynamicResponseSpecificKeyValue', '')\r\n }\r\n }, [textSpecificKey])\r\n\r\n useEffect(() => {\r\n if (history.location.pathname === '/create-mock') {\r\n json1 = {}\r\n setText(JSON.stringify(json1, null, 2))\r\n }\r\n }, [history.location.pathname])\r\n\r\n useEffect(() => {\r\n setFieldValue('allowedMethods', ['GET'])\r\n }, [])\r\n\r\n useEffect(() => {\r\n const path = window.location.pathname\r\n const breadcrumbs = path.split('/')\r\n const editpath = EditMockUrl.split('/')\r\n const createpath = createMockUrl.split('/')\r\n if (breadcrumbs[1] === editpath[1]) {\r\n setBreadcrumb('Edit Mock')\r\n }\r\n if (breadcrumbs[1] === createpath[1]) {\r\n setBreadcrumb('Create Mock')\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n const title = window.location.pathname\r\n const titlepage = title.split('/')\r\n const editpath = EditMockUrl.split('/')\r\n const createpath = createMockUrl.split('/')\r\n if (titlepage[1] === editpath[1]) {\r\n setPagetitle('Edit Mock')\r\n }\r\n if (titlepage[1] === createpath[1]) {\r\n setPagetitle('Create Mock')\r\n }\r\n }, [])\r\n\r\n const {EXPRESS_REST_BASE_URL} = process.env\r\n const basePath = `${window.location.origin}${EXPRESS_REST_BASE_URL}`\r\n return (\r\n <div id=\"dashboard\" className=\"dashboard\" data-testid=\"dashboard\">\r\n <Nav pageTitle=\"iRest\" link={DashboardUrl} data-testid=\"navigation\" />\r\n <nav aria-label=\"breadcrumb col-20\" className=\"widthchange\" data-testid=\"nav2\">\r\n <ol className=\"breadcrumb\" data-test-id=\"orderedList\">\r\n <Link\r\n to={DashboardUrl}\r\n className=\"breadcrumb-item \"\r\n aria-current=\"page\"\r\n data-test-id=\"link\"\r\n >\r\n Dashboard\r\n </Link>\r\n <i>&nbsp; / &nbsp;</i>\r\n <span>{breadcrumb}</span>\r\n </ol>\r\n </nav>\r\n\r\n <div className=\"container-fluid container-padding\" data-testid=\"container\">\r\n <div className=\"row mock-card\" data-testid=\"row\">\r\n <form onSubmit={handleSubmit} className=\"form-width\" data-testid=\"handleSubmit\">\r\n <div className=\"row\" data-testid=\"row1\">\r\n <div className=\"form-group col-xl-4\" data-testid=\"form\">\r\n <label htmlFor=\"inputApi\" data-testid=\"inputApi\" className=\"heading-text\">\r\n API\r\n </label>\r\n <div className=\"input-group\" data-testid=\"inputgroupapi\">\r\n <input\r\n data-testid=\"apiInput\"\r\n type=\"text\"\r\n name=\"path\"\r\n className=\"form-control options-bold-text\"\r\n id=\"inputApi\"\r\n placeholder=\"\"\r\n value={basePath}\r\n onChange={handleChange}\r\n disabled\r\n />\r\n <span className=\"input-group-slash\">/</span>\r\n </div>\r\n </div>\r\n <div className=\"form-group col-xl-4\">\r\n <label htmlFor=\"inputProject\" className=\"heading-text\">\r\n Project Name\r\n </label>\r\n <div className=\"input-group\" style={props.values.mockId ? {} : {display: 'none'}}>\r\n <input\r\n type=\"text\"\r\n value={values.projectName}\r\n disabled\r\n className=\"form-control options-bold-text\"\r\n id=\"projectNoneEditable\"\r\n style={props.values.mockId ? {} : {display: 'none'}}\r\n />\r\n <span className=\"input-group-slash\">/</span>\r\n </div>\r\n <span style={props.values.mockId ? {display: 'none'} : {}}>\r\n <div className=\"input-group\">\r\n <div className=\"create-project-typeahead\">\r\n <Typeahead\r\n emptyLabel=\"\"\r\n name=\"projectName\"\r\n id=\"inputProject\"\r\n placeholder=\"Project Name\"\r\n onBlur={e => setFieldTouched('projectName', true)}\r\n className=\"type-head\"\r\n onChange={selected => {\r\n setFieldValue(\r\n 'projectId',\r\n selected.length ? selected[0].id : props.values.projectId\r\n )\r\n setFieldValue(\r\n 'projectName',\r\n selected.length ? selected[0].label : props.values.projectName\r\n )\r\n setIsFullFormDisplay(true)\r\n setProjectName(selected.length ? selected[0].label : '')\r\n if (selected.length === 0) {\r\n setAllProjectsOption([])\r\n setFieldValue('projectId', '')\r\n setFieldValue('projectName', '')\r\n setIsFullFormDisplay(false)\r\n }\r\n }}\r\n onInputChange={event => {\r\n setNewProject(false)\r\n setTypeaheadInputValue(event)\r\n setFieldValue('projectName', event)\r\n setFieldValue('projectId', createMockTemp?.response?.data?._id)\r\n typeaheadKeyPressedHandler(event)\r\n }}\r\n options={allProjectOptions}\r\n ref={projectNameRef}\r\n />\r\n\r\n <span className=\"input-slash-url\">/</span>\r\n\r\n {projectLabel === '' && (\r\n <div className=\"input-feedback text-danger\" id=\"input-error\">\r\n Project name required\r\n </div>\r\n )}\r\n\r\n {typeaheadInput.length > 0 && !isSpecialCharacter(typeaheadInput) && (\r\n <div className=\"input-feedback text-danger\" id=\"input-error\">\r\n Special characters not allowed\r\n </div>\r\n )}\r\n {typeaheadInput.length > 0 && isSpecialCharacter(typeaheadInput) && (\r\n <span\r\n className=\"create-project\"\r\n onClick={() => !errors.projectName && createNewProject()}\r\n style={\r\n typeaheadInput.length <= 3 ||\r\n newProject ||\r\n isMatchingProjectName(typeaheadInput).length > 0\r\n ? {display: 'none'}\r\n : {}\r\n }\r\n title=\"Please add project!\"\r\n >\r\n +\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n {errors.projectName && touched.projectName && (\r\n <div className=\"input-feedback text-danger\">{errors.projectName}</div>\r\n )}\r\n </span>\r\n </div>\r\n <div className=\"form-group col-xl-4\">\r\n <label htmlFor=\"inputReqUrl\" className=\"heading-text\">\r\n Endpoint\r\n </label>\r\n <input\r\n type=\"text\"\r\n name=\"endpoint\"\r\n className=\"form-control options-bold-text\"\r\n id=\"inputReqUrl\"\r\n placeholder=\"Endpoint\"\r\n ref={endPointRef}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n value={values.endpoint}\r\n disabled={pagetitle !== 'Create Mock'}\r\n />\r\n {errors.endpoint && touched.endpoint && (\r\n <div className=\"input-feedback text-danger\">{errors.endpoint}</div>\r\n )}\r\n </div>\r\n </div>\r\n <div style={props.values.mockId || isFullFormDisplay ? {} : {display: 'none'}}>\r\n <div className=\"row\">\r\n <div className=\"form-group col-md-4\">\r\n <label htmlFor=\"inputReqUrl\" className=\"heading-text\">\r\n API Type\r\n </label>\r\n <br />\r\n <div className=\"radioButtonSetter\">\r\n <input\r\n data-testid=\"api-type-input\"\r\n name=\"randomDefault\"\r\n id=\"default\"\r\n type=\"radio\"\r\n value=\"default\"\r\n disabled={pagetitle === 'Edit Mock'}\r\n onChange={e => defaultSaveExisting(e)}\r\n checked={values.serviceResponseType === serviceResponseType.DEFAULT}\r\n />\r\n <label htmlFor=\"default\" className=\"options-bold-text\">\r\n Fetch\r\n </label>\r\n </div>\r\n <div className=\"radioButtonSetter\">\r\n <input\r\n name=\"randomDefault\"\r\n id=\"save\"\r\n type=\"radio\"\r\n value=\"save\"\r\n disabled={pagetitle === 'Edit Mock'}\r\n onChange={e => defaultSaveExisting(e)}\r\n checked={values.serviceResponseType === serviceResponseType.SAVE}\r\n />\r\n <label htmlFor=\"save\" className=\"options-bold-text\">\r\n Save\r\n </label>\r\n </div>\r\n </div>\r\n <div\r\n className=\"form-group col-md-4\"\r\n >\r\n <label htmlFor=\"inputReqMethod\" className=\"heading-text\">\r\n Request Method\r\n </label>\r\n <Multiselect\r\n options={methodOptions}\r\n \r\n displayValue=\"method\"\r\n showCheckbox\r\n selectedValues={preSelectedMethod}\r\n disablePreSelectedValues={!isResponseBodyVisible}\r\n closeIcon=\"cancel\"\r\n onSelect={onSelect}\r\n ref={inputEl}\r\n onRemove={onRemove}\r\n style={{multiselectContainer: {background: '#fff'}}}\r\n />\r\n </div>\r\n <div className=\"form-group col-md-4\">\r\n <label htmlFor=\"inputStatusCode\" className=\"heading-text\">\r\n Status Code\r\n </label>\r\n <select\r\n id=\"inputStatusCode\"\r\n name=\"statusCode\"\r\n onChange={handleChange}\r\n className=\"form-control options-bold-text\"\r\n value={values.statusCode}\r\n >\r\n {optionValues.map(e => (\r\n <option>{e}</option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n style={\r\n props.values.mockId ||\r\n (isFullFormDisplay && values.serviceResponseType === serviceResponseType.DEFAULT)\r\n ? {height: '40px'}\r\n : {display: 'none'}\r\n }\r\n >\r\n <Field\r\n component={RadioButtonStatus}\r\n name=\"isSchema\"\r\n id=\"isSchema\"\r\n label=\"Show Schema Modal\"\r\n />\r\n </div>\r\n {isSchema ? (\r\n <SchemaView\r\n values={values}\r\n errors={errors}\r\n touched={touched}\r\n Dropdown={Dropdown}\r\n GroupedDropdown={GroupedDropdown}\r\n />\r\n ) : (\r\n <JsonView\r\n values={values}\r\n isResponseBodyVisible={isResponseBodyVisible}\r\n uploadFileForJSON={uploadFileForJSON}\r\n handleChange={handleChange}\r\n text={text}\r\n mode={mode}\r\n modes={modes}\r\n onChangeText={onChangeText}\r\n onModeChange={onModeChange}\r\n setJsonEditorError={setJsonEditorError}\r\n responseBodyRef={responseBodyRef}\r\n previewButtonClicked={previewButtonClicked}\r\n saveButtonClicked={saveButtonClicked} \r\n jsonEditorError={jsonEditorError}\r\n IsJsonString={IsJsonString}\r\n {...props}\r\n />\r\n )}\r\n <br />\r\n <div className=\"mb-3\">\r\n <Accordion\r\n className=\"accordion-top-spacing\"\r\n activeKey={defaultResponse}\r\n onSelect={e => {\r\n if (e === '0') {\r\n setDefaultResponse('0')\r\n } else {\r\n setDefaultResponse('-1')\r\n }\r\n }}\r\n >\r\n <Card>\r\n <CustomToggle eventKey=\"0\">Advanced Response</CustomToggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <div className=\"d-flex pt-5\" id=\"card-body-bulk\">\r\n <div\r\n className=\"form-group col-md-5\"\r\n style={values.serviceResponseType === serviceResponseType.SAVE ? {display: 'none'} : {}}\r\n >\r\n <label\r\n className=\"helpetTextLabel options-bold-text count-box\"\r\n htmlFor=\"randomCount\"\r\n >\r\n Count(Number)\r\n </label>\r\n <div className=\"custom-control custom-switch col-md-9 count-label\">\r\n <Tooltip content=\"Toggle Status\" direction=\"extreme\">\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"isBulkDataCount\"\r\n name=\"isBulkDataCount\"\r\n onChange={handleChangeBulkCountSize}\r\n checked={props.values.isBulkDataCount === true}\r\n />\r\n <label\r\n className=\"custom-control-label\"\r\n htmlFor=\"isBulkDataCount\"\r\n aria-label=\"Save\"\r\n />\r\n </Tooltip>\r\n </div>\r\n <input\r\n type=\"number\"\r\n className=\"form-control\"\r\n id=\"bulkDataCount\"\r\n placeholder=\"1\"\r\n min=\"1\"\r\n max=\"1000000\"\r\n name=\"bulkDataCount\"\r\n onChange={handleChange}\r\n value={values.bulkDataCount}\r\n disabled={!props.values.isBulkDataCount}\r\n />\r\n <span className=\"helperTextSize heading-text\">Max:1000000</span>\r\n </div>\r\n <div\r\n className=\"form-group col-md-5\"\r\n style={values.serviceResponseType === serviceResponseType.SAVE ? {display: 'none'} : {}}\r\n >\r\n <label\r\n className=\"helpetTextLabel options-bold-text size-box\"\r\n htmlFor=\"randomSize\"\r\n >\r\n Size\r\n </label>\r\n <div\r\n className=\"custom-control custom-switch col-md-9\"\r\n id=\"bulkDataSizeToggle\"\r\n >\r\n <Tooltip content=\"Toggle Status\" direction=\"extreme\">\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"isBulkDataSize\"\r\n name=\"isBulkDataSize\"\r\n onChange={handleChangeBulkCountSize}\r\n checked={props.values.isBulkDataSize === true}\r\n />\r\n <label\r\n className=\"custom-control-label\"\r\n aria-label=\"Save1\"\r\n htmlFor=\"isBulkDataSize\"\r\n />\r\n </Tooltip>\r\n </div>\r\n <input\r\n type=\"number\"\r\n className=\"form-control\"\r\n id=\"bulkDataSize\"\r\n placeholder=\"1\"\r\n name=\"bulkDataSize\"\r\n min=\"1\"\r\n max=\"20\"\r\n onChange={handleChange}\r\n value={values.bulkDataSize}\r\n disabled={!props.values.isBulkDataSize}\r\n />\r\n <span className=\"helperTextSize heading-text\">Max: 20MB</span>\r\n </div>\r\n </div>\r\n <div className=\"form-group form-inline col-md-12\">\r\n <p htmlFor=\"inputDelay\" className=\"options-bold-text form-delay\">\r\n Delay(s) (in seconds)\r\n </p>\r\n <div className=\"custom-control custom-switch col-md-2\">\r\n <input\r\n data-testid=\"delay\"\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"customSwitch1\"\r\n name=\"isDelay\"\r\n onChange={handleChange}\r\n value={values.isDelay}\r\n checked={values.isDelay}\r\n />\r\n <label\r\n data-testid=\"box\"\r\n className=\"custom-control-label\"\r\n htmlFor=\"customSwitch1\"\r\n aria-label=\"Save\"\r\n />\r\n </div>\r\n <input\r\n type=\"number\"\r\n className=\"form-control\"\r\n id=\"inputProject\"\r\n placeholder=\"Delay\"\r\n name=\"delaySeconds\"\r\n min=\"1\"\r\n max=\"60\"\r\n onChange={handleChange}\r\n disabled={values.isDelay === false}\r\n value={values.delaySeconds}\r\n ref={delayResponseRef}\r\n />\r\n {((props.values.delaySeconds < 0) || (props.values.delaySeconds > 60)) && \r\n <div className=\"input-feedback m-l-10 text-danger\">Delay response should be between 1 to 10 seconds</div>\r\n }\r\n </div>\r\n <div\r\n style={{\r\n display: data.isDynamicOptionDisplayed ? 'block' : 'none',\r\n }}\r\n >\r\n <div className=\"form-group form-inline col-md-12\">\r\n <p\r\n htmlFor=\"inputDynamicResponse\"\r\n className=\"options-bold-text form-delay\"\r\n >\r\n Dynamic Response\r\n </p>\r\n <div className=\"custom-control custom-switch col-md-2\">\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dynamicResponse\"\r\n name=\"isDynamicResponse\"\r\n onChange={handleChange}\r\n value={values.isDynamicResponse}\r\n checked={values.isDynamicResponse}\r\n />\r\n <label\r\n className=\"custom-control-label\"\r\n htmlFor=\"dynamicResponse\"\r\n aria-label=\"Save\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n id=\"dynamicOptions\"\r\n style={{\r\n display: values.isDynamicResponse ? 'block' : 'none',\r\n }}\r\n >\r\n <div className=\"d-flex\">\r\n <div className=\"form-group col-md-5\">\r\n <label htmlFor=\"inputDynamicKeyLabel\" className=\"options-bold-text\">\r\n Key\r\n </label>\r\n </div>\r\n <div className=\"form-group col-md-6\">\r\n <JsonEditorKey\r\n text={!isSchema ? text : JSON.stringify({...schemaDataTransform(values.schemaResponse)})}\r\n mode=\"tree\"\r\n indentation={4}\r\n dynamicKeys={dynamicKeys}\r\n setDynamicKeys={setDynamicKeys}\r\n value={props.values.dynamicResponseKey}\r\n />\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dummyInput3\"\r\n name=\"dummyInput3\"\r\n onChange=\"true\"\r\n checked=\"true\"\r\n ref={dynamicResponseKeyRef}\r\n />\r\n {errors.dynamicResponseKey && touched.dynamicResponseKey && (\r\n <div className=\"input-feedback text-danger py-1\">\r\n {errors.dynamicResponseKey}\r\n </div>\r\n )}\r\n {(previewButtonClicked || saveButtonClicked) &&\r\n props.values.dynamicResponseKey === '' && (\r\n <div className=\"input-feedback text-danger\" id=\"input-error\">\r\n Response key is required\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"pl-3 mt-2\">\r\n <span className=\"options-bold-text random-specific-padding\">\r\n Random/Specific Response\r\n </span>\r\n <Field\r\n component={RandomSpecificToggle}\r\n name=\"randomSpecific\"\r\n id=\"random\"\r\n label=\"Random\"\r\n />\r\n <Field\r\n component={RandomSpecificToggle}\r\n name=\"randomSpecific\"\r\n id=\"specific\"\r\n label=\"Specific\"\r\n />\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dummyInput\"\r\n name=\"dummyInput\"\r\n onChange={handleChange}\r\n value=\"true\"\r\n checked=\"true\"\r\n />\r\n\r\n <div\r\n className=\"mb-3\"\r\n style={{\r\n display:\r\n props.values.randomSpecific === 'random' ? 'none' : 'block',\r\n }}\r\n >\r\n <div className=\"form-group \" style={{height: '250px'}}>\r\n <label\r\n htmlFor=\"inputDynamicResSpecKeyValue\"\r\n className=\"options-bold-text\"\r\n >\r\n Specific Response\r\n </label>\r\n <div className='responsetype'>\r\n <label> \r\n <input\r\n type=\"radio\"\r\n value=\"json\"\r\n name=\"responseDataType\"\r\n onChange={handleSpecificResponseChange}\r\n checked={textSpecificKey.textType === \"json\"}\r\n />Json\r\n </label>\r\n <label> \r\n <input\r\n type=\"radio\"\r\n value=\"other\"\r\n name=\"responseDataType\"\r\n onChange={handleSpecificResponseChange}\r\n checked={textSpecificKey.textType === \"other\"}\r\n />Other\r\n </label>\r\n </div>\r\n {textSpecificKey.textType === \"json\" ? <span>\r\n <JsonEditor\r\n text={textSpecificKey.jsontext}\r\n mode={modeSpecificKey}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={onChangeTextSpecificKey}\r\n onModeChange={onModeChangeSpecificKey}\r\n value={textSpecificKey.jsontext}\r\n height=\"true\"\r\n setJsonEditorError={setJsonEditorErrorSpecific}\r\n {...props}\r\n />\r\n {errors.dynamicResponseSpecificKeyValue &&\r\n touched.dynamicResponseSpecificKeyValue && (\r\n <div\r\n style={{marginTop: '-5px'}}\r\n className=\"input-feedback text-danger\"\r\n >\r\n {errors.dynamicResponseSpecificKeyValue}\r\n </div>\r\n )}\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"dummyInput5\"\r\n name=\"dummyInput5\"\r\n onChange=\"true\"\r\n checked=\"true\"\r\n ref={dynamicResponseKeyValueRef}\r\n />\r\n {(previewButtonClicked || saveButtonClicked) &&\r\n textSpecificKey.jsontext === '' &&\r\n props.values.randomSpecific !== 'random' && (\r\n <div\r\n className=\"input-feedback text-danger\"\r\n id=\"input-error-specific\"\r\n >\r\n Specific response is required\r\n </div>\r\n )}\r\n {(previewButtonClicked || saveButtonClicked) &&\r\n (jsonEditorErrorSpecific || !IsJsonString(textSpecificKey.jsontext)) && (\r\n <div\r\n className=\"input-feedback text-danger\"\r\n id=\"input-error-specific\"\r\n >\r\n Please provide valid json response\r\n </div>\r\n )}\r\n </span> : <span>\r\n <textarea onChange={onChangeSpecificKey} defaultValue={textSpecificKey.othertext} />\r\n {(previewButtonClicked || saveButtonClicked) &&\r\n textSpecificKey.othertext === '' &&\r\n props.values.randomSpecific !== 'random' && (\r\n <div\r\n className=\"input-feedback text-danger\"\r\n id=\"other-input-error-specific\"\r\n >\r\n Specific response is required\r\n </div>\r\n )}\r\n </span>}\r\n </div>\r\n </div>\r\n <br />\r\n <div\r\n className=\"d-flex pt-5\"\r\n style={{\r\n marginTop:\r\n props.values.randomSpecific === 'random' ? '-25px' : '65px',\r\n }}\r\n >\r\n <div className=\"form-group col-md-5\">\r\n <label\r\n className=\"helpetTextLabel options-bold-text count-box\"\r\n htmlFor=\"randomCount\"\r\n >\r\n Count(Number)\r\n </label>\r\n <div className=\"custom-control custom-switch col-md-9 count-label\">\r\n <Tooltip content=\"Toggle Status\" direction=\"extreme\">\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"randomCountSwitch\"\r\n name=\"isDynamicImportCount\"\r\n onChange={handleChangeCountSize}\r\n checked={props.values.isDynamicImportCount === true}\r\n />\r\n <label\r\n className=\"custom-control-label\"\r\n htmlFor=\"randomCountSwitch\"\r\n aria-label=\"Save\"\r\n />\r\n </Tooltip>\r\n </div>\r\n <input\r\n type=\"number\"\r\n className=\"form-control\"\r\n id=\"randomCount\"\r\n placeholder=\"1\"\r\n min=\"1\"\r\n max=\"1000000\"\r\n name=\"dynamicImportCount\"\r\n onChange={handleChange}\r\n value={values.dynamicImportCount}\r\n disabled={!props.values.isDynamicImportCount}\r\n />\r\n <span className=\"helperTextSize heading-text\">Max:1000000</span>\r\n </div>\r\n <div className=\"form-group col-md-5\">\r\n <label\r\n className=\"helpetTextLabel options-bold-text size-box\"\r\n htmlFor=\"randomSize\"\r\n >\r\n Size\r\n </label>\r\n <div className=\"custom-control custom-switch col-md-9 toggle-count-label\">\r\n <Tooltip content=\"Toggle Status\" direction=\"extreme\">\r\n <input\r\n type=\"checkbox\"\r\n className=\"custom-control-input\"\r\n id=\"randomSizeSwitch\"\r\n name=\"isDynamicImportSize\"\r\n onChange={handleChangeCountSize}\r\n checked={props.values.isDynamicImportSize === true}\r\n />\r\n <label\r\n className=\"custom-control-label\"\r\n aria-label=\"Save1\"\r\n htmlFor=\"randomSizeSwitch\"\r\n />\r\n </Tooltip>\r\n </div>\r\n <input\r\n type=\"number\"\r\n className=\"form-control\"\r\n id=\"randomSize\"\r\n placeholder=\"1\"\r\n name=\"dynamicImportSize\"\r\n min=\"1\"\r\n max=\"20480\"\r\n onChange={handleChange}\r\n value={values.dynamicImportSize}\r\n disabled={!props.values.isDynamicImportSize}\r\n />\r\n <span className=\"helperTextSize heading-text\">\r\n Max: 20480KB (20MB)\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n </div>\r\n\r\n <Accordion\r\n className=\"accordion-spacing\"\r\n activeKey={defaultOptions}\r\n onSelect={e => {\r\n if (e === '0') {\r\n setDefaultOptions('0')\r\n } else {\r\n setDefaultOptions('-1')\r\n }\r\n }}\r\n >\r\n <Card>\r\n <CustomToggle eventKey=\"0\">Advanced Options</CustomToggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <div className=\"card-body\">\r\n <button\r\n data-testid=\"headerbtn\"\r\n type=\"button\"\r\n onClick={handlerAddHeaders}\r\n className=\"btn btn-primary mb-2\"\r\n >\r\n <img src={buttonCircle} alt=\"button_circle\" className=\"circle-img\" />\r\n Headers\r\n </button>\r\n <div id=\"headers\">\r\n {fields.map((field, idx) => {\r\n return (\r\n <div\r\n className=\"d-flex align-items-center justify-content-between\"\r\n key={`${field}-${idx}`}\r\n >\r\n <div className=\"form-group col-md-5\">\r\n <label htmlFor=\"inputApi\" className=\"heading-text\">\r\n Key\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"inputApi\"\r\n name={`headers[${idx}].key`}\r\n placeholder=\"Enter the key\"\r\n onChange={handleChange}\r\n value={values.headers[idx] ? values.headers[idx].key : ''}\r\n />\r\n </div>\r\n <div className=\"form-group col-md-5\">\r\n <label htmlFor=\"inputReqUrl\" className=\"heading-text\">\r\n Value\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"inputReqUrl\"\r\n name={`headers[${idx}].value`}\r\n onChange={handleChange}\r\n placeholder=\"Enter the Value\"\r\n value={values.headers[idx] ? values.headers[idx].value : ''}\r\n />\r\n </div>\r\n <button\r\n data-testid=\"handleRemoveButton\"\r\n type=\"button\"\r\n className=\"btn btn-light h-25 mt-3 delete-btn\"\r\n onClick={() => handleRemove(idx)}\r\n >\r\n <img src={deleteTrash} alt=\"delete_trash\" className=\"trash-img\" />\r\n Delete\r\n </button>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n <br />\r\n <div id=\"params\">\r\n {params.map((field, idx) => {\r\n return (\r\n <div\r\n className=\"d-flex align-items-center justify-content-between\"\r\n key={`${field}-${idx}`}\r\n >\r\n <div className=\"form-group col-md-5\">\r\n <label htmlFor=\"inputApi\" className=\"heading-text\">\r\n Key\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"inputApi\"\r\n placeholder=\"Enter the key\"\r\n name={`params[${idx}].key`}\r\n onChange={handleChange}\r\n value={values.params[idx] ? values.params[idx].key : ''}\r\n />\r\n </div>\r\n <div className=\"form-group col-md-5\">\r\n <label htmlFor=\"inputReqUrl\" className=\"heading-text\">\r\n Value\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"inputReqUrl\"\r\n placeholder=\"Enter the Value\"\r\n name={`params[${idx}].value`}\r\n onChange={handleChange}\r\n value={values.params[idx] ? values.params[idx].value : ''}\r\n />\r\n </div>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-light h-25 mt-3 delete-btn\"\r\n onClick={() => handleRemoveParmas(idx)}\r\n >\r\n <img src={deleteTrash} alt=\"delete_trash\" className=\"trash-img\" />\r\n Delete\r\n </button>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n\r\n <div className=\"row\">\r\n <div className=\"form-group col-md-6\">\r\n <label htmlFor=\"inputContentType\" className=\"heading-text\">\r\n Content-Type{' '}\r\n </label>\r\n <select\r\n name=\"contentType\"\r\n id=\"inputContentType\"\r\n className=\"form-control options-bold-text\"\r\n onChange={handleChange}\r\n value={values.contentType}\r\n >\r\n <option>Text/Plain</option>\r\n <option>Application/Json</option>\r\n </select>\r\n </div>\r\n <div className=\"form-group col-md-6\">\r\n <label htmlFor=\"inputMockName\" className=\"heading-text\">\r\n Mock Name\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control options-bold-text\"\r\n name=\"mockName\"\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n id=\"inputMockName\"\r\n value={values.mockName}\r\n ref={mockNameRef}\r\n />\r\n {errors.mockName && touched.mockName && (\r\n <div className=\"input-feedback text-danger\">{errors.mockName}</div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n <div style={props.values.mockId || isFullFormDisplay ? {} : {display: 'none'}}>\r\n <Field\r\n component={RadioButtonStatus}\r\n name=\"mockStatus\"\r\n id=\"mockStatus\"\r\n label=\"Mock Status Active\"\r\n />\r\n <br />\r\n <div className=\"d-flex justify-content-start mr-2\">\r\n <button\r\n type=\"submit\"\r\n className=\"btn btn-success saveBtn\"\r\n onClick={handleSubmitClick}\r\n >\r\n Save\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-info previewBtn\"\r\n disabled={values.serviceResponseType === serviceResponseType.SAVE}\r\n onClick={handlePreviewBtnClick}\r\n >\r\n Preview\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n <Preview\r\n {...props}\r\n method={values.method}\r\n statusCode={values.statusCode}\r\n modalOpen={modalOpen}\r\n setModalOpen={setModalOpen}\r\n isPending={props?.createPreviewMock?.isPending}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\nconst mapStateToProps = state => ({\r\n successList: state.projectList,\r\n createMock: state.createMock,\r\n createMockTemp: state.createMock,\r\n fileUploadStatus: state.fileUpload,\r\n mockListResponse: state.mockList,\r\n saveReference: state.saveReference,\r\n createPreviewMock: state.createPreviewMock,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n mockListAction,\r\n fetchListById,\r\n flushMockData,\r\n createPreviewMockAction,\r\n flushMockStatus,\r\n flushPreviewMockData,\r\n },\r\n dispatch\r\n )\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateMock)\r\n","import {CREATE_PROJECT, CREATE_PROJECT_ERROR, CREATE_PROJECT_SUCCESS} from '../actionTypes'\r\n\r\nexport const createProjectAction = data => {\r\n return {\r\n type: CREATE_PROJECT,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: CREATE_PROJECT_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: CREATE_PROJECT_ERROR,\r\n data,\r\n }\r\n}\r\n","import React, {useState} from 'react'\r\nimport {Formik} from 'formik'\r\nimport {connect} from 'react-redux'\r\nimport * as Yup from 'yup'\r\nimport {createMockAction} from '../../actions/createMock/createMockAction'\r\nimport CreateMock from './CreateMockPage'\r\nimport {IsJsonString} from '../../../server/helpers/util'\r\n\r\nconst Form = props => {\r\n const {\r\n match: {\r\n params: {mockId},\r\n },\r\n } = props\r\n\r\n const [mockListError, setMockListError] = useState(false)\r\n\r\n const submit = data => {\r\n const newData = {...data}\r\n const {mockStatus} = data\r\n newData.mockStatus =\r\n mockStatus === 'enabled' || mockStatus === true || mockStatus === 'true'\r\n ? 'enabled'\r\n : 'disabled'\r\n\r\n newData.isPreview = false\r\n\r\n if (newData?.isBulkDataSize) {\r\n const bulkSize = newData.bulkDataSize * 1024\r\n newData.bulkDataSize = bulkSize\r\n }\r\n\r\n const newHeaders = newData?.headers?.filter(e => e)\r\n newData.headers = newHeaders\r\n\r\n if (newData.serviceResponseType === 'existing') {\r\n /* eslint-disable no-unused-vars */\r\n const {\r\n serviceResponse,\r\n serviceResponseBody,\r\n serviceResponseBodyType,\r\n ...updatedData\r\n } = newData\r\n\r\n updatedData.referenceId = props.saveReference\r\n\r\n if (\r\n (updatedData.referenceId === '' || updatedData.referenceId === null) &&\r\n props.mockListResponse.response.data &&\r\n props.mockListResponse.response.data.mockList &&\r\n props.mockListResponse.response.data.mockList.length > 0\r\n ) {\r\n setMockListError(true)\r\n } else if (\r\n props.mockListResponse.response.data &&\r\n props.mockListResponse.response.data.mockList &&\r\n props.mockListResponse.response.data.mockList.length === 0\r\n ) {\r\n setMockListError(true)\r\n } else {\r\n props.dispatch(createMockAction(updatedData))\r\n }\r\n } else if (newData.serviceResponseType === 'default') {\r\n /* eslint-disable no-lonely-if */\r\n if (\r\n newData?.isDynamicResponse &&\r\n newData?.dynamicResponseSpecific &&\r\n newData?.dynamicResponseSpecificKeyValue !== '' &&\r\n newData?.dynamicResponseKey !== '' &&\r\n newData?.specificResponseType === 'json' &&\r\n IsJsonString(newData?.serviceResponseBody) &&\r\n IsJsonString(newData?.dynamicResponseSpecificKeyValue)\r\n ) {\r\n props.dispatch(createMockAction(newData))\r\n } else if ( newData?.isDynamicResponse &&\r\n newData?.dynamicResponseSpecific &&\r\n newData?.dynamicResponseSpecificKeyValue !== '' &&\r\n newData?.dynamicResponseKey !== '' &&\r\n newData?.specificResponseType === 'other') {\r\n props.dispatch(createMockAction(newData))\r\n } else if (\r\n newData?.isDynamicResponse &&\r\n newData?.dynamicResponseRandom &&\r\n newData?.dynamicResponseKey !== '' &&\r\n IsJsonString(newData?.serviceResponseBody) &&\r\n IsJsonString(newData?.dynamicResponseSpecificKeyValue)\r\n ) {\r\n props.dispatch(createMockAction(newData))\r\n } else if (\r\n !newData?.isDynamicResponse &&\r\n IsJsonString(newData?.serviceResponseBody) &&\r\n IsJsonString(newData?.dynamicResponseSpecificKeyValue)\r\n ) {\r\n props.dispatch(createMockAction(newData))\r\n }\r\n } else {\r\n if (newData?.endpoint && newData?.projectName && newData?.mockName) {\r\n props.dispatch(createMockAction(newData))\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <Formik\r\n initialValues={{\r\n projectId: '',\r\n projectName: '',\r\n serviceResponseBody: '',\r\n serviceResponseType: 'default',\r\n serviceResponseBodyType: 'default',\r\n referenceId: '',\r\n path: 'http://localhost:9000',\r\n endpoint: '',\r\n method: 'GET',\r\n statusCode: 200,\r\n isDelay: false,\r\n delaySeconds: 0,\r\n headers: [],\r\n params: [],\r\n contentEncoding: 'UTF-8',\r\n contentType: 'Application/Json',\r\n mockName: '',\r\n mockId: mockId || '',\r\n mockStatus: 'enabled',\r\n randomSpecific: 'random',\r\n isDynamicResponse: false,\r\n dynamicResponseKey: '',\r\n dynamicResponseRandom: true,\r\n dynamicResponseSpecific: false,\r\n dynamicResponseSpecificKeyValue: '',\r\n isDynamicImportCount: true,\r\n dynamicImportCount: 1,\r\n isDynamicImportSize: false,\r\n dynamicImportSize: 1024,\r\n bulkDataCount: 1,\r\n isBulkDataCount: true,\r\n bulkDataSize: 20,\r\n isBulkDataSize: false,\r\n allowedMethods: [],\r\n isSchema: false,\r\n schemaResponse: [{name: 'field', type: 'string', fakerValue: '$address.buildingNumber'} ],\r\n }}\r\n validationSchema={Yup.object().shape({\r\n projectName: Yup.string(),\r\n endpoint: Yup.string()\r\n .required('Endpoint name is required')\r\n .matches(/^[0-9a-zA-Z_$-.+! *'(),]/, 'Space and special characters are not allowed'),\r\n mockName: Yup.string().required('Mock name is required'),\r\n serviceResponseType: Yup.string(),\r\n serviceResponseBody: Yup.string().when('serviceResponseType', {\r\n is: 'default',\r\n then: Yup.string().required('Response body is required'),\r\n otherwise: Yup.string(),\r\n }),\r\n isDynamicResponse: Yup.boolean(),\r\n dynamicResponseKey: Yup.string().when('isDynamicResponse', {\r\n is: true,\r\n then: Yup.string(),\r\n }),\r\n dynamicResponseSpecificKeyValue: Yup.string(),\r\n schemaResponse: Yup.array().of(Yup.object().shape({\r\n name: Yup.string().when('isSchema', {\r\n is: true,\r\n then: Yup.string(),\r\n otherwise: Yup.string()\r\n .matches(/^[0-9a-zA-Z_-]+$/, 'Space and special characters are not allowed')\r\n .required('This Field is Required'),\r\n }),\r\n }))\r\n })}\r\n render={data => {\r\n let bulkSize = 0\r\n if (data?.values?.bulkDataSize && data?.values?.bulkDataSize > 20) {\r\n bulkSize = data?.values?.bulkDataSize\r\n data.values.bulkDataSize = bulkSize / 1024\r\n }\r\n\r\n const nullKeys = Object.keys(data.values).filter(key => data.values[key] === null)\r\n if (nullKeys.length > 0) {\r\n // eslint-disable-next-line no-return-assign\r\n nullKeys.forEach(key => data.values[key] = data.initialValues[key])\r\n }\r\n return (\r\n <CreateMock\r\n {...data}\r\n mockId={mockId}\r\n mockListError={mockListError}\r\n setMockListError={setMockListError}\r\n />\r\n )\r\n }}\r\n onSubmit={submit}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n createMock: state.createMock,\r\n saveReference: state.saveReference,\r\n mockListResponse: state.mockList,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(Form)\r\n","import React, {useState} from 'react'\r\nimport {Link} from 'react-router-dom'\r\nimport {connect} from 'react-redux'\r\nimport {registerUserAction} from '../../actions/register/authenticationActions'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport '../../assets/styles/style.css'\r\nimport img from '../../assets/images/iRest_files/irest_logo.png'\r\n\r\nconst RegisterPage = props => {\r\n const initialValue = {name: '', email: '', password: ''}\r\n const [user, setUser] = useState(initialValue)\r\n const [error, setError] = useState(initialValue)\r\n \r\n const validator = (name, event) => {\r\n\r\n if (name === 'password') {\r\n const {value} = event.target\r\n if (value.length === 0) {\r\n return setError({...error, [name]: 'This field is Required'})\r\n }\r\n if (value.length < 3) {\r\n return setError({...error, [name]: 'Password atlest have 3 characters'})\r\n }\r\n if (value.length > 30) {\r\n return setError({...error, [name]: 'Password should not have more than 12 characters'})\r\n }\r\n return setError({...error, [name]: ''})\r\n }\r\n\r\n }\r\n const inputChangeHandler = name => event => {\r\n setUser({...user, [name]: event.target.value})\r\n validator(name, event)\r\n }\r\n\r\n const registerHandler = event => {\r\n event.preventDefault()\r\n if (error.name || error.email || error.password) return null\r\n if (!user.name || !user.email || !user.password) return\r\n props.dispatch(registerUserAction(user))\r\n }\r\n\r\n\r\n return (\r\n <div id=\"login\">\r\n <div className=\"login-background col-xs-12 col-sm-8 col-md-6 col-lg-5\">\r\n <img src={img} alt=\"sample_logo\" className=\"rest_logo\" />\r\n </div>\r\n <div className=\"login-width col-xs-12 col-sm-8 col-md-6 col-lg-7\">\r\n <div id=\"login-column w-100\">\r\n <div id=\"login-box\">\r\n <form id=\"login-form\" className=\"form\" onSubmit={registerHandler}>\r\n <div className=\"login-header\">\r\n <h4 className=\"\">Sign in to your iRest account</h4>\r\n </div>\r\n <br />\r\n <div className=\"form-group\">\r\n <label className=\"details-label\">Enter your details to proceed further</label>\r\n <br />\r\n <br />\r\n <label htmlFor=\"email\" className=\"email-label\">\r\n Name\r\n </label>\r\n <br />\r\n <input\r\n data-testid=\"name-input\"\r\n type=\"text\"\r\n name=\"text\"\r\n id=\"Fullname\"\r\n className=\"form-control\"\r\n value={user.name}\r\n required\r\n onChange={inputChangeHandler('name')}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"email\" className=\"email-label\">\r\n Email\r\n </label>\r\n <br />\r\n <input\r\n data-testid=\"email-input\"\r\n type=\"email\"\r\n name=\"email\"\r\n id=\"Email\"\r\n className=\"form-control\"\r\n value={user.email}\r\n required\r\n onChange={inputChangeHandler('email')}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"password\" className=\"password-label\">\r\n Password\r\n </label>\r\n <br />\r\n <input\r\n data-testid=\"email-pass\"\r\n type=\"password\"\r\n name=\"password\"\r\n id=\"password\"\r\n className=\"form-control\"\r\n value={user.password}\r\n required\r\n onChange={inputChangeHandler('password')}\r\n />\r\n {error.password ? <div className='password-error'>{error.password}</div>: null}\r\n </div>\r\n <br />\r\n <div className=\"form-group text-center mb-0 button-container\">\r\n <input\r\n data-testid=\"registerbtn\"\r\n type=\"submit\"\r\n name=\"submit\"\r\n className=\"btn btn-info btn-md login-btn\"\r\n value=\"Create Account\"\r\n />\r\n <Link to=\"/\">\r\n <input\r\n type=\"button\"\r\n className=\"btn btn-info btn-md create-account-btn\"\r\n value=\"Sign In\"\r\n />\r\n </Link>\r\n </div>\r\n </form>\r\n </div>\r\n <div className=\"copyright-container\">\r\n <p className=\"copyright-label\">Copyright &copy;2022 Impetus, All rights Reserved</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default connect(null)(RegisterPage)\r\n","import React, {useState, useEffect} from 'react'\r\nimport Modal from 'react-modal'\r\nimport './modalPopup.css'\r\n\r\nfunction ModalPopup(props) {\r\n const customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '32%',\r\n height: '45%',\r\n },\r\n }\r\n\r\n const [projectName, setProjectName] = useState(props?.projectName)\r\n\r\n const onClose = () => {\r\n props.closeDeleteModal(false, false)\r\n }\r\n\r\n const onDelete = () => {\r\n props.closeDeleteModal(false, true)\r\n }\r\n\r\n useEffect(() => {\r\n setProjectName(props?.projectName)\r\n }, [props?.projectName])\r\n\r\n return (\r\n <Modal isOpen={props.isOpen} style={customStyles}>\r\n <div className=\"modalContainer\">\r\n <div className=\"modalDeleteContainer\">\r\n <p>Edit</p>\r\n </div>\r\n <div className=\"paraContainer\">\r\n <input\r\n value={projectName}\r\n onChange={e => {\r\n setProjectName(e.target.value.replace(/[^a-zA-Z0-9 ]/g, \"\"))\r\n props.setProjectNameProp(e.target.value.replace(/[^a-zA-Z0-9 ]/g, \"\"))\r\n }}\r\n />\r\n {projectName.length === 0 && (\r\n <p className=\"project-error-text\">Project name is required</p>\r\n )}\r\n </div>\r\n <div className=\"modalButtonContainer\">\r\n <button onClick={onClose} className=\"cancelBtn\">\r\n CANCEL\r\n </button>\r\n <button\r\n onClick={onDelete}\r\n className={projectName.length === 0 ? 'deleteBtn deleteDisableBtn' : 'deleteBtn'}\r\n disabled={projectName.length === 0}\r\n >\r\n UPDATE\r\n </button>\r\n </div>\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default ModalPopup\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst projectDeleteService = request => {\r\n const {API_BASE_URL} = process.env\r\n\r\n const API_ENDPOINT = `${API_BASE_URL}/project/item/`\r\n const params = request.id\r\n\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then(response => {\r\n return response.data\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default projectDeleteService\r\n","import axios from '../axiosInstance/axiosInstance'\r\n\r\nconst projectEditService = request => {\r\n const {API_BASE_URL} = process.env\r\n\r\n const {payload, id} = request\r\n const URLParam = `${API_BASE_URL}/project/item/${id}`\r\n\r\n return axios({\r\n method: 'put',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: payload,\r\n })\r\n .then(resp => {\r\n return resp\r\n })\r\n .catch(err => {\r\n return err.response.data\r\n })\r\n}\r\n\r\nexport default projectEditService\r\n","import React from 'react'\r\nimport Tooltip from '../common/Tooltip'\r\nimport editIcon from '../../assets/images/iRest_files/edit_icon.png'\r\nimport keyIcon from '../../assets/images/iRest_files/key_icon.png'\r\n\r\n\r\nfunction ProjectTable(props) {\r\n const handleEdit = item => {\r\n props.openEditModal()\r\n props.setEditId(item?._id)\r\n props.setProjectName(item?.projectName)\r\n }\r\n const handleDelete = item => {\r\n props.openDeleteModal()\r\n props.setDeleteId(item?._id)\r\n }\r\n\r\n const handleProjTokenUpdate = (projId) => {\r\n props.openTokenModal(true)\r\n props.fetchToken(projId, false)\r\n }\r\n\r\n return (\r\n <table className=\"table fs-13 mock-table\">\r\n <thead className=\"table-theme\">\r\n <tr>\r\n <th className=\"table-label\">PROJECT NAME</th>\r\n <th className=\"table-label\">MOCK COUNT</th>\r\n <th className=\"table-label\">CREATED BY</th>\r\n <th className=\"table-label\">UPDATED AT</th>\r\n <th className=\"table-label\">AUTHENTICATION</th>\r\n <th className=\"table-label\">ACTION</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {props?.projectList?.length > 0 &&\r\n props?.projectList?.map(item => (\r\n <tr key={item.id}>\r\n <td className=\"project-column\">\r\n <div title={item?.projectName} className=\"mockname-project-label\">\r\n {item?.projectName}\r\n </div>\r\n </td>\r\n <td className=\"created-count-column\">\r\n <div title={item?.count} className=\"project-label\">\r\n {item?.count}\r\n </div>\r\n </td>\r\n <td className=\"created-count-column\">\r\n <div title={item?.count} className=\"project-label\">\r\n {item?.User?.name}\r\n </div>\r\n </td>\r\n <td className=\"created-update-column\">\r\n <div title={item?.updatedAt} className=\"date-label\">\r\n {new Date(item?.createdAt).toLocaleDateString()}{' '}\r\n {new Date(item?.createdAt).toLocaleTimeString()}\r\n </div>\r\n </td>\r\n <td>\r\n <div\r\n className=\"custom-control custom-switch\"\r\n >\r\n <Tooltip content=\"Toggle Authentication\" direction=\"extreme\">\r\n <input\r\n id={`${item._id}_tooltip`}\r\n type=\"checkbox\"\r\n checked={item?.authenticationType}\r\n className=\"custom-control-input\"\r\n onChange={(e) => {\r\n props.handleAuth(item._id, e.target.checked)\r\n }}\r\n />\r\n <label\r\n className=\"custom-control-label table-label\"\r\n data-testid=\"box\"\r\n htmlFor={`${item._id}_tooltip`}\r\n />\r\n </Tooltip>\r\n </div>\r\n </td>\r\n <td className=\"text-center\">\r\n <div className=\"d-flex \">\r\n <Tooltip content=\"Edit Project\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n aria-label=\"edit-button\"\r\n onClick={() => handleEdit(item)}\r\n >\r\n <img src={editIcon} alt=\"Delete Icon\" />\r\n </button>\r\n </Tooltip>\r\n <Tooltip content=\"Delete Project\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n aria-label=\"delete-button\"\r\n disabled={item?.count !== 0}\r\n onClick={() => handleDelete(item)}\r\n >\r\n {props.displayDeleteIcon(item?.count !== 0)}\r\n </button>\r\n </Tooltip>\r\n <Tooltip content=\"API secret\" direction=\"left\">\r\n <button\r\n className=\"tryme\"\r\n onClick={()=>{\r\n handleProjTokenUpdate(item._id)\r\n props.setProjData(item)\r\n }}\r\n >\r\n <img src={keyIcon} className='secret-key' alt=\"Api secret\" />\r\n </button>\r\n </Tooltip>\r\n </div>\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nexport default ProjectTable\r\n","import React, {useEffect, useState} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport {bindActionCreators} from 'redux'\r\nimport {notifySuccess, notifyError} from '../common/Toast'\r\nimport Nav from '../common/nav'\r\nimport Loader from '../common/Loader'\r\nimport {flushUserData} from '../../actions/login/authenticationActions'\r\nimport {DashboardUrl} from '../../constants/url'\r\nimport DeleteModal from '../modal/ModalPopup'\r\nimport EditModal from '../modal/EditModal'\r\nimport DeleteTokenModal from '../modal/deleteTokenModal/deleteTokenModal'\r\nimport UpdateAuthTypeModal from '../modal/updateAuthTypeModal/updateAuthTypeModal'\r\nimport deleteIcon from '../../assets/images/iRest_files/blue_delete_trash.svg'\r\nimport disableDeleteIcon from '../../assets/images/iRest_files/grey_delete_trash.svg'\r\nimport {\r\n projectListAction,\r\n projectListDeleteAction,\r\n} from '../../actions/projectList/projectListAction'\r\nimport {fetchTokenAction} from '../../actions/fetchToken/fetchToken'\r\nimport {updateTokenAction} from '../../actions/updateToken/updateToken'\r\nimport projectDeleteService from '../../service/projectDelete/projectDeleteService'\r\nimport projectEditService from '../../service/projectEdit/projectEditService'\r\nimport ProjectTable from './projectTable'\r\nimport {updateAuthTypeAction} from '../../actions/updateAuthType/updateAuthType'\r\nimport './projectList.css'\r\n\r\nfunction ProjectListPage(props) {\r\n const [searchText, setSearchText] = useState('')\r\n const [editModalShow, setEditModalShow] = useState(false)\r\n const [deleteModalShow, setDeleteModalShow] = useState(false)\r\n const [deleteId, setDeleteId] = useState(-1)\r\n const [editId, setEditId] = useState(-1)\r\n const [projectName, setProjectName] = useState('')\r\n const [projectList, setProjectList] = useState([])\r\n const [projId, setProjId] = useState(false)\r\n const [authValue, setAuthVal] = useState(null)\r\n const [showTokenModal, openTokenModal] = useState(false)\r\n const [projData, setProjData] = useState({})\r\n const [showTokenDelModal, setTokenDelModal] = useState(false)\r\n const [tokenDelMsg, setTokenDelMsg] = useState(null)\r\n\r\n useEffect(() => {\r\n props.projectListAction()\r\n }, [])\r\n\r\n useEffect(() => {\r\n setProjectList(props?.projectListResponse?.data?.projectList) \r\n }, [props?.projectListResponse?.data?.projectList])\r\n\r\n useEffect(()=>{\r\n if (props?.projectAuth?.status===200) {\r\n const list = [...projectList]\r\n list.forEach((project)=>{\r\n if (project._id===projId) {\r\n project.authenticationType=authValue\r\n }\r\n })\r\n setProjectList(list)\r\n notifySuccess(props?.projectAuth?.message)\r\n }\r\n },[props?.projectAuth])\r\n\r\n useEffect(()=>{\r\n if (props?.updateProjectToken) {\r\n notifySuccess(tokenDelMsg?.length>0 ? tokenDelMsg : props?.updateProjectToken?.message)\r\n }\r\n },[props?.updateProjectToken])\r\n\r\n const handleAuth =(id,value)=>{\r\n setProjId(id)\r\n setAuthVal(value)\r\n props.updateAuthTypeAction({id, authenticationType: value}, false)\r\n }\r\n\r\n const handleTokenModal =(open)=>{\r\n openTokenModal(open)\r\n }\r\n\r\n const handleClickSearch = e => {\r\n e.preventDefault()\r\n const projects = props?.projectListResponse?.data?.projectList.filter(event =>\r\n event.projectName.toLowerCase().includes(searchText)\r\n )\r\n setProjectList(projects)\r\n }\r\n\r\n const handleClickReset = e => {\r\n e.preventDefault()\r\n setProjectList(props?.projectListResponse?.data?.projectList)\r\n setSearchText('')\r\n }\r\n\r\n const openEditModal = () => {\r\n setEditModalShow(true)\r\n }\r\n\r\n const openDeleteModal = () => {\r\n setDeleteModalShow(true)\r\n }\r\n\r\n const closeEditModal = async (closeReq, isEdit) => {\r\n setEditModalShow(closeReq)\r\n if (isEdit) {\r\n const request = {\r\n payload: {\r\n projectName,\r\n },\r\n id: editId,\r\n }\r\n const response = await projectEditService(request)\r\n props.projectListAction()\r\n if (response.status === 417) {\r\n notifyError('Project already exist.')\r\n } \r\n if (response.status === 201) {\r\n notifySuccess('Project updated successfully!')\r\n }\r\n }\r\n }\r\n\r\n const closeDeleteModal = async (closeReq, isDelete) => {\r\n setDeleteModalShow(closeReq)\r\n if (isDelete) {\r\n const response = await projectDeleteService({id: deleteId})\r\n if (response.status === 412) {\r\n notifyError('Project cannot be deleted due to associated mock!')\r\n } else {\r\n props.projectListAction()\r\n notifySuccess('Project deleted successfully!')\r\n }\r\n }\r\n }\r\n\r\n const handleClearUser = () => {\r\n props.flushUserData()\r\n }\r\n\r\n const displayDeleteIcon = isDisable => {\r\n if (isDisable) {\r\n return <img src={disableDeleteIcon} alt=\"Delete Icon\" />\r\n }\r\n return <img src={deleteIcon} alt=\"Delete Icon\" />\r\n }\r\n\r\n const updateProjectToken =(payload)=>{\r\n props.updateTokenAction(payload, false)\r\n }\r\n\r\n const openTokenDeleteModal =(id)=> {\r\n setTokenDelModal(true)\r\n openTokenModal(false)\r\n }\r\n\r\n const closeDeleteTokenModal =()=>{\r\n setTokenDelModal(false)\r\n openTokenModal(true)\r\n }\r\n\r\n const setDeleteTokenMsg=()=> {\r\n setTokenDelMsg(\"Token deleted successfully\")\r\n }\r\n\r\n return (\r\n <div>\r\n <Nav pageTitle=\"iRest\" link={DashboardUrl} handleClearUser={handleClearUser} />\r\n <EditModal\r\n isOpen={editModalShow}\r\n closeDeleteModal={closeEditModal}\r\n projectName={projectName}\r\n setProjectNameProp={setProjectName}\r\n />\r\n <UpdateAuthTypeModal \r\n isOpen={showTokenModal} \r\n closeAuthModal={handleTokenModal} \r\n updateToken={updateProjectToken} \r\n tokenData={props.fetchToken?.data?.token}\r\n projData={projData}\r\n isMock= {false}\r\n openTokenDeleteModal={openTokenDeleteModal}\r\n />\r\n <DeleteTokenModal \r\n isOpen={showTokenDelModal} \r\n setDeleteTokenMsg ={setDeleteTokenMsg} \r\n closeTokenModal ={handleTokenModal} \r\n closeDeleteTokenModal={closeDeleteTokenModal} \r\n updateToken={updateProjectToken} \r\n details = {projData}\r\n /> \r\n <DeleteModal isOpen={deleteModalShow} closeDeleteModal={closeDeleteModal} />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-sm-11 custom_offset_list\">\r\n <div className=\"card m-t-100 card-shadow-body\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex justify-content-between\">\r\n <div className=\"form-group w-100\">\r\n <label htmlFor=\"filter\" className=\"keyword-label\">\r\n Project List\r\n </label>\r\n <br />\r\n <br />\r\n <form className=\"d-flex flex-row\" onSubmit={e => handleClickSearch(e)}>\r\n <input\r\n className=\"form-control p-2 input-field\"\r\n type=\"text\"\r\n onChange={e => setSearchText(e.target.value)}\r\n value={searchText}\r\n placeholder=\"Search\"\r\n aria-label=\"Recipient's username\"\r\n aria-describedby=\"basic-addon2\"\r\n />\r\n <button\r\n className=\"btn btn-outline-primary mx-1 button-text\"\r\n type=\"submit\"\r\n onClick={handleClickSearch}\r\n >\r\n Search\r\n </button>\r\n <button\r\n className=\"btn btn-outline-danger button-text\"\r\n onClick={handleClickReset}\r\n type=\"button\"\r\n >\r\n Reset\r\n </button>\r\n </form>\r\n <br />\r\n </div>\r\n </div>\r\n {props.isPending || props.isUpdateTokenPending ? (\r\n <Loader isOverlay /> \r\n ) : (\r\n <>\r\n <ProjectTable\r\n projectList={projectList}\r\n openEditModal={openEditModal}\r\n setEditId={setEditId}\r\n setProjectName={setProjectName}\r\n openDeleteModal={openDeleteModal}\r\n setDeleteId={setDeleteId}\r\n displayDeleteIcon={displayDeleteIcon}\r\n openTokenModal ={handleTokenModal}\r\n fetchToken={props.fetchTokenAction}\r\n setProjData={setProjData}\r\n handleAuth={handleAuth}\r\n />\r\n <div className=\"record-container\">\r\n {projectList?.length === 0 && <p className=\"record-label\">No projects found.</p>}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n projectListResponse: state.projectList.response,\r\n isPending: state.projectList.isPending,\r\n fetchToken: state.fetchToken.response,\r\n updateProjectToken: state.updateToken?.response,\r\n projectAuth: state.updateAuthType.response,\r\n isUpdateTokenPending: state.updateToken.isPending\r\n})\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n projectListDeleteAction,\r\n projectListAction,\r\n flushUserData,\r\n fetchTokenAction,\r\n updateTokenAction,\r\n updateAuthTypeAction\r\n },\r\n dispatch\r\n )\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ProjectListPage)\r\n","import React from 'react'\r\nimport {Router, Route, Switch} from 'react-router-dom'\r\nimport PrivateRoute from '../containers/privateRoute'\r\n\r\nimport LoginPage from '../components/login/loginPage'\r\nimport MockDashboard from '../components/mockList'\r\nimport history from '../history/createBrowserHistory'\r\nimport CreateMock from '../components/createMock/CreateMockForm'\r\n\r\nimport {\r\n HomePageUrl,\r\n DashboardUrl,\r\n createMockUrl,\r\n EditMockUrl,\r\n RegisterPageUrl,\r\n ProjectListPageUrl,\r\n} from '../constants/url'\r\nimport registerPage from '../components/register/registerPage'\r\nimport ProjectListPage from '../components/projectList'\r\n\r\nconst Routers = () => {\r\n return (\r\n <Router history={history}>\r\n <Switch>\r\n <Route exact path={HomePageUrl} component={LoginPage} />\r\n <Route path={RegisterPageUrl} component={registerPage} />\r\n <PrivateRoute path={DashboardUrl} component={MockDashboard} />\r\n <PrivateRoute path={createMockUrl} component={CreateMock} />\r\n <PrivateRoute path={`${EditMockUrl}/:mockId`} component={CreateMock} />\r\n <PrivateRoute path={ProjectListPageUrl} component={ProjectListPage} />\r\n </Switch>\r\n </Router>\r\n )\r\n}\r\n\r\nexport default Routers\r\n","import React from 'react'\r\nimport Routers from './routes/router'\r\n\r\nconst App = () => {\r\n return <Routers />\r\n}\r\n\r\nexport default App\r\n","import 'core-js/stable'\r\nimport 'regenerator-runtime/runtime'\r\nimport React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport {Provider} from 'react-redux'\r\nimport configureStore from './store/configureStore'\r\nimport App from './App'\r\n\r\nimport './assets/styles/style.css'\r\n\r\nconst store = configureStore()\r\nReactDOM.render(\r\n <Provider store={store}>\r\n <App />\r\n </Provider>,\r\n document.getElementById('root')\r\n)\r\n\r\n// webpack hot module replacement plugin\r\nif (module.hot) {\r\n module.hot.accept()\r\n}\r\n","import {\r\n PROJECT_LIST,\r\n PROJECT_LIST_ERROR,\r\n PROJECT_LIST_SUCCESS,\r\n PROJECT_EDIT,\r\n PROJECT_EDIT_SUCCESS,\r\n PROJECT_EDIT_ERROR,\r\n PROJECT_DELETE,\r\n PROJECT_DELETE_SUCCESS,\r\n PROJECT_DELETE_ERROR,\r\n PROJECT_LIST_PENDING\r\n} from '../actionTypes'\r\n\r\nexport const projectListAction = data => {\r\n return {\r\n type: PROJECT_LIST,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: PROJECT_LIST_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const isProjectListPending = isPending => ({\r\n type: PROJECT_LIST_PENDING,\r\n isPending,\r\n})\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: PROJECT_LIST_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const projectListEditAction = data => {\r\n return {\r\n type: PROJECT_EDIT,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataEditAction = data => {\r\n return {\r\n type: PROJECT_EDIT_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveEditError = data => {\r\n return {\r\n type: PROJECT_EDIT_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const projectListDeleteAction = data => {\r\n return {\r\n type: PROJECT_DELETE,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataDeleteAction = data => {\r\n return {\r\n type: PROJECT_DELETE_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDeleteError = data => {\r\n return {\r\n type: PROJECT_DELETE_ERROR,\r\n data,\r\n }\r\n}\r\n","import {MOCK_LIST, MOCK_LIST_SUCCESS, MOCK_LIST_ERROR, MOCK_LIST_PENDING} from '../actionTypes'\r\n\r\nexport const mockListAction = data => {\r\n return {\r\n type: MOCK_LIST,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveDataAction = data => {\r\n return {\r\n type: MOCK_LIST_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const receiveError = data => {\r\n return {\r\n type: MOCK_LIST_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const isMockListPending = isPending => ({\r\n type: MOCK_LIST_PENDING,\r\n isPending,\r\n})\r\n","import {UPDATE_TOKEN, UPDATE_TOKEN_ERROR, UPDATE_TOKEN_SUCCESS, RESET_STORE, UPDATE_TOKEN_PENDING} from '../actionTypes'\r\n\r\nexport const updateTokenAction = (data, isMockToken) => {\r\n return {\r\n type: UPDATE_TOKEN,\r\n data,\r\n isMockToken\r\n }\r\n}\r\n\r\nexport const updateTokenActionSuccess = data => {\r\n return {\r\n type: UPDATE_TOKEN_SUCCESS,\r\n data,\r\n }\r\n}\r\n\r\nexport const updateTokenActionError = data => {\r\n return {\r\n type: UPDATE_TOKEN_ERROR,\r\n data,\r\n }\r\n}\r\n\r\nexport const resetStore = () => {\r\n return {\r\n type: RESET_STORE\r\n }\r\n}\r\n\r\nexport const isUpdateTokenPending = isPending => ({\r\n type: UPDATE_TOKEN_PENDING,\r\n isPending,\r\n })\r\n\r\n"],"sourceRoot":""}