import { APIService } from "services/api.service"; // types import { IProjectView } from "types/views"; // helpers import { API_BASE_URL } from "helpers/common.helper"; export class ViewService extends APIService { constructor() { super(API_BASE_URL); } async createView(workspaceSlug: string, projectId: string, data: Partial): Promise { return this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/`, data) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async patchView(workspaceSlug: string, projectId: string, viewId: string, data: Partial): Promise { return this.patch(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/${viewId}/`, data) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async deleteView(workspaceSlug: string, projectId: string, viewId: string): Promise { return this.delete(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/${viewId}/`) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async getViews(workspaceSlug: string, projectId: string): Promise { return this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/`) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async getViewDetails(workspaceSlug: string, projectId: string, viewId: string): Promise { return this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/${viewId}/`) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async getViewIssues(workspaceSlug: string, projectId: string, viewId: string): Promise { return this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/views/${viewId}/issues/`) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async addViewToFavorites( workspaceSlug: string, projectId: string, data: { view: string; } ): Promise { return this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/user-favorite-views/`, data) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async removeViewFromFavorites(workspaceSlug: string, projectId: string, viewId: string): Promise { return this.delete(`/api/workspaces/${workspaceSlug}/projects/${projectId}/user-favorite-views/${viewId}/`) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } }