From 0cb29f0b5f100c8b896d17095d2755bfe5da5576 Mon Sep 17 00:00:00 2001 From: behnam Date: Fri, 1 Nov 2024 18:03:11 +0300 Subject: [PATCH] Move caching decision to the usecase layer --- src/feature/core/customer/data/repo/customer-db-repo.ts | 2 -- .../core/customer/domain/usecase/fetch-customers-usecase.ts | 2 ++ src/feature/core/revenue/data/repo/revenue-db-repo.ts | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/feature/core/customer/data/repo/customer-db-repo.ts b/src/feature/core/customer/data/repo/customer-db-repo.ts index 82c0494..ad6705f 100644 --- a/src/feature/core/customer/data/repo/customer-db-repo.ts +++ b/src/feature/core/customer/data/repo/customer-db-repo.ts @@ -17,8 +17,6 @@ type customerDbResponse = { export default class CustomerDbRepo implements CustomerRepo { async fetchList(query: string): Promise { - // This is equivalent to in fetch(..., {cache: 'no-store'}). - connection() try { const data = await sql` SELECT diff --git a/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts index d28584d..c83a252 100644 --- a/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts +++ b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts @@ -4,8 +4,10 @@ import serverDi from "@/feature/common/server-di"; import { customerKey } from "@/feature/core/customer/customer-key"; 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 async function fetchCustomersUsecase(query: string): Promise { + connection() const repo = serverDi(customerKey).resolve(customerRepoKey) return repo.fetchList(query) diff --git a/src/feature/core/revenue/data/repo/revenue-db-repo.ts b/src/feature/core/revenue/data/repo/revenue-db-repo.ts index 7adc439..92ac993 100644 --- a/src/feature/core/revenue/data/repo/revenue-db-repo.ts +++ b/src/feature/core/revenue/data/repo/revenue-db-repo.ts @@ -10,7 +10,6 @@ export type RevenueDbResponse = { }; export default class RevenueDbRepo implements RevenueRepo { async fetchRevenues(): Promise { - // This is equivalent to in fetch(..., {cache: 'no-store'}). try { // Artificially delay a response for demo purposes. // Don't do this in production :)