feature/research-di #1
@ -1,11 +1,11 @@
|
|||||||
import getCustomerInvoiceDi from "@/feature/customer-invoice/data/module/customer-invoice-di";
|
import getCustomerInvoiceDi from "@/feature/core/customer-invoice/data/module/customer-invoice-di";
|
||||||
import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
|
import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
|
||||||
import { customerKey } from "@/feature/customer/customer-key";
|
import { customerKey } from "@/feature/core/customer/customer-key";
|
||||||
import getCustomerDi from "@/feature/customer/data/module/customer-di";
|
import getCustomerDi from "@/feature/core/customer/data/module/customer-di";
|
||||||
import { testModuleKey } from "@/feature/domain/test/test-module-key";
|
import { testModuleKey } from "@/feature/domain/test/test-module-key";
|
||||||
import getTestModule from "@/feature/infra/test/module/test-module";
|
import getTestModule from "@/feature/infra/test/module/test-module";
|
||||||
import getInvoiceDi from "@/feature/invoice/data/module/invoice-di";
|
import getInvoiceDi from "@/feature/core/invoice/data/module/invoice-di";
|
||||||
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
|
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
|
||||||
import { DependencyContainer } from "tsyringe";
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
|
||||||
export default function serverDi(module: string): DependencyContainer {
|
export default function serverDi(module: string): DependencyContainer {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import di from "@/bootstrap/di/init-di";
|
import di from "@/bootstrap/di/init-di";
|
||||||
import { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
|
import { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
|
||||||
import fetchCustomerInvoicesUsecase from "@/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
|
import fetchCustomerInvoicesUsecase from "@/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
|
||||||
import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
|
import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
|
||||||
import { DependencyContainer } from "tsyringe";
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
|
||||||
export default function getCustomerInvoiceDi(): DependencyContainer {
|
export default function getCustomerInvoiceDi(): DependencyContainer {
|
@ -1,7 +1,7 @@
|
|||||||
import { formatCurrency } from "@/app/lib/utils";
|
import { formatCurrency } from "@/app/lib/utils";
|
||||||
import { sql } from "@/bootstrap/db/db";
|
import { sql } from "@/bootstrap/db/db";
|
||||||
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
|
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
|
||||||
import CustomerInvoiceRepo from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
|
import CustomerInvoiceRepo from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
|
||||||
import { connection } from "next/server";
|
import { connection } from "next/server";
|
||||||
import postgres from "postgres";
|
import postgres from "postgres";
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice"
|
||||||
|
|
||||||
|
export default interface CustomerInvoiceRepo {
|
||||||
|
fetchList(): Promise<CustomerInvoice[]>
|
||||||
|
}
|
||||||
|
|
||||||
|
export const customerInvoiceRepoKey = "customerInvoiceRepoKey"
|
@ -1,8 +1,8 @@
|
|||||||
"use server"
|
"use server"
|
||||||
import serverDi from "@/feature/common/server-di";
|
import serverDi from "@/feature/common/server-di";
|
||||||
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
|
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
|
||||||
import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
|
import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
|
||||||
import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
|
import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
|
||||||
|
|
||||||
export default function fetchCustomerInvoicesUsecase(): Promise<CustomerInvoice[]> {
|
export default function fetchCustomerInvoicesUsecase(): Promise<CustomerInvoice[]> {
|
||||||
const repo = serverDi(customerInvoiceModuleKey).resolve<CustomerInvoiceRepo>(customerInvoiceRepoKey)
|
const repo = serverDi(customerInvoiceModuleKey).resolve<CustomerInvoiceRepo>(customerInvoiceRepoKey)
|
@ -1,7 +1,7 @@
|
|||||||
import di from "@/bootstrap/di/init-di";
|
import di from "@/bootstrap/di/init-di";
|
||||||
import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
|
import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
|
||||||
import { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
|
import { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
|
||||||
import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
|
import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
|
||||||
import { DependencyContainer } from "tsyringe";
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
|
||||||
export default function getCustomerDi(): DependencyContainer {
|
export default function getCustomerDi(): DependencyContainer {
|
@ -1,7 +1,7 @@
|
|||||||
import { formatCurrency } from "@/app/lib/utils";
|
import { formatCurrency } from "@/app/lib/utils";
|
||||||
import { sql } from "@/bootstrap/db/db";
|
import { sql } from "@/bootstrap/db/db";
|
||||||
import Customer from "@/feature/customer/domain/entity/customer";
|
import Customer from "@/feature/core/customer/domain/entity/customer";
|
||||||
import CustomerRepo from "@/feature/customer/domain/i-repo/customer-repo";
|
import CustomerRepo from "@/feature/core/customer/domain/i-repo/customer-repo";
|
||||||
import { connection } from "next/server";
|
import { connection } from "next/server";
|
||||||
import postgres from "postgres";
|
import postgres from "postgres";
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
import Customer from "@/feature/customer/domain/entity/customer"
|
import Customer from "@/feature/core/customer/domain/entity/customer"
|
||||||
|
|
||||||
export default interface CustomerRepo {
|
export default interface CustomerRepo {
|
||||||
fetchList(query: string): Promise<Customer[]>
|
fetchList(query: string): Promise<Customer[]>
|
@ -1,6 +1,6 @@
|
|||||||
import serverDi from "@/feature/common/server-di";
|
import serverDi from "@/feature/common/server-di";
|
||||||
import { customerKey } from "@/feature/customer/customer-key";
|
import { customerKey } from "@/feature/core/customer/customer-key";
|
||||||
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
|
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
|
||||||
|
|
||||||
export default function fetchCustomersAmountUsecase(): Promise<number> {
|
export default function fetchCustomersAmountUsecase(): Promise<number> {
|
||||||
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
|
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
|
@ -1,9 +1,9 @@
|
|||||||
"use server"
|
"use server"
|
||||||
|
|
||||||
import serverDi from "@/feature/common/server-di";
|
import serverDi from "@/feature/common/server-di";
|
||||||
import { customerKey } from "@/feature/customer/customer-key";
|
import { customerKey } from "@/feature/core/customer/customer-key";
|
||||||
import Customer from "@/feature/customer/domain/entity/customer";
|
import Customer from "@/feature/core/customer/domain/entity/customer";
|
||||||
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
|
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
|
||||||
|
|
||||||
export default function fetchCustomersUsecase(query: string): Promise<Customer[]> {
|
export default function fetchCustomersUsecase(query: string): Promise<Customer[]> {
|
||||||
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
|
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)
|
@ -1,6 +1,6 @@
|
|||||||
import di from "@/bootstrap/di/init-di";
|
import di from "@/bootstrap/di/init-di";
|
||||||
import invoiceDbRepo from "@/feature/invoice/data/repo/invoice-db-repo";
|
import invoiceDbRepo from "@/feature/core/invoice/data/repo/invoice-db-repo";
|
||||||
import { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
|
import { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
|
||||||
import { DependencyContainer } from "tsyringe";
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
|
||||||
export default function getInvoiceDi(): DependencyContainer {
|
export default function getInvoiceDi(): DependencyContainer {
|
@ -1,7 +1,7 @@
|
|||||||
import { formatCurrency } from "@/app/lib/utils";
|
import { formatCurrency } from "@/app/lib/utils";
|
||||||
import { sql } from "@/bootstrap/db/db";
|
import { sql } from "@/bootstrap/db/db";
|
||||||
import InvoiceRepo from "@/feature/invoice/domain/i-repo/invoice-repo";
|
import InvoiceRepo from "@/feature/core/invoice/domain/i-repo/invoice-repo";
|
||||||
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
|
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
|
||||||
import postgres from "postgres";
|
import postgres from "postgres";
|
||||||
|
|
||||||
type InvoiceSummaryDbResponse = {paid: string, pending: string}
|
type InvoiceSummaryDbResponse = {paid: string, pending: string}
|
@ -1,4 +1,4 @@
|
|||||||
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status"
|
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status"
|
||||||
|
|
||||||
export default interface InvoiceRepo {
|
export default interface InvoiceRepo {
|
||||||
fetchAllInvoicesAmount(): Promise<number>
|
fetchAllInvoicesAmount(): Promise<number>
|
@ -1,7 +1,7 @@
|
|||||||
"use server"
|
"use server"
|
||||||
import serverDi from "@/feature/common/server-di";
|
import serverDi from "@/feature/common/server-di";
|
||||||
import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
|
import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
|
||||||
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
|
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
|
||||||
|
|
||||||
export default function fetchAllInvoicesAmountUsecase(): Promise<number> {
|
export default function fetchAllInvoicesAmountUsecase(): Promise<number> {
|
||||||
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
|
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
|
@ -0,0 +1,9 @@
|
|||||||
|
import serverDi from "@/feature/common/server-di";
|
||||||
|
import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
|
||||||
|
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
|
||||||
|
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
|
||||||
|
|
||||||
|
export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
|
||||||
|
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
|
||||||
|
return repo.fetchInvoicesStatusSummary()
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice"
|
|
||||||
|
|
||||||
export default interface CustomerInvoiceRepo {
|
|
||||||
fetchList(): Promise<CustomerInvoice[]>
|
|
||||||
}
|
|
||||||
|
|
||||||
export const customerInvoiceRepoKey = "customerInvoiceRepoKey"
|
|
@ -1,9 +0,0 @@
|
|||||||
import serverDi from "@/feature/common/server-di";
|
|
||||||
import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
|
|
||||||
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
|
|
||||||
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
|
|
||||||
|
|
||||||
export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
|
|
||||||
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
|
|
||||||
return repo.fetchInvoicesStatusSummary()
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
import Customer from "@/feature/customer/domain/entity/customer";
|
import Customer from "@/feature/core/customer/domain/entity/customer";
|
||||||
import { faker } from "@faker-js/faker";
|
import { faker } from "@faker-js/faker";
|
||||||
|
|
||||||
export default class CustomerFakeFactory {
|
export default class CustomerFakeFactory {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
|
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
|
||||||
import { getMock } from "@/test/common/mock/mock-factory";
|
import { getMock } from "@/test/common/mock/mock-factory";
|
||||||
import { describe } from "vitest";
|
import { describe } from "vitest";
|
||||||
import { faker } from "@faker-js/faker";
|
import { faker } from "@faker-js/faker";
|
||||||
import CustomerFakeFactory from "@/test/common/fake-factory/customer/customer-fake-factory";
|
import CustomerFakeFactory from "@/test/common/fake-factory/customer/customer-fake-factory";
|
||||||
import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
|
import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
|
||||||
import mockDi from "@/test/common/mock/mock-di";
|
import mockDi from "@/test/common/mock/mock-di";
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
/* Faking */
|
/* Faking */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user