mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
87 lines
3.8 KiB
JavaScript
87 lines
3.8 KiB
JavaScript
import { Router } from 'express';
|
|
import { Container } from 'typedi';
|
|
|
|
// Middlewares
|
|
import JWTAuth from '@/http/middleware/jwtAuth';
|
|
import AttachCurrentTenantUser from '@/http/middleware/AttachCurrentTenantUser';
|
|
import SubscriptionMiddleware from '@/http/middleware/SubscriptionMiddleware';
|
|
import TenancyMiddleware from '@/http/middleware/TenancyMiddleware';
|
|
import EnsureTenantIsInitialized from '@/http/middleware/EnsureTenantIsInitialized';
|
|
import SettingsMiddleware from '@/http/middleware/SettingsMiddleware';
|
|
import I18nMiddleware from '@/http/middleware/I18nMiddleware';
|
|
|
|
// Routes
|
|
import Authentication from '@/http/controllers/Authentication';
|
|
import InviteUsers from '@/http/controllers/InviteUsers';
|
|
import Organization from '@/http/controllers/Organization';
|
|
import Users from '@/http/controllers/Users';
|
|
import Items from '@/http/controllers/Items';
|
|
import ItemCategories from '@/http/controllers/ItemCategories';
|
|
import Accounts from '@/http/controllers/Accounts';
|
|
import AccountTypes from '@/http/controllers/AccountTypes';
|
|
import Views from '@/http/controllers/Views';
|
|
import Accounting from '@/http/controllers/Accounting';
|
|
import FinancialStatements from '@/http/controllers/FinancialStatements';
|
|
import Expenses from '@/http/controllers/Expenses';
|
|
import Settings from '@/http/controllers/Settings';
|
|
import Currencies from '@/http/controllers/Currencies';
|
|
import Customers from '@/http/controllers/Customers';
|
|
import Vendors from '@/http/controllers/Vendors';
|
|
import Sales from '@/http/controllers/Sales'
|
|
import Purchases from '@/http/controllers/Purchases';
|
|
import Resources from './controllers/Resources';
|
|
import ExchangeRates from '@/http/controllers/ExchangeRates';
|
|
import Media from '@/http/controllers/Media';
|
|
import Ping from '@/http/controllers/Ping';
|
|
import Agendash from '@/http/controllers/Agendash';
|
|
import Subscription from '@/http/controllers/Subscription';
|
|
import VouchersController from '@/http/controllers/Subscription/Vouchers';
|
|
|
|
export default () => {
|
|
const app = Router();
|
|
|
|
app.use(I18nMiddleware);
|
|
|
|
app.use('/auth', Container.get(Authentication).router());
|
|
app.use('/invite', Container.get(InviteUsers).nonAuthRouter());
|
|
app.use('/organization', Container.get(Organization).router());
|
|
app.use('/vouchers', Container.get(VouchersController).router());
|
|
app.use('/subscription', Container.get(Subscription).router());
|
|
app.use('/ping', Container.get(Ping).router());
|
|
|
|
const dashboard = Router();
|
|
|
|
dashboard.use(JWTAuth);
|
|
dashboard.use(AttachCurrentTenantUser)
|
|
dashboard.use(TenancyMiddleware);
|
|
dashboard.use(I18nMiddleware);
|
|
dashboard.use(SubscriptionMiddleware('main'));
|
|
dashboard.use(EnsureTenantIsInitialized);
|
|
dashboard.use(SettingsMiddleware);
|
|
|
|
dashboard.use('/users', Container.get(Users).router());
|
|
dashboard.use('/invite', Container.get(InviteUsers).authRouter());
|
|
dashboard.use('/currencies', Currencies.router());
|
|
dashboard.use('/accounts', Accounts.router());
|
|
dashboard.use('/account_types', AccountTypes.router());
|
|
dashboard.use('/accounting', Accounting.router());
|
|
dashboard.use('/views', Views.router());
|
|
dashboard.use('/items', Container.get(Items).router());
|
|
dashboard.use('/item_categories', Container.get(ItemCategories).router());
|
|
dashboard.use('/expenses', Expenses.router());
|
|
dashboard.use('/financial_statements', FinancialStatements.router());
|
|
dashboard.use('/settings', Container.get(Settings).router());
|
|
dashboard.use('/sales', Sales.router());
|
|
dashboard.use('/customers', Customers.router());
|
|
dashboard.use('/vendors', Vendors.router());
|
|
dashboard.use('/purchases', Purchases.router());
|
|
dashboard.use('/resources', Resources.router());
|
|
dashboard.use('/exchange_rates', ExchangeRates.router());
|
|
dashboard.use('/media', Media.router());
|
|
|
|
app.use('/agendash', Agendash.router());
|
|
app.use('/', dashboard);
|
|
|
|
return app;
|
|
};
|