diff --git a/apps/web/core/services/issue/issue.service.ts b/apps/web/core/services/issue/issue.service.ts index 784a8bdb8..a0ed0a072 100644 --- a/apps/web/core/services/issue/issue.service.ts +++ b/apps/web/core/services/issue/issue.service.ts @@ -1,4 +1,4 @@ -// types +// plane imports import { API_BASE_URL } from "@plane/constants"; import { EIssueServiceType, @@ -12,12 +12,8 @@ import { type TIssuesResponse, type TIssueSubIssues, } from "@plane/types"; -// helpers import { getIssuesShouldFallbackToServer } from "@plane/utils"; -import { persistence } from "@/local-db/storage.sqlite"; // services - -import { addIssuesBulk, deleteIssueFromLocal, updateIssue } from "@/local-db/utils/load-issues"; import { APIService } from "@/services/api.service"; export class IssueService extends APIService { @@ -85,7 +81,7 @@ export class IssueService extends APIService { if (getIssuesShouldFallbackToServer(queries) || this.serviceType !== EIssueServiceType.ISSUES) { return await this.getIssuesFromServer(workspaceSlug, projectId, queries, config); } - + const { persistence } = await import("@/local-db/storage.sqlite"); const response = await persistence.getIssues(workspaceSlug, projectId, queries, config); return response as TIssuesResponse; } @@ -118,9 +114,10 @@ export class IssueService extends APIService { return this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/${this.serviceType}/${issueId}/`, { params: queries, }) - .then((response) => { + .then(async (response) => { // skip issue update when the service type is epic if (response.data && this.serviceType === EIssueServiceType.ISSUES) { + const { updateIssue } = await import("@/local-db/utils/load-issues"); updateIssue({ ...response.data, is_local_update: 1 }); } // add is_epic flag when the service type is epic @@ -138,8 +135,9 @@ export class IssueService extends APIService { return this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/${this.serviceType}/list/`, { params: { issues: issueIds.join(",") }, }) - .then((response) => { + .then(async (response) => { if (response?.data && Array.isArray(response?.data) && this.serviceType === EIssueServiceType.ISSUES) { + const { addIssuesBulk } = await import("@/local-db/utils/load-issues"); addIssuesBulk(response.data); } return response?.data; @@ -246,6 +244,7 @@ export class IssueService extends APIService { async deleteIssue(workspaceSlug: string, projectId: string, issuesId: string): Promise { if (this.serviceType === EIssueServiceType.ISSUES) { + const { deleteIssueFromLocal } = await import("@/local-db/utils/load-issues"); deleteIssueFromLocal(issuesId); } return this.delete(`/api/workspaces/${workspaceSlug}/projects/${projectId}/${this.serviceType}/${issuesId}/`) @@ -354,8 +353,9 @@ export class IssueService extends APIService { async bulkOperations(workspaceSlug: string, projectId: string, data: TBulkOperationsPayload): Promise { return this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/bulk-operation-issues/`, data) - .then((response) => { + .then(async (response) => { if (this.serviceType === EIssueServiceType.ISSUES) { + const { persistence } = await import("@/local-db/storage.sqlite"); persistence.syncIssues(projectId); } return response?.data; @@ -373,8 +373,9 @@ export class IssueService extends APIService { } ): Promise { return this.delete(`/api/workspaces/${workspaceSlug}/projects/${projectId}/bulk-delete-issues/`, data) - .then((response) => { + .then(async (response) => { if (this.serviceType === EIssueServiceType.ISSUES) { + const { persistence } = await import("@/local-db/storage.sqlite"); persistence.syncIssues(projectId); } return response?.data; @@ -394,8 +395,9 @@ export class IssueService extends APIService { archived_at: string; }> { return this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/bulk-archive-issues/`, data) - .then((response) => { + .then(async (response) => { if (this.serviceType === EIssueServiceType.ISSUES) { + const { persistence } = await import("@/local-db/storage.sqlite"); persistence.syncIssues(projectId); } return response?.data; @@ -476,9 +478,10 @@ export class IssueService extends APIService { return this.get(`/api/workspaces/${workspaceSlug}/work-items/${project_identifier}-${issue_sequence}/`, { params: queries, }) - .then((response) => { + .then(async (response) => { // skip issue update when the service type is epic if (response.data && this.serviceType === EIssueServiceType.ISSUES) { + const { updateIssue } = await import("@/local-db/utils/load-issues"); updateIssue({ ...response.data, is_local_update: 1 }); } // add is_epic flag when the service type is epic