import React from 'react' import { Redirect } from 'react-router-dom' import Analytics from 'src/pages/Analytics/Analytics' import Blacklist from 'src/pages/Blacklist' import Cashout from 'src/pages/Cashout' import Commissions from 'src/pages/Commissions' import { Customers, CustomerProfile } from 'src/pages/Customers' import Funding from 'src/pages/Funding' import Locales from 'src/pages/Locales' import IndividualDiscounts from 'src/pages/LoyaltyPanel/IndividualDiscounts' import PromoCodes from 'src/pages/LoyaltyPanel/PromoCodes' import MachineLogs from 'src/pages/MachineLogs' import CashUnits from 'src/pages/Maintenance/CashUnits' import MachineStatus from 'src/pages/Maintenance/MachineStatus' import Notifications from 'src/pages/Notifications/Notifications' import CoinAtmRadar from 'src/pages/OperatorInfo/CoinATMRadar' import ContactInfo from 'src/pages/OperatorInfo/ContactInfo' import MachineScreens from 'src/pages/OperatorInfo/MachineScreens' import ReceiptPrinting from 'src/pages/OperatorInfo/ReceiptPrinting' import SMSNotices from 'src/pages/OperatorInfo/SMSNotices/SMSNotices' import TermsConditions from 'src/pages/OperatorInfo/TermsConditions' import ServerLogs from 'src/pages/ServerLogs' import Services from 'src/pages/Services/Services' import SessionManagement from 'src/pages/SessionManagement/SessionManagement' import Transactions from 'src/pages/Transactions/Transactions' import Triggers from 'src/pages/Triggers' import UserManagement from 'src/pages/UserManagement/UserManagement' import WalletSettings from 'src/pages/Wallet/Wallet' import { namespaces } from 'src/utils/config' import { ROLES } from './utils' const getLamassuRoutes = () => [ { key: 'transactions', label: 'Transactions', route: '/transactions', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Transactions }, { key: 'maintenance', label: 'Maintenance', route: '/maintenance', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], get component() { return () => }, children: [ { key: 'cash_units', label: 'Cash units', route: '/maintenance/cash-units', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: CashUnits }, { key: 'funding', label: 'Funding', route: '/maintenance/funding', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Funding }, { key: 'logs', label: 'Machine logs', route: '/maintenance/logs', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: MachineLogs }, { key: 'machine-status', label: 'Machine status', route: '/maintenance/machine-status', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: MachineStatus }, { key: 'server-logs', label: 'Server', route: '/maintenance/server-logs', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: ServerLogs } ] }, { key: 'analytics', label: 'Analytics', route: '/analytics', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Analytics }, { key: 'settings', label: 'Settings', route: '/settings', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], get component() { return () => }, children: [ { key: namespaces.COMMISSIONS, label: 'Commissions', route: '/settings/commissions', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Commissions }, { key: namespaces.LOCALE, label: 'Locales', route: '/settings/locale', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Locales }, { key: namespaces.CASH_OUT, label: 'Cash-out', route: '/settings/cash-out', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Cashout }, { key: namespaces.NOTIFICATIONS, label: 'Notifications', route: '/settings/notifications', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Notifications }, { key: 'services', label: 'Third-party services', route: '/settings/3rd-party-services', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Services }, { key: namespaces.WALLETS, label: 'Wallet', route: '/settings/wallet-settings', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: WalletSettings }, { key: namespaces.OPERATOR_INFO, label: 'Operator info', route: '/settings/operator-info', title: 'Operator information', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], get component() { return () => ( ) }, children: [ { key: 'contact-info', label: 'Contact information', route: '/settings/operator-info/contact-info', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: ContactInfo }, { key: 'receipt-printing', label: 'Receipt', route: '/settings/operator-info/receipt-printing', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: ReceiptPrinting }, { key: 'sms-notices', label: 'SMS notices', route: '/settings/operator-info/sms-notices', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: SMSNotices }, { key: 'coin-atm-radar', label: 'Coin ATM Radar', route: '/settings/operator-info/coin-atm-radar', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: CoinAtmRadar }, { key: 'terms-conditions', label: 'Terms & Conditions', route: '/settings/operator-info/terms-conditions', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: TermsConditions }, { key: 'machine-screens', label: 'Machine screens', route: '/settings/operator-info/machine-screens', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: MachineScreens } ] } ] }, { key: 'compliance', label: 'Compliance', route: '/compliance', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], get component() { return () => }, children: [ { key: 'triggers', label: 'Triggers', route: '/compliance/triggers', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Triggers }, { key: 'customers', label: 'Customers', route: '/compliance/customers', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Customers }, { key: 'blacklist', label: 'Blacklist', route: '/compliance/blacklist', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: Blacklist }, { key: 'loyalty', label: 'Loyalty', route: '/compliance/loyalty', title: 'Loyalty panel', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], get component() { return () => ( ) }, children: [ { key: 'individual-discounts', label: 'Individual discounts', route: '/compliance/loyalty/individual-discounts', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: IndividualDiscounts }, { key: 'promo-codes', label: 'Promo codes', route: '/compliance/loyalty/codes', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: PromoCodes } ] }, { key: 'customer', route: '/compliance/customer/:id', allowedRoles: [ROLES.USER, ROLES.SUPERUSER], component: CustomerProfile } ] }, { key: 'system', label: 'System', route: '/system', allowedRoles: [ROLES.SUPERUSER], get component() { return () => }, children: [ { key: 'user-management', label: 'User management', route: '/system/user-management', allowedRoles: [ROLES.SUPERUSER], component: UserManagement }, { key: 'session-management', label: 'Session management', route: '/system/session-management', allowedRoles: [ROLES.SUPERUSER], component: SessionManagement } ] } ] export default getLamassuRoutes