mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 13:20:31 +00:00
- feat: remove unnecessary migrations, controllers and models files.
- feat: metable store - feat: metable store with settings store. - feat: settings middleware to auto-save and load. - feat: DI db manager to master container. - feat: write some logs to sale invoices.
This commit is contained in:
14
server/src/loaders/dbManager.ts
Normal file
14
server/src/loaders/dbManager.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import knexManager from 'knex-db-manager';
|
||||
import knexfile from '@/../config/systemKnexfile';
|
||||
import config from '@/../config/config';
|
||||
|
||||
const knexConfig = knexfile[process.env.NODE_ENV];
|
||||
|
||||
export default () => knexManager.databaseManagerFactory({
|
||||
knex: knexConfig,
|
||||
dbManager: {
|
||||
collate: [],
|
||||
superUser: config.manager.superUser,
|
||||
superPassword: config.manager.superPassword,
|
||||
},
|
||||
});
|
||||
@@ -1,13 +1,15 @@
|
||||
import { Container } from 'typedi';
|
||||
import LoggerInstance from '@/services/Logger';
|
||||
import LoggerInstance from '@/loaders/Logger';
|
||||
import agendaFactory from '@/loaders/agenda';
|
||||
import SmsClientLoader from '@/loaders/smsClient';
|
||||
import mailInstance from '@/loaders/mail';
|
||||
import dbManagerFactory from '@/loaders/dbManager';
|
||||
|
||||
export default ({ mongoConnection, knex }) => {
|
||||
try {
|
||||
const agendaInstance = agendaFactory({ mongoConnection });
|
||||
const smsClientInstance = SmsClientLoader();
|
||||
const dbManager = dbManagerFactory();
|
||||
|
||||
Container.set('agenda', agendaInstance);
|
||||
LoggerInstance.info('Agenda has been injected into container');
|
||||
@@ -24,6 +26,9 @@ export default ({ mongoConnection, knex }) => {
|
||||
Container.set('mail', mailInstance);
|
||||
LoggerInstance.info('Mail instance has been injected into container');
|
||||
|
||||
Container.set('dbManager', dbManager);
|
||||
LoggerInstance.info('Database manager has been injected into container.');
|
||||
|
||||
return { agenda: agendaInstance };
|
||||
} catch (e) {
|
||||
LoggerInstance.error('Error on dependency injector loader: %o', e);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Logger from '@/services/Logger';
|
||||
import Logger from '@/loaders/Logger';
|
||||
import mongooseLoader from '@/loaders/mongoose';
|
||||
import jobsLoader from '@/loaders/jobs';
|
||||
import expressLoader from '@/loaders/express';
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import Agenda from 'agenda';
|
||||
import WelcomeEmailJob from '@/Jobs/welcomeEmail';
|
||||
import ResetPasswordMailJob from '@/Jobs/ResetPasswordMail';
|
||||
import ComputeItemCost from '@/Jobs/ComputeItemCost';
|
||||
import WelcomeEmailJob from '@/jobs/WelcomeEmail';
|
||||
import WelcomeSMSJob from '@/jobs/WelcomeSMS';
|
||||
import ResetPasswordMailJob from '@/jobs/ResetPasswordMail';
|
||||
import ComputeItemCost from '@/jobs/ComputeItemCost';
|
||||
import RewriteInvoicesJournalEntries from '@/jobs/writeInvoicesJEntries';
|
||||
import SendVoucherViaPhoneJob from '@/jobs/SendVoucherPhone';
|
||||
import SendVoucherViaEmailJob from '@/jobs/SendVoucherEmail';
|
||||
@@ -12,16 +13,24 @@ import SendMailNotificationTrialEnd from '@/jobs/MailNotificationTrialEnd';
|
||||
import UserInviteMailJob from '@/jobs/UserInviteMail';
|
||||
|
||||
export default ({ agenda }: { agenda: Agenda }) => {
|
||||
// Welcome mail and SMS message.
|
||||
agenda.define(
|
||||
'welcome-email',
|
||||
{ priority: 'high' },
|
||||
new WelcomeEmailJob().handler,
|
||||
);
|
||||
agenda.define(
|
||||
'welcome-sms',
|
||||
{ priority: 'high' },
|
||||
new WelcomeSMSJob().handler
|
||||
);
|
||||
// Reset password mail.
|
||||
agenda.define(
|
||||
'reset-password-mail',
|
||||
{ priority: 'high' },
|
||||
new ResetPasswordMailJob().handler,
|
||||
);
|
||||
// User invite mail.
|
||||
agenda.define(
|
||||
'user-invite-mail',
|
||||
{ priority: 'high' },
|
||||
|
||||
13
server/src/loaders/logger.ts
Normal file
13
server/src/loaders/logger.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import winston from 'winston';
|
||||
|
||||
const transports = {
|
||||
console: new winston.transports.Console({ level: 'warn' }),
|
||||
file: new winston.transports.File({ filename: 'stdout.log' }),
|
||||
};
|
||||
|
||||
export default winston.createLogger({
|
||||
transports: [
|
||||
transports.console,
|
||||
transports.file,
|
||||
],
|
||||
});
|
||||
70
server/src/loaders/tenantModels.ts
Normal file
70
server/src/loaders/tenantModels.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
import { mapValues } from 'lodash';
|
||||
|
||||
import Account from '@/models/Account';
|
||||
import AccountBalance from '@/models/AccountBalance';
|
||||
import AccountTransaction from '@/models/AccountTransaction';
|
||||
import AccountType from '@/models/AccountType';
|
||||
import Bill from '@/models/Bill';
|
||||
import BillPayment from '@/models/BillPayment';
|
||||
import BillPaymentEntry from '@/models/BillPaymentEntry';
|
||||
import Currency from '@/models/Currency';
|
||||
import Customer from '@/models/Customer';
|
||||
import Vendor from '@/models/Vendor';
|
||||
import ExchangeRate from '@/models/ExchangeRate';
|
||||
import Expense from '@/models/Expense';
|
||||
import ExpenseCategory from '@/models/ExpenseCategory';
|
||||
import View from '@/models/View';
|
||||
import ViewRole from '@/models/ViewRole';
|
||||
import ViewColumn from '@/models/ViewColumn';
|
||||
import Setting from '@/models/Setting';
|
||||
import SaleInvoice from '@/models/SaleInvoice';
|
||||
import SaleInvoiceEntry from '@/models/SaleInvoiceEntry';
|
||||
import SaleReceipt from '@/models/SaleReceipt';
|
||||
import SaleReceiptEntry from '@/models/SaleReceiptEntry';
|
||||
import SaleEstimate from '@/models/SaleEstimate';
|
||||
import SaleEstimateEntry from '@/models/SaleEstimateEntry';
|
||||
import PaymentReceive from '@/models/PaymentReceive';
|
||||
import PaymentReceiveEntry from '@/models/PaymentReceiveEntry';
|
||||
import Option from '@/models/Option';
|
||||
import Resource from '@/models/Resource';
|
||||
import InventoryCostLotTracker from '@/models/InventoryCostLotTracker';
|
||||
import InventoryTransaction from '@/models/InventoryTransaction';
|
||||
import ResourceField from '@/models/ResourceField';
|
||||
import ResourceFieldMetadata from '@/models/ResourceFieldMetadata';
|
||||
|
||||
export default (knex) => {
|
||||
const models = {
|
||||
Option,
|
||||
Account,
|
||||
AccountBalance,
|
||||
AccountTransaction,
|
||||
AccountType,
|
||||
Bill,
|
||||
BillPayment,
|
||||
BillPaymentEntry,
|
||||
Currency,
|
||||
Customer,
|
||||
Vendor,
|
||||
ExchangeRate,
|
||||
Expense,
|
||||
ExpenseCategory,
|
||||
View,
|
||||
ViewRole,
|
||||
ViewColumn,
|
||||
Setting,
|
||||
SaleInvoice,
|
||||
SaleInvoiceEntry,
|
||||
SaleReceipt,
|
||||
SaleReceiptEntry,
|
||||
SaleEstimate,
|
||||
SaleEstimateEntry,
|
||||
PaymentReceive,
|
||||
PaymentReceiveEntry,
|
||||
Resource,
|
||||
InventoryTransaction,
|
||||
InventoryCostLotTracker,
|
||||
ResourceField,
|
||||
ResourceFieldMetadata,
|
||||
};
|
||||
return mapValues(models, (model) => model.bindKnex(knex));
|
||||
}
|
||||
Reference in New Issue
Block a user