{"version":3,"sources":["routes.js","containers/TheContent.js","containers/TheFooter.js","containers/TheHeader.js","containers/TheHeaderDropdown.js","containers/_nav.js","containers/TheSidebar.js","containers/TheLayout.js","services/API/mod_auth.js","services/API/mod_customer.js","services/API/mod_user.js","services/API/mod_device.js","services/API/mod_notification.js","services/API/mod_device_user.js","services/API/mod_test_connection.js","services/API/mod_ticket.js","services/API/mod_ds.js","services/fetchTools.js","config/appConfig.js"],"names":["Toaster","React","lazy","Alerts","Badges","Modals","Colors","Typography","Widgets","Users","User","ChangePassword","Dashboard","DetailDeviceNew","Musers","InstallationResult","Mcustomers","DeviceEDS","LogDevice","DeviceGCS","LogDeviceGCS","DeviceSearch","NewTicket","NewTicketReadyReserved","TicketProgress","TicketReporting","CloseTicket","routes","path","exact","name","component","loading","className","memo","fluid","fallback","map","route","idx","key","render","props","from","to","fixed","style","float","href","target","alt","TheHeader","dispatch","useDispatch","sidebarShow","useSelector","state","withSubheader","inHeader","onClick","val","includes","type","cookies","Cookies","TheHeaderDropdown","handleLogOut","bind","handleChangePassword","login","username","role","inex","get","session_user","this","setState","account_type","status_in_ex","remove","sessionStorage","clear","localStorage","window","location","reload","history","push","pathname","inNav","direction","caret","src","placement","header","tag","color","divider","Component","session","Mmenu","_tag","icon","_children","badge","text","show","console","log","onShowChange","items","navigation","components","CSidebarNavDivider","CSidebarNavDropdown","CSidebarNavItem","CSidebarNavTitle","TheLayout","cektoken","getrefreshtoken","cookie","changePassword","url_now","toString","url_new","replace","refreshStatus","set","JSON","stringify","secure","sameSite","authUser","req","a","url","appConfig","BASE_API","options","postMethod","loginHeader","body","fetch","response","parseJSON","json","resetPassword_withoutAuth","refreshToken","checkStatus","status","getAllCustomer","createAuthRefreshInterceptor","axios","refreshAuthLogic","jsonHeaderAuth","then","res","data","catch","error","result","getCustomer","id","createCustomer","post","Data","deleteCustomer","updateCustomer","cnumb","getCustomerByUser","userId","updateAutoConsumable","searchCustomer","getAllUser","addUser","updateUser","ids","userid","changePasswordBeforeLogin","deleteUser","updateUser_autoSendAdisa","getUserInfo","getTop10Device","getTop10DeviceGCS","getDeviceByCustNumb","numb","getLogDevice","sn","getDevice","getDeviceGCSByCustNumb","getLogDeviceGCS","getDeviceGCS","getDeviceGCSStatus","getDeviceStatus","logRangeDevice","searchDeviceBySNEQ","logRangeDeviceGCS","logRangebySnDevice","logRangebySnDeviceGCS","updateBoundary","updateBoundaryGCS","updatePicDeviceEDS","updatePicDeviceGCS","searchHistorySN","getCustNotif","insertNotif","deleteCustNotif","idnotif","getDeviceUSerbyCnumb","insertDeviceUSer","deleteDeviceUSer","duse_id","getTotalDeviceUser","getConnection","nocust","getMethod","jsonHeader","getSentDevice","getProgressTicket","getProgressTicketGCS","updateTicket","updateTicketLoopEDS","updateTicketGCS","updateTicketLoopGCS","getTicketById","ticket_id","getTicketGCSById","getTicketByCn","serial_number","getTicketByCnGCS","getTicketReportingByDateFlag","getTicketReportingGCSByDateFlag","getUserAgent","getHistoryThreeMonth","getHistoryThreeMonthGCS","getChartStatusToner","getChartStatusTonerGCS","sendToAdisa","getResultAdisa","getTicketAdisa","getSlaToday","newTicketUnion","newTicketUnionReadyReserved","searchCloseTicket","closeTicket","InsertDS","SearchConsumableRequest","SearchConsumableRequestGCS","InsertDSHistory","ReadDSHistory","token","refreshtoken","method","headers","Accept","failedRequest","Promise","resolve","tok","Error","statusText","reject","Object","freeze","APP_NAME","DEV_MODE","DEBUG_ENABLED","FAKE_ASYNC_DELAY","LDAP_API","CONNECTION_STATUS","online","disconnected","earningGraph","API","teamMates","userInfos","HELLO_WORD"],"mappings":"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","file":"static/js/36.f5d64def.chunk.js","sourcesContent":["import React from 'react';\r\n\r\nconst Toaster = React.lazy(() => import('./views/notifications/toaster/Toaster'));\r\nconst Tables = React.lazy(() => import('./views/base/tables/Tables'));\r\nconst Alerts = React.lazy(() => import('./views/notifications/alerts/Alerts'));\r\nconst Badges = React.lazy(() => import('./views/notifications/badges/Badges'));\r\nconst Modals = React.lazy(() => import('./views/notifications/modals/Modals'));\r\nconst Colors = React.lazy(() => import('./views/theme/colors/Colors'));\r\nconst Typography = React.lazy(() => import('./views/theme/typography/Typography'));\r\nconst Widgets = React.lazy(() => import('./views/widgets/Widgets'));\r\nconst Users = React.lazy(() => import('./views/users/Users'));\r\nconst User = React.lazy(() => import('./views/users/User'));\r\nconst ChangePassword = React.lazy(() => import('./views/users/ChangePassword'));\r\nconst Dashboard = React.lazy(() => import('./views/dashboard/Dashboard'));\r\nconst DetailDevice = React.lazy(() => import('./views/dashboard/DetailDevice'));\r\nconst DetailDeviceNew = React.lazy(() => import('./views/dashboard/DetailDeviceNew'));\r\nconst Musers = React.lazy(() => import('./views/users/Musers')); \r\nconst InstallationResult = React.lazy(() => import('./views/pages/login/ViewInstallation')); \r\nconst Mcustomers = React.lazy(() => import('./views/customers/Mcustomers'));\r\nconst DeviceEDS = React.lazy(() => import('./views/device/eds/DeviceEDS'));\r\nconst LogDevice = React.lazy(() => import('./views/device/eds/detail/LogDevice'));\r\nconst DeviceGCS = React.lazy(() => import('./views/device/gcs/DeviceGCS'));\r\nconst LogDeviceGCS = React.lazy(() => import('./views/device/gcs/detail/LogDevice'));\r\nconst DeviceSearch = React.lazy(() => import('./views/device/search/DeviceSearch'));\r\nconst NewTicket = React.lazy(() => import('./views/tickets/NewTicket'));\r\nconst NewTicketReadyReserved = React.lazy(() => import('./views/tickets/NewTicketReadyReserved'));\r\nconst TicketProgress = React.lazy(() => import('./views/tickets/ProgressTicket'));\r\nconst TicketReporting = React.lazy(() => import('./views/tickets/Reporting'));\r\nconst CloseTicket = React.lazy(() => import('./views/tickets/CloseTicket'));\r\nconst TicketInfo = React.lazy(() => import('./views/tickets/detail/'));\r\nconst TestConnection = React.lazy(() => import('./views/pages/page404/Page404'));\r\nconst UploadDS = React.lazy(() => import('./views/ds/UploadDS'))\r\nconst ChartStatusToner = React.lazy(() => import('./views/tickets/detail/ChartStatusToner'))\r\nconst ChartStatusTonerGCS = React.lazy(() => import('./views/tickets/detail/ChartStatusTonerGCS'))\r\nconst ChartSample = React.lazy(() => import('./views/tickets/detail/MainChartExample'))\r\nconst SearchConsumable = React.lazy(() => import('./views/ds/SearchConsumable'))\r\nconst SearchConsumableGCS = React.lazy(() => import('./views/ds/SearchConsumableGCS'))\r\nconst SearchSNTonerDrum = React.lazy(() => import('./views/device/eds/SearchSNTonerDrum'))\r\n//const Switches = React.lazy(() => import('./views/base/switches/Switches'))\r\n\r\nconst routes = [\r\n { path: '/', exact: true, name: 'Home' },\r\n { path: '/dashboard', name: 'Dashboard', component: Dashboard },\r\n // { path: '/detailDevice', name: 'Detail Device', component: DetailDevice },\r\n { path: '/detailDevice', name: 'Detail Device', component: DetailDeviceNew },\r\n { path: '/theme', name: 'Theme', component: Colors, exact: true },\r\n { path: '/theme/colors', name: 'Colors', component: Colors },\r\n { path: '/theme/typography', name: 'Typography', component: Typography },\r\n { path: '/notifications', name: 'Notifications', component: Alerts, exact: true },\r\n { path: '/notifications/alerts', name: 'Alerts', component: Alerts },\r\n { path: '/notifications/badges', name: 'Badges', component: Badges },\r\n { path: '/notifications/modals', name: 'Modals', component: Modals },\r\n { path: '/notifications/toaster', name: 'Toaster', component: Toaster },\r\n { path: '/widgets', name: 'Widgets', component: Widgets },\r\n { path: '/users', exact: true, name: 'Users', component: Users },\r\n { path: '/users/:id', exact: true, name: 'User Details', component: User },\r\n { path: '/changepassword', exact: true, name: 'ChangePassword', component: ChangePassword },\r\n { path: '/managementusers', exact: true, name: 'Management users', component: Musers },\r\n { path: '/instalationresult', name: 'Instalation Result', component: InstallationResult },\r\n { path: '/management-customers', exact: true, name: 'Management customers', component: Mcustomers },\r\n { path: '/deviceeds', exact: true, name: 'EDS Device', component: DeviceEDS },\r\n { path: '/deviceeds/log/:sn', name: 'Log Device', component: LogDevice },\r\n { path: '/devicegcs', exact: true, name: 'GCS Device', component: DeviceGCS },\r\n { path: '/devicegcs/log/:sn', name: 'Log Device GCS', component: LogDeviceGCS },\r\n { path: '/devicesearch', exact: true, name: 'Search Device', component: DeviceSearch },\r\n { path: '/ticket/new', exact: true, name: 'New Ticket', component: NewTicket },\r\n { path: '/ticket/readyreserved', exact: true, name: 'Ready to Reserved', component: NewTicketReadyReserved },\r\n { path: '/ticket/progress', exact: true, name: 'Progress Ticket', component: TicketProgress },\r\n { path: '/ticket/progress/:id/:type', exact: true, name: 'Detail Ticket', component: TicketInfo },\r\n { path: '/ticket/report', exact: true, name: 'Report Ticket', component: TicketReporting },\r\n { path: '/ticket/close', exact: true, name: 'Close Ticket', component: CloseTicket },\r\n { path: '/test-connection', name: 'Test Connection', component: TestConnection },\r\n { path: '/uploadds', name:'Upload DS', component: UploadDS},\r\n { path: '/chartstatustoner', name:'History Pemakaian Consumable', component: ChartStatusToner},\r\n { path: '/chartstatustonergcs', name:'History Pemakaian Consumable', component: ChartStatusTonerGCS},\r\n { path: '/chartSample', name:'chart sample', component: ChartSample},\r\n { path: '/searchconsumable', name:'Search Consumable', component: SearchConsumable},\r\n { path: '/searchconsumableGCS', name:'Search Consumable', component: SearchConsumableGCS},\r\n { path: '/searchsn', name:'Search SN Toner & Drum', component: SearchSNTonerDrum}\r\n //{ path: '/switches', name:'Switches', component: Switches},\r\n];\r\n\r\nexport default routes;\r\n","import React, { Suspense } from 'react'\r\nimport {\r\n Redirect,\r\n Route,\r\n Switch\r\n} from 'react-router-dom'\r\nimport { CContainer, CFade } from '@coreui/react'\r\n\r\n// routes config\r\nimport routes from '../routes'\r\n \r\nconst loading = (\r\n
\r\n
\r\n
\r\n)\r\n\r\nconst TheContent = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {routes.map((route, idx) => {\r\n return route.component && (\r\n (\r\n \r\n \r\n \r\n )} />\r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(TheContent)\r\n","import React from 'react'\r\nimport { CFooter } from '@coreui/react'\r\n\r\nconst TheFooter = () => {\r\n return (\r\n \r\n
\r\n Powered by\r\n 3PM IT Solutions\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(TheFooter)\r\n","import React from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport {\r\n CHeader,\r\n CToggler,\r\n CHeaderBrand,\r\n CHeaderNav,\r\n CSubheader,\r\n CBreadcrumbRouter\r\n} from '@coreui/react'\r\n\r\n// routes config\r\nimport routes from '../routes'\r\nimport './header.css'\r\n\r\nimport { \r\n TheHeaderDropdown\r\n} from './index'\r\n\r\nconst TheHeader = () => {\r\n const dispatch = useDispatch()\r\n const sidebarShow = useSelector(state => state.sidebarShow)\r\n\r\n const toggleSidebar = () => {\r\n const val = [true, 'responsive'].includes(sidebarShow) ? false : 'responsive'\r\n dispatch({type: 'set', sidebarShow: val})\r\n }\r\n\r\n const toggleSidebarMobile = () => {\r\n const val = [false, 'responsive'].includes(sidebarShow) ? true : 'responsive'\r\n dispatch({type: 'set', sidebarShow: val})\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

iSense

\r\n \r\n \r\n \r\n\r\n \r\n {/*\r\n Dashboard\r\n \r\n \r\n Users\r\n \r\n \r\n Settings\r\n */}\r\n \r\n\r\n \r\n {/**/}\r\n {/**/}\r\n {/**/}\r\n \r\n \r\n\r\n \r\n \r\n {/*
\r\n \r\n \r\n \r\n \r\n  Dashboard\r\n \r\n \r\n  Settings\r\n \r\n
*/}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TheHeader\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport {\r\n CDropdown,\r\n CDropdownItem,\r\n CDropdownMenu,\r\n CDropdownToggle,\r\n CImg\r\n} from '@coreui/react'\r\nimport CIcon from '@coreui/icons-react'\r\nimport Cookies from 'universal-cookie'\r\nconst cookies = new Cookies();\r\n\r\nclass TheHeaderDropdown extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleLogOut = this.handleLogOut.bind(this)\r\n this.handleChangePassword = this.handleChangePassword.bind(this)\r\n this.state = {\r\n login: false,\r\n username: \"\",\r\n role:\"\",\r\n inex:\"in\"\r\n };\r\n }\r\n\r\n componentDidMount(){\r\n if (cookies.get('iSense_user')) {\r\n let session_user = cookies.get('iSense_user')\r\n //console.log(session_user)\r\n this.setState({username: session_user.username, role: session_user.account_type, inex:session_user.status_in_ex})\r\n }\r\n }\r\n\r\n handleLogOut() {\r\n cookies.remove('iSense_user', {path: '/'})\r\n sessionStorage.clear()\r\n localStorage.clear()\r\n window.location.reload(false);\r\n }\r\n handleChangePassword() {\r\n this.props.history.push({\r\n pathname: '/changepassword'\r\n });\r\n }\r\n render(){ \r\n const {inex} = this.state\r\n return (\r\n \r\n \r\n {this.state.role} | {this.state.username}  \r\n
\r\n \r\n
\r\n
\r\n \r\n {/*\r\n Account\r\n \r\n \r\n \r\n Updates\r\n 42\r\n \r\n \r\n \r\n Messages\r\n 42\r\n \r\n \r\n \r\n Tasks\r\n 42\r\n \r\n \r\n \r\n Comments\r\n 42\r\n */}\r\n \r\n Settings\r\n \r\n { inex==\"Eksternal\" && \r\n \r\n \r\n Change Password\r\n \r\n \r\n }\r\n {/*\r\n \r\n Payments\r\n 42\r\n \r\n \r\n \r\n Projects\r\n 42\r\n */}\r\n \r\n \r\n \r\n Log out\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default TheHeaderDropdown\r\n","import Cookies from 'universal-cookie'\r\nconst cookies = new Cookies()\r\n\r\nlet session = cookies.get('iSense_user') ? cookies.get('iSense_user') : []\r\n\r\nconst menuAdmin = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management User',\r\n to: '/managementusers',\r\n icon: 'cil-user'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Instalation Result',\r\n to: '/instalationresult',\r\n icon: 'cil-laptop'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CUSTOMER']\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management Customers',\r\n to: '/management-customers',\r\n icon: 'cil-people'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CCC']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'CCC Dashboard',\r\n route: '/#',\r\n icon: 'cil-speedometer',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'New Ticket',\r\n to: '/ticket/new',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Ready to Reserved',\r\n to: '/ticket/readyreserved',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Progress',\r\n to: '/ticket/progress',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Reporting',\r\n to: '/ticket/report',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Close Ticket',\r\n to: '/ticket/close',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Upload DS',\r\n to: '/uploadds',\r\n icon: 'cilFile'\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Consumable',\r\n route: '/consumable',\r\n icon: 'cil-chartPie',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable EDS',\r\n to: '/searchconsumable',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable GCS',\r\n to: '/searchconsumablegcs',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable EDS',\r\n to: '/chartstatustoner',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable GCS',\r\n to: '/chartstatustonergcs',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search SN Toner & Drum',\r\n to: '/searchsn',\r\n // icon: 'cil-chartPie'\r\n },\r\n ],\r\n },\r\n]\r\n\r\nconst menuSA = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n badge: {\r\n color: 'info',\r\n text: 'NEW',\r\n }\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CUSTOMER']\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management Customers',\r\n to: '/management-customers',\r\n icon: 'cil-people'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Consumable',\r\n route: '/consumable',\r\n icon: 'cil-chartPie',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable EDS',\r\n to: '/searchconsumable',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable GCS',\r\n to: '/searchconsumablegcs',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable EDS',\r\n to: '/chartstatustoner',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable GCS',\r\n to: '/chartstatustonergcs',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search SN Toner & Drum',\r\n to: '/searchsn',\r\n // icon: 'cil-chartPie'\r\n },\r\n ],\r\n },\r\n]\r\n\r\nconst menuCCC = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CCC']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'CCC Dashboard',\r\n route: '/#',\r\n icon: 'cil-speedometer',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'New Ticket',\r\n to: '/ticket/new',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Ready to Reserved',\r\n to: '/ticket/readyreserved',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Progress',\r\n to: '/ticket/progress',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Reporting',\r\n to: '/ticket/report',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Close Ticket',\r\n to: '/ticket/close',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Consumable',\r\n route: '/consumable',\r\n icon: 'cil-chartPie',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable EDS',\r\n to: '/searchconsumable',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable GCS',\r\n to: '/searchconsumablegcs',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable EDS',\r\n to: '/chartstatustoner',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable GCS',\r\n to: '/chartstatustonergcs',\r\n // icon: 'cil-chartPie'\r\n },\r\n ],\r\n },\r\n]\r\nconst menuCSM = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Instalation Result',\r\n to: '/instalationresult',\r\n icon: 'cil-laptop'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CUSTOMER']\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management Customers',\r\n to: '/management-customers',\r\n icon: 'cil-people'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Consumable',\r\n route: '/consumable',\r\n icon: 'cil-chartPie',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable EDS',\r\n to: '/searchconsumable',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable GCS',\r\n to: '/searchconsumablegcs',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable EDS',\r\n to: '/chartstatustoner',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable GCS',\r\n to: '/chartstatustonergcs',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search SN Toner & Drum',\r\n to: '/searchsn',\r\n // icon: 'cil-chartPie'\r\n },\r\n ],\r\n },\r\n]\r\nconst menuSDM = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n badge: {\r\n color: 'info',\r\n text: 'NEW',\r\n }\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Consumable',\r\n route: '/consumable',\r\n icon: 'cil-chartPie',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable EDS',\r\n to: '/searchconsumable',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Data Consumable GCS',\r\n to: '/searchconsumablegcs',\r\n // icon: 'cil-calculator'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable EDS',\r\n to: '/chartstatustoner',\r\n // icon: 'cil-chartPie'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'History Consumable GCS',\r\n to: '/chartstatustonergcs',\r\n // icon: 'cil-chartPie'\r\n },\r\n ],\r\n },\r\n]\r\n\r\nconst menuBM = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n badge: {\r\n color: 'info',\r\n text: 'NEW',\r\n }\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CUSTOMER']\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management Customers',\r\n to: '/management-customers',\r\n icon: 'cil-people'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n]\r\n\r\nconst menuCustomer = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n badge: {\r\n color: 'info',\r\n text: 'NEW',\r\n }\r\n },\r\n // {\r\n // _tag: 'CSidebarNavItem',\r\n // name: 'Download iSense Installer',\r\n // target: \"_blank\",\r\n // href: 'https://tinyurl.com/NewiSense4',\r\n // icon: 'cil-cloud-download'\r\n // },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n]\r\n\r\nconst menuCE = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Instalation Result',\r\n to: '/instalationresult',\r\n icon: 'cil-laptop'\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['CUSTOMER']\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Management Customers',\r\n to: '/management-customers',\r\n icon: 'cil-people'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n }\r\n]\r\n\r\nconst menuOther = [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Dashboard',\r\n to: '/dashboard',\r\n icon: 'cil-speedometer',\r\n badge: {\r\n color: 'info',\r\n text: 'NEW',\r\n }\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Download iSense Installer',\r\n target: \"_blank\",\r\n href: 'https://tinyurl.com/NewiSense4',\r\n icon: 'cil-cloud-download'\r\n },\r\n {\r\n _tag: 'CSidebarNavTitle',\r\n _children: ['DEVICE']\r\n },\r\n {\r\n _tag: 'CSidebarNavDropdown',\r\n name: 'Device',\r\n route: '/device',\r\n icon: 'cil-puzzle',\r\n _children: [\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'EDS DEVICE',\r\n to: '/deviceeds',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'GCS Device',\r\n to: '/devicegcs',\r\n },\r\n {\r\n _tag: 'CSidebarNavItem',\r\n name: 'Search Device',\r\n to: '/devicesearch',\r\n }\r\n ],\r\n },\r\n]\r\n\r\nlet Mmenu = ''\r\nif (session.account_type == 'Admin') {\r\n Mmenu = menuAdmin\r\n} else if (session.account_type == 'SA') {\r\n Mmenu = menuSA\r\n} else if (session.account_type == 'CCC') {\r\n Mmenu = menuCCC\r\n} else if (session.account_type == 'CSM') {\r\n Mmenu = menuCSM\r\n} else if (session.account_type == 'SDM') {\r\n Mmenu = menuSDM\r\n} else if (session.account_type == 'BM') {\r\n Mmenu = menuBM\r\n} else if (session.account_type == 'Customer') {\r\n Mmenu = menuCustomer\r\n} else if (session.account_type == 'CE') {\r\n Mmenu = menuCE\r\n} else {\r\n Mmenu = menuOther\r\n}\r\n\r\nexport default Mmenu\r\n\r\n","import React from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport {\r\n CCreateElement,\r\n CSidebar,\r\n CSidebarBrand,\r\n CSidebarNav,\r\n CSidebarNavDivider,\r\n CSidebarNavTitle,\r\n CSidebarMinimizer,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n} from '@coreui/react'\r\n\r\n// sidebar nav config\r\nimport navigation from './_nav'\r\n\r\nconst TheSidebar = () => {\r\n const dispatch = useDispatch()\r\n const show = useSelector(state => state.sidebarShow)\r\n console.log('useSelector(state => state.sidebarShow)', useSelector(state => state.sidebarShow))\r\n return (\r\n dispatch({type: 'set', sidebarShow: val })}\r\n >\r\n \r\n

iSense

\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(TheSidebar)\r\n","import React, { Component } from 'react'\r\nimport {\r\n TheContent,\r\n TheSidebar,\r\n TheFooter,\r\n TheHeader\r\n} from './index'\r\nimport {\r\n getrefreshtoken\r\n} from '../services/fetchTools';\r\nimport Cookies from 'universal-cookie'\r\n\r\nconst cookies = new Cookies();\r\n\r\nclass TheLayout extends Component {\r\n componentDidMount() {\r\n this.cektoken();\r\n }\r\n async cektoken(){\r\n //console.log('layout cektoken')\r\n const token=await getrefreshtoken();\r\n let cookie=cookies.get('iSense_user')\r\n if (!cookie) {\r\n this.props.history.push({\r\n pathname: '/login'\r\n });\r\n }else{ \r\n if (cookie.changePassword == false && cookie.status_in_ex == \"Eksternal\") {\r\n var url_now = window.location.toString()\r\n console.log('url_now', url_now)\r\n if (!url_now.includes('login')) {\r\n console.log('not include login')\r\n var url_new = url_now.replace('dashboard', 'changePasswordBeforeLogin')\r\n console.log('url_new', url_new)\r\n window.location.replace(url_new);\r\n } else {\r\n console.log('include login')\r\n }\r\n }\r\n else {\r\n cookie.refreshStatus = \"idle\";\r\n cookies.set('iSense_user', JSON.stringify(cookie), { \r\n path: '/',\r\n //httpOnly: true,\r\n secure: true,\r\n sameSite: \"Strict\", \r\n });\r\n }\r\n }\r\n // console.log('token',token)\r\n }\r\n render(){ \r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n }\r\n\r\nexport default TheLayout\r\n","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n checkStatus,\r\n parseJSON,\r\n loginHeader,\r\n postMethod\r\n} from '../fetchTools';\r\n\r\nexport const authUser = async (req) => {\r\n const url = `${appConfig.BASE_API}/login`;\r\n const options = { ...postMethod, ...loginHeader, body: JSON.stringify(req) };\r\n \r\n try {\r\n var response = await fetch(url, options);\r\n // var status = await checkStatus(response);\r\n var json = await parseJSON(response);\r\n return json;\r\n } catch (error) {\r\n /*console.log('error', error)*/\r\n return null;\r\n }\r\n \r\n};\r\n\r\nexport const resetPassword_withoutAuth = async (req) => {\r\n const url = `${appConfig.BASE_API}/resetPassword_withoutAuth`;\r\n const options = { ...postMethod, ...loginHeader, body: JSON.stringify(req) };\r\n \r\n try {\r\n var response = await fetch(url, options);\r\n // var message = \"\"\r\n // if(response)\r\n // {\r\n // response.text().then(function(data) {\r\n // // console.log(data);\r\n // // console.log('data',data)\r\n // message = data\r\n // console.log('message service function',message)\r\n // return message\r\n // });\r\n // }\r\n // console.log('message service ',message)\r\n return response\r\n } catch (error) {\r\n /*console.log('error', error)*/\r\n return error;\r\n }\r\n \r\n};\r\n\r\nexport const refreshToken = async (req) => {\r\n // console.log('refreshToken', req);\r\n const url = `${appConfig.BASE_API}/refreshtoken`;\r\n const options = { ...postMethod, ...loginHeader, body: JSON.stringify(req) };\r\n // console.log(url,options)\r\n try {\r\n var response = await fetch(url, options);\r\n console.log('response refresh', response)\r\n var status = await checkStatus(response);\r\n console.log('status refresh', status)\r\n var json = await parseJSON(response);\r\n // console.log('json', json)\r\n return json;\r\n } catch (error) {\r\n \r\n return response.status;\r\n }\r\n}\r\n","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\n\r\n// Function that will be called to refresh authorization\r\n\r\n\r\n// Instantiate the interceptor (you can chain it as it returns the axios instance)\r\n\r\nexport const getAllCustomer = async () => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/readall`; \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const getCustomer = async (id) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/read/${id}`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const createCustomer = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/create`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.Data)\r\n return res.data\r\n else\r\n return { 'status': 'OK' };\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return 'error';\r\n })\r\n return result \r\n};\r\n\r\nexport const deleteCustomer = async (id) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/delete/${id}`;\r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('getallcustomer',res.data) \r\n return res.data \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return 'error';\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const updateCustomer = async (cnumb, req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/update/${cnumb}`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('update customer',res)\r\n if (res.status)\r\n return true\r\n else\r\n return false\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false\r\n })\r\n return result \r\n};\r\n\r\nexport const getCustomerByUser = async (userId) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/deviceuser/readbyuserid/${userId}`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{ \r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const updateAutoConsumable = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/updateAutoConsumable`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('SERVICE res edit auto consum',res)\r\n if (res.status==200)\r\n {\r\n window.location.reload();\r\n return true\r\n }\r\n else\r\n {\r\n return false\r\n }\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false\r\n })\r\n return result \r\n};\r\n\r\nexport const searchCustomer = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/customer/search`;\r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n //console.log('get customer with paging',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n console.log('error searchCustomer()', error)\r\n return null;\r\n })\r\n return result \r\n};","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\n\r\nexport const getAllUser = async () => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/readall`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const getUser = async (id) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/read/${id}`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const addUser = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/registerSendEmail`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n //console.log('add user',res.status)\r\n // if (res.status==200)\r\n // return true\r\n // else\r\n // return false\r\n return res\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return error.response;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const updateUser = async (ids, req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/updateWithoutPassword/${ids}`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n //console.log('update user',res.status)\r\n // if (res.status==200)\r\n // return true\r\n // else\r\n // return false\r\n return res\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return error.response;\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const changePassword = async (req,userid) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/changepassword/${userid}`;\r\n // console.log(req,userid,jsonHeaderAuth())\r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('changepassword',res) \r\n return res\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error.response.data)\r\n return error.response\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const changePasswordBeforeLogin = async (req,userid) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/changePasswordBeforeLogin/${userid}`;\r\n // console.log(req,userid,jsonHeaderAuth())\r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('changePasswordBeforeLogin',res) \r\n return res\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error.response.data)\r\n return error.response\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const deleteUser = async (id) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/delete/${id}`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const updateUser_autoSendAdisa = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/update_autoSendAdisa_general`;\r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('update_autoSendAdisa_general',res.status)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result \r\n \r\n};\r\n\r\nexport const getUserInfo = async () => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/user/adisa_info`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\nexport const getTop10Device = async (cnumb) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/count/toptendevice/${cnumb}`;\r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const getTop10DeviceGCS = async (cnumb) => {\r\n const url = `${appConfig.BASE_API}/count/toptendevicegcs/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDeviceByCustNumb = async (numb) => {\r\n const url = `${appConfig.BASE_API}/device/readall/${numb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getLogDevice = async (sn) => {\r\n const url = `${appConfig.BASE_API}/logdevice/readbysn/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDevice = async (sn) => {\r\n const url = `${appConfig.BASE_API}/device/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDeviceGCSByCustNumb = async (numb) => {\r\n const url = `${appConfig.BASE_API}/devicegcs/readall/${numb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getLogDeviceGCS = async (sn) => {\r\n const url = `${appConfig.BASE_API}/logdevicegcs/readbysn/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDeviceGCS = async (sn) => {\r\n const url = `${appConfig.BASE_API}/devicegcs/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDeviceGCSStatus = async (sn) => {\r\n const url = `${appConfig.BASE_API}/devicegcs/status/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getDeviceStatus = async (sn) => {\r\n const url = `${appConfig.BASE_API}/device/status/${sn}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const logRangeDevice = async (cnumb, req) => {\r\n const url = `${appConfig.BASE_API}/logdevice/range/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const searchDeviceBySNEQ = async (req) => {\r\n const url = `${appConfig.BASE_API}/device/search`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const logRangeDeviceGCS = async (cnumb, req) => {\r\n const url = `${appConfig.BASE_API}/logdevicegcs/range/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const logRangebySnDevice = async (cnumb, req) => {\r\n const url = `${appConfig.BASE_API}/logdevice/rangebysn/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const logRangebySnDeviceGCS = async (cnumb, req) => {\r\n const url = `${appConfig.BASE_API}/logdevicegcs/rangebysn/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateBoundary = async (req) => {\r\n const url = `${appConfig.BASE_API}/device/updateboundary`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateBoundaryGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/devicegcs/updateboundary`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const updatePicDeviceEDS = async (req) => {\r\n const url = `${appConfig.BASE_API}/device/updatePIC`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const updatePicDeviceGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/devicegcs/updatePIC`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const searchHistorySN = async (req) => {\r\n const url = `${appConfig.BASE_API}/HistorySN/search/`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\n\r\nexport const getAllNotif = async () => {\r\n const url = `${appConfig.BASE_API}/customernotif/readall`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getCustNotif = async (cnumb) => {\r\n const url = `${appConfig.BASE_API}/customernotif/readbycn/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const insertNotif = async (req) => {\r\n const url = `${appConfig.BASE_API}/customernotif/insert`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const deleteCustNotif = async (idnotif) => {\r\n const url = `${appConfig.BASE_API}/customernotif/delete/${idnotif}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\nexport const getAllDeviceUSer = async () => {\r\n const url = `${appConfig.BASE_API}/deviceuser/readall`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const getDeviceUSerbyCnumb = async (cnumb) => {\r\n const url = `${appConfig.BASE_API}/deviceuser/readbycn/${cnumb}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};\r\n\r\n\r\nexport const insertDeviceUSer = async (req) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/deviceuser/insert`; \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n console.log('update customer',res)\r\n if (res.status)\r\n return true\r\n else\r\n return false\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false\r\n })\r\n return result \r\n};\r\n\r\nexport const deleteDeviceUSer = async (duse_id) => {\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const url = `${appConfig.BASE_API}/deviceuser/delete/${duse_id}`;\r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n \r\n};\r\n\r\nexport const getTotalDeviceUser = async (userid) => {\r\n const url = `${appConfig.BASE_API}/count/alldevicebyuserid/${userid}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n \r\n};","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n checkStatus,\r\n parseJSON,\r\n jsonHeader,\r\n postMethod,\r\n getMethod\r\n} from '../fetchTools';\r\n\r\nexport const addConnection = async (req) => {\r\n \r\n const url = `${appConfig.BASE_API}/login`;\r\n const options = { ...postMethod, ...jsonHeader, body: JSON.stringify(req) };\r\n \r\n try {\r\n var response = await fetch(url, options);\r\n // var status = await checkStatus(response);\r\n var json = await parseJSON(response);\r\n return json;\r\n } catch (error) {\r\n return null;\r\n }\r\n};\r\n\r\nexport const getConnection = async (nocust) => {\r\n\r\n const url = `${appConfig.BASE_API}/test_connection/readbycn/${nocust}`;\r\n const options = { ...getMethod, ...jsonHeader };\r\n try {\r\n var response = await fetch(url, options);\r\n var status = await checkStatus(response);\r\n var json = await parseJSON(response);\r\n return json;\r\n } catch (error) {\r\n console.log('error', error)\r\n return null;\r\n }\r\n \r\n};\r\n\r\nexport const getSentDevice = async (nocust) => {\r\n\r\n const url = `${appConfig.BASE_API}/test_mode/readbycn/${nocust}`;\r\n const options = { ...getMethod, ...jsonHeader };\r\n try {\r\n var response = await fetch(url, options);\r\n var status = await checkStatus(response);\r\n var json = await parseJSON(response);\r\n return json;\r\n } catch (error) {\r\n console.log('error', error)\r\n return null;\r\n }\r\n \r\n};\r\n","// @flow weak\r\n\r\nimport { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\nexport const getAllTicket = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/readall`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getProgressTicket = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/progress`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\nexport const getProgressTicketGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/progress`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateTicket = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/update`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateTicketLoopEDS = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/updateloop`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateTicketGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/update`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const updateTicketLoopGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/updateloop`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n if (res.status==200)\r\n return true\r\n else\r\n return false\r\n \r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return false;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketById = async (ticket_id) => {\r\n const url = `${appConfig.BASE_API}/ticket/readbyid/${ticket_id}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\nexport const getTicketGCSById = async (ticket_id) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/readbyid/${ticket_id}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\nexport const getTicketByCn = async (serial_number) => {\r\n const url = `${appConfig.BASE_API}/ticket/readbycn/${serial_number}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketByCnGCS = async (serial_number) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/readbycn/${serial_number}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketByDateFlag = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/readbyflag`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketGCSByDateFlag = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketgcs/readbyflag`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketReportingByDateFlag = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketReporting/readbyflag`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getTicketReportingGCSByDateFlag = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticketgcsReporting/readbyflag`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getUserAgent = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/useragent`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getHistoryThreeMonth = async (serial_number) => {\r\n const url = `${appConfig.BASE_API}/Chart/${serial_number}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getHistoryThreeMonthGCS = async (serial_number) => {\r\n const url = `${appConfig.BASE_API}/Chartgcs/${serial_number}`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getChartStatusToner = async (req) => {\r\n const url = `${appConfig.BASE_API}/chart/tonerstatus`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getChartStatusTonerGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/chartgcs/tonerstatus`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const sendToAdisa = async (req) => {\r\n const url = `${appConfig.BASE_API}/sendadisa`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getResultAdisa = async (req) => {\r\n const url = `${appConfig.BASE_API}/adisagetresult`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\n\r\nexport const getTicketAdisa = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/getadisa`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const getSlaToday = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/getSlaToday_view`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n // console.log('getallcustomer',res.data)\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n // console.log('error', error)\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const newTicketUnion = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/newTicketUnion`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const newTicketUnionReadyReserved = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/newTicketUnionReadyReserved`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const data_timeToSla = async () => {\r\n const url = `${appConfig.BASE_API}/ticket/data_timeToSla`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.get(url,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const searchCloseTicket = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/searchCloseTicket`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const closeTicket = async (req) => {\r\n const url = `${appConfig.BASE_API}/ticket/close`; \r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res\r\n }) \r\n .catch (error=> {\r\n return false;\r\n })\r\n return result\r\n};","import { appConfig } from '../../config';\r\nimport {\r\n jsonHeaderAuth,\r\n refreshAuthLogic\r\n} from '../fetchTools';\r\nimport axios from 'axios';\r\nimport createAuthRefreshInterceptor from 'axios-auth-refresh';\r\n\r\nexport const InsertDS = async (req) => {\r\n const url = `${appConfig.BASE_API}/ds/insert`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n };\r\n\r\nexport const SearchConsumableRequest = async (req) => {\r\n const url = `${appConfig.BASE_API}/consumable/search`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const SearchConsumableRequestGCS = async (req) => {\r\n const url = `${appConfig.BASE_API}/consumablegcs/search`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const InsertDSHistory = async (req) => {\r\n const url = `${appConfig.BASE_API}/dsh/insert`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};\r\n\r\nexport const ReadDSHistory = async (req) => {\r\n const url = `${appConfig.BASE_API}/dsh/range`;\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic); \r\n const result=await axios.post(url,req,jsonHeaderAuth())\r\n .then(res=>{\r\n return res.data\r\n }) \r\n .catch (error=> {\r\n return null;\r\n })\r\n return result\r\n};","// @flow\r\n\r\nimport { Base64 } from 'js-base64';\r\nimport Cookies from 'universal-cookie'\r\nimport { refreshToken } from \"./API\"\r\nimport { appConfig } from '../config';\r\n/*\r\n window.location.origin polyfill\r\n */\r\n\r\nexport const getLocationOrigin = () => {\r\n if (!window.location.origin) {\r\n window.location.origin = `${window.location.protocol}//${\r\n window.location.hostname\r\n }${window.location.port ? ':' + window.location.port : ''}`;\r\n }\r\n return window.location.origin;\r\n};\r\nconst cookies = new Cookies()\r\nlet cookie=cookies.get('iSense_user') \r\nlet token=''\r\nlet refreshtoken=''\r\nif (cookie) token=cookies.get('iSense_user').token\r\nif (cookie) refreshtoken=cookies.get('iSense_user').refreshtoken\r\n/*\r\n query options:\r\n */\r\nexport const defaultOptions = {\r\n credentials: 'same-origin',\r\n};\r\n\r\nexport const postMethod = {\r\n method: 'POST',\r\n};\r\n\r\nexport const getMethod = {\r\n method: 'GET',\r\n};\r\nexport const loginHeader = {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n};\r\nexport const refreshAuthLogic = async failedRequest => {\r\n \r\n const url = `${appConfig.BASE_API}/refreshtoken`;\r\n console.log('refresh request',url)\r\n \r\n let cookie=cookies.get('iSense_user')\r\n \r\n try{ \r\n let param={\r\n token: cookie.token, refreshtoken: cookie.refreshtoken\r\n }\r\n // console.log('refresh token param',param)\r\n let response = await refreshToken({\r\n token: cookie.token, refreshtoken: cookie.refreshtoken\r\n });\r\n console.log('refresh token response',response)\r\n if (response){ \r\n if (response==403 || response==401){\r\n cookies.remove('iSense_user', {path: '/'})\r\n sessionStorage.clear()\r\n localStorage.clear() \r\n return null;\r\n }\r\n token=response.token;\r\n refreshtoken=response.refreshtoken;\r\n cookie.token=token;\r\n cookie.refreshtoken=refreshtoken;\r\n } \r\n cookie.refreshStatus=\"idle\";\r\n // console.log('idle')\r\n cookies.set('iSense_user', JSON.stringify(cookie), { \r\n path: '/',\r\n //httpOnly: true,\r\n secure: true,\r\n sameSite: \"Strict\", \r\n }); \r\n return Promise.resolve();\r\n }\r\n catch(error){\r\n \r\n \r\n }\r\n \r\n}\r\nexport const gettoken = async () => {\r\n let cookie=cookies.get('iSense_user')\r\n return cookie.token\r\n }\r\nexport const getrefreshtoken = async () => {\r\n let cookie=cookies.get('iSense_user') \r\n // console.log('get refresh token',cookie)\r\n if (!cookie) return null\r\n \r\n // if (!cookie.refreshStatus || cookie.refreshStatus==\"idle\"){\r\n // // console.log('requesting token')\r\n // cookie.refreshStatus=\"requesting\";\r\n // cookies.set('iSense_user', JSON.stringify(cookie), { path: '/' }); \r\n // try{ \r\n // let param={\r\n // token: cookie.token, refreshtoken: cookie.refreshtoken\r\n // }\r\n // // console.log('refresh token param',param)\r\n // let response = await refreshToken({\r\n // token: cookie.token, refreshtoken: cookie.refreshtoken\r\n // });\r\n // console.log('refresh token response',response)\r\n // if (response){ \r\n // if (response==403 || response==401){\r\n // cookies.remove('iSense_user', {path: '/'})\r\n // sessionStorage.clear()\r\n // localStorage.clear() \r\n // return null;\r\n // }\r\n // token=response.token;\r\n // refreshtoken=response.refreshtoken;\r\n // cookie.token=token;\r\n // cookie.refreshtoken=refreshtoken;\r\n // } \r\n // cookie.refreshStatus=\"idle\";\r\n // // console.log('idle')\r\n // cookies.set('iSense_user', JSON.stringify(cookie), { path: '/' }); \r\n // return response.token;\r\n // }\r\n // catch(error){\r\n \r\n \r\n // }\r\n \r\n // }\r\n // cookie.refreshStatus=\"idle\";\r\n // // console.log('idle')\r\n // cookies.set('iSense_user', JSON.stringify(cookie), { path: '/' }); \r\n return cookie.token;\r\n};\r\nexport const getaccesstoken = async () => {\r\n let cookie=cookies.get('iSense_user') \r\n if (cookie) \r\n return cookie.token;\r\n else\r\n return null;\r\n};\r\nexport const jsonHeaderAuth = () => {\r\n let cookie=cookies.get('iSense_user')\r\n let header={headers : {\r\n Accept: 'application/json',\r\n 'Content-Type' : 'application/json',\r\n 'Authorization' :'Bearer '+ cookie.token\r\n }}\r\n return header;\r\n};\r\nexport const jsonHeader = (tok) => {\r\n let header={headers : {\r\n Accept: 'application/json',\r\n 'Content-Type' : 'application/json',\r\n 'Authorization' :'Bearer '+ tok\r\n }}\r\n return header;\r\n};\r\nexport const rajaOngkirHeader = {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'key': 'fcc82bee33a4517f61c265e4bfe913d4',\r\n 'Access-Control-Allow-Origin' : '*'\r\n },\r\n};\r\n \r\n\r\n/*\r\n query response helpers:\r\n */\r\nexport const checkStatus = (response: {\r\n status: number,\r\n statusText: string,\r\n body: any,\r\n ...any,\r\n}) => {\r\n if (response.status >= 200 && response.status < 300) {\r\n return response;\r\n }\r\n\r\n const error = new Error(response.statusText);\r\n return Promise.reject(error);\r\n};\r\n\r\nexport const parseJSON = (response: any): any => {\r\n try{\r\n let result= response.json();\r\n return result;\r\n }catch(error){\r\n console.log('error parse json',response.json())\r\n return response;\r\n }\r\n};\r\n\r\n/*\r\n general helpers\r\n */\r\nexport const encodeBase64 = (stringToEncode: string): string => {\r\n return Base64.encode(stringToEncode);\r\n};\r\n","// @flow\r\n// const {BASE_API} =window['runConfig']\r\n// const {LDAP_API} =window['runConfig']\r\nexport const appConfig = Object.freeze({\r\n APP_NAME: 'reactDirector',\r\n // dev mode to mock async data for instance\r\n DEV_MODE: true,\r\n // When you need some kind \"console spam\" to debug\r\n DEBUG_ENABLED: true,\r\n // fake delay to mock async\r\n FAKE_ASYNC_DELAY: 1000,\r\n\r\n //2024 02 14 - Pentest Information Disclosure Pada config.js\r\n BASE_API: \"https://api.isense.co.id/dashboard\", //BASE_API, \"http://localhost:56225\"\r\n LDAP_API: \"https://api.isense.co.id/ws_ldap/\", //LDAP_API,\r\n\r\n CONNECTION_STATUS: {\r\n online: 'online',\r\n disconnected: 'disconnected',\r\n },\r\n\r\n // #region API configs\r\n earningGraph: {\r\n data: {\r\n API: 'api/earnigGraphData',\r\n },\r\n },\r\n teamMates: {\r\n data: {\r\n API: 'api/teamMates',\r\n },\r\n },\r\n userInfos: {\r\n data: {\r\n API: 'api/userInfos',\r\n },\r\n },\r\n // #endregion\r\n\r\n HELLO_WORD: 'Hello',\r\n});\r\n"],"sourceRoot":""}