mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 05:10:31 +00:00
feat: remove path alias.
feat: remove Webpack and depend on nodemon. feat: refactoring expenses. feat: optimize system users with caching. feat: architecture tenant optimize.
This commit is contained in:
84
server/src/api/index.ts
Normal file
84
server/src/api/index.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
import { Router } from 'express';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
// Middlewares
|
||||
import JWTAuth from 'api/middleware/jwtAuth';
|
||||
import AttachCurrentTenantUser from 'api/middleware/AttachCurrentTenantUser';
|
||||
import SubscriptionMiddleware from 'api/middleware/SubscriptionMiddleware';
|
||||
import TenancyMiddleware from 'api/middleware/TenancyMiddleware';
|
||||
import EnsureTenantIsInitialized from 'api/middleware/EnsureTenantIsInitialized';
|
||||
import SettingsMiddleware from 'api/middleware/SettingsMiddleware';
|
||||
import I18nMiddleware from 'api/middleware/I18nMiddleware';
|
||||
|
||||
// Routes
|
||||
import Authentication from 'api/controllers/Authentication';
|
||||
import InviteUsers from 'api/controllers/InviteUsers';
|
||||
import Organization from 'api/controllers/Organization';
|
||||
import Users from 'api/controllers/Users';
|
||||
import Items from 'api/controllers/Items';
|
||||
import ItemCategories from 'api/controllers/ItemCategories';
|
||||
import Accounts from 'api/controllers/Accounts';
|
||||
import AccountTypes from 'api/controllers/AccountTypes';
|
||||
import Views from 'api/controllers/Views';
|
||||
import Accounting from 'api/controllers/Accounting';
|
||||
import FinancialStatements from 'api/controllers/FinancialStatements';
|
||||
import Expenses from 'api/controllers/Expenses';
|
||||
import Settings from 'api/controllers/Settings';
|
||||
import Currencies from 'api/controllers/Currencies';
|
||||
import Customers from 'api/controllers/Contacts/Customers';
|
||||
import Vendors from 'api/controllers/Contacts/Vendors';
|
||||
import Sales from 'api/controllers/Sales'
|
||||
import Purchases from 'api/controllers/Purchases';
|
||||
import Resources from './controllers/Resources';
|
||||
import ExchangeRates from 'api/controllers/ExchangeRates';
|
||||
import Media from 'api/controllers/Media';
|
||||
import Ping from 'api/controllers/Ping';
|
||||
import Subscription from 'api/controllers/Subscription';
|
||||
import Licenses from 'api/controllers/Subscription/Licenses';
|
||||
|
||||
export default () => {
|
||||
const app = Router();
|
||||
|
||||
app.use(I18nMiddleware);
|
||||
|
||||
app.use('/auth', Container.get(Authentication).router());
|
||||
app.use('/invite', Container.get(InviteUsers).nonAuthRouter());
|
||||
app.use('/licenses', Container.get(Licenses).router());
|
||||
app.use('/subscription', Container.get(Subscription).router());
|
||||
app.use('/ping', Container.get(Ping).router());
|
||||
app.use('/organization', Container.get(Organization).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', Container.get(Accounts).router());
|
||||
dashboard.use('/account_types', Container.get(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', Container.get(Expenses).router());
|
||||
dashboard.use('/financial_statements', FinancialStatements.router());
|
||||
dashboard.use('/settings', Container.get(Settings).router());
|
||||
dashboard.use('/sales', Sales.router());
|
||||
dashboard.use('/customers', Container.get(Customers).router());
|
||||
dashboard.use('/vendors', Container.get(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('/', dashboard);
|
||||
|
||||
return app;
|
||||
};
|
||||
Reference in New Issue
Block a user