/* eslint-disable no-useless-catch */ // types import { IEstimate, IEstimateFormData, IEstimatePoint } from "@plane/types"; // helpers import { API_BASE_URL } from "@/helpers/common.helper"; // services import { APIService } from "@/services/api.service"; export class EstimateService extends APIService { constructor() { super(API_BASE_URL); } async fetchWorkspaceEstimates(workspaceSlug: string): Promise { try { const { data } = await this.get(`/api/workspaces/${workspaceSlug}/estimates/`); return data || undefined; } catch (error) { throw error; } } async fetchProjectEstimates(workspaceSlug: string, projectId: string): Promise { try { const { data } = await this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/`); return data || undefined; } catch (error) { throw error; } } async fetchEstimateById( workspaceSlug: string, projectId: string, estimateId: string ): Promise { try { const { data } = await this.get( `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/` ); return data || undefined; } catch (error) { throw error; } } async createEstimate( workspaceSlug: string, projectId: string, payload: IEstimateFormData ): Promise { try { const { data } = await this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/`, payload); return data || undefined; } catch (error) { throw error; } } async deleteEstimate(workspaceSlug: string, projectId: string, estimateId: string): Promise { try { await this.delete(`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/`); } catch (error) { throw error; } } async createEstimatePoint( workspaceSlug: string, projectId: string, estimateId: string, payload: Partial ): Promise { try { const { data } = await this.post( `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/estimate-points/`, payload ); return data || undefined; } catch (error) { throw error; } } async updateEstimatePoint( workspaceSlug: string, projectId: string, estimateId: string, estimatePointId: string, payload: Partial ): Promise { try { const { data } = await this.patch( `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/estimate-points/${estimatePointId}/`, payload ); return data || undefined; } catch (error) { throw error; } } } const estimateService = new EstimateService(); export default estimateService;