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:
Ahmed Bouhuolia
2020-09-15 00:51:39 +02:00
parent ad00f140d1
commit a22c8395f3
293 changed files with 3391 additions and 1637 deletions

View File

@@ -0,0 +1,46 @@
import TenantRepository from "./TenantRepository";
import { IExpense } from 'interfaces';
export default class ExpenseRepository extends TenantRepository {
models: any;
repositories: any;
cache: any;
constructor(tenantId: number) {
super(tenantId);
this.models = this.tenancy.models(tenantId);
this.cache = this.tenancy.cache(tenantId);
}
getById(expenseId: number) {
const { Expense } = this.models;
return this.cache.get(`expense.id.${expenseId}`, () => {
return Expense.query().findById(expenseId);
})
}
create(expense: IExpense) {
const { Expense } = this.models;
return Expense.query().insert({ ...expense });
}
update(expenseId: number, expense: IExpense) {
const { Expense } = this.models;
return Expense.query().patchAndFetchById(expenseId, { ...expense });
}
publish(expenseId: number) {
}
delete(expenseId: number) {
const { Expense } = this.models;
return Expense.query().findById(expenseId).delete();
}
bulkDelete(expensesIds: number[]) {
const { Expense } = this.models;
return Expense.query().whereIn('id', expensesIds).delete();
}
}