feature/research-di #1

Merged
behnam merged 37 commits from feature/research-di into develop 2024-11-21 15:50:19 +00:00
11 changed files with 21 additions and 15 deletions
Showing only changes of commit d6fb515d61 - Show all commits

View File

@ -30,6 +30,7 @@
"react-dom": "19.0.0-rc-69d4b800-20241021",
"react-i18next": "^15.1.0",
"reflect-metadata": "^0.2.2",
"server-only": "^0.0.1",
"tailwind-merge": "^2.5.4",
"tailwindcss-animate": "^1.0.7",
"tsyringe": "^4.8.0",

View File

@ -1,5 +1,7 @@
import fetchSummaryInfoUsecase from "@/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase";
import { connection } from "next/server";
export default function cardsController() {
connection();
return fetchSummaryInfoUsecase();
}

View File

@ -1,5 +1,7 @@
import fetchCustomerInvoicesUsecase from "@/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
import { connection } from "next/server";
export default function latestInvoicesController() {
connection();
return fetchCustomerInvoicesUsecase();
}

View File

@ -1,3 +1,4 @@
import "server-only";
import { ApiEither } from "@/feature/common/data/api-task";
import serverDi from "@/feature/common/server-di";
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
@ -5,12 +6,10 @@ import CustomerInvoiceRepo, {
customerInvoiceRepoKey,
} from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
import { connection } from "next/server";
export default async function fetchCustomerInvoicesUsecase(): Promise<
export default function fetchCustomerInvoicesUsecase(): Promise<
ApiEither<CustomerInvoice[]>
> {
connection();
const repo = serverDi(customerInvoiceModuleKey).resolve<CustomerInvoiceRepo>(
customerInvoiceRepoKey,
);

View File

@ -1,3 +1,4 @@
import "server-only";
import serverDi from "@/feature/common/server-di";
import { customerKey } from "@/feature/core/customer/customer-key";
import CustomerRepo, {

View File

@ -1,5 +1,4 @@
"use server";
import "server-only";
import { ApiEither } from "@/feature/common/data/api-task";
import serverDi from "@/feature/common/server-di";
import { customerKey } from "@/feature/core/customer/customer-key";
@ -7,12 +6,10 @@ import Customer from "@/feature/core/customer/domain/entity/customer";
import CustomerRepo, {
customerRepoKey,
} from "@/feature/core/customer/domain/i-repo/customer-repo";
import { connection } from "next/server";
export default function fetchCustomersUsecase(
query: string,
): Promise<ApiEither<Customer[]>> {
connection();
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey);
return repo.fetchList(query)();

View File

@ -1,12 +1,11 @@
"use server";
import "server-only";
import serverDi from "@/feature/common/server-di";
import InvoiceRepo, {
invoiceRepoKey,
} from "@/feature/core/invoice/domain/i-repo/invoice-repo";
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
export default async function fetchAllInvoicesAmountUsecase(): Promise<number> {
export default function fetchAllInvoicesAmountUsecase(): Promise<number> {
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey);
return repo.fetchAllInvoicesAmount();

View File

@ -1,3 +1,4 @@
import "server-only";
import serverDi from "@/feature/common/server-di";
import InvoiceRepo, {
invoiceRepoKey,
@ -5,7 +6,7 @@ import InvoiceRepo, {
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
export default async function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey);
return repo.fetchInvoicesStatusSummary();
}

View File

@ -1,3 +1,4 @@
import "server-only";
import serverDi from "@/feature/common/server-di";
import Revenue from "@/feature/core/revenue/domain/entity/revenue";
import RevenueRepo, {
@ -5,7 +6,7 @@ import RevenueRepo, {
} from "@/feature/core/revenue/domain/i-repo/revenue-repo";
import { revenueModuleKey } from "@/feature/core/revenue/domain/revenue-module-key";
export default async function fetchRevenuesUsecase(): Promise<Revenue[]> {
export default function fetchRevenuesUsecase(): Promise<Revenue[]> {
const repo = serverDi(revenueModuleKey).resolve<RevenueRepo>(revenueRepoKey);
return repo.fetchRevenues();
}

View File

@ -1,14 +1,12 @@
import "server-only";
import serverDi from "@/feature/common/server-di";
import fetchCustomersAmountUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-amount-usecase";
import fetchAllInvoicesAmountUsecase from "@/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase";
import fetchInvoicesStatusSummary from "@/feature/core/invoice/domain/usecase/fetch-invoices-status-summary";
import { summaryInfoModuleKey } from "@/feature/core/summary-info/domain/summary-info-module-key";
import SummaryInfo from "@/feature/core/summary-info/domain/value-object/summary-info";
import { connection } from "next/server";
export default async function fetchSummaryInfoUsecase(): Promise<SummaryInfo> {
connection();
try {
const summaryInfoDi = serverDi(summaryInfoModuleKey);
const invoicesAmountPromise = summaryInfoDi.resolve<

View File

@ -3663,6 +3663,11 @@ semver@^7.3.5, semver@^7.6.0, semver@^7.6.3:
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
server-only@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e"
integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"