forked from github/plane
113 lines
3.1 KiB
TypeScript
113 lines
3.1 KiB
TypeScript
import { API_BASE_URL } from "@/helpers/common.helper";
|
|
import { APIService } from "@/services/api.service";
|
|
// helpers
|
|
// types
|
|
import type { TInboxIssueFilterOptions, TInboxIssueExtendedDetail, TIssue, TInboxDetailedStatus } from "@plane/types";
|
|
|
|
export class InboxIssueService extends APIService {
|
|
constructor() {
|
|
super(API_BASE_URL);
|
|
}
|
|
|
|
async fetchInboxIssues(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
params?: TInboxIssueFilterOptions | {}
|
|
): Promise<TInboxIssueExtendedDetail[]> {
|
|
return this.get(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/?expand=issue_inbox`,
|
|
{
|
|
params,
|
|
}
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
|
|
async fetchInboxIssueById(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
inboxIssueId: string
|
|
): Promise<TInboxIssueExtendedDetail> {
|
|
return this.get(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/${inboxIssueId}/?expand=issue_inbox`
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
|
|
async createInboxIssue(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
data: {
|
|
source: string;
|
|
issue: Partial<TIssue>;
|
|
}
|
|
): Promise<TInboxIssueExtendedDetail> {
|
|
return this.post(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/?expand=issue_inbox`,
|
|
data
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
|
|
async updateInboxIssue(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
inboxIssueId: string,
|
|
data: { issue: Partial<TIssue> }
|
|
): Promise<TInboxIssueExtendedDetail> {
|
|
return this.patch(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/${inboxIssueId}/?expand=issue_inbox`,
|
|
data
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
|
|
async removeInboxIssue(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
inboxIssueId: string
|
|
): Promise<void> {
|
|
return this.delete(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/${inboxIssueId}/`
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
|
|
async updateInboxIssueStatus(
|
|
workspaceSlug: string,
|
|
projectId: string,
|
|
inboxId: string,
|
|
inboxIssueId: string,
|
|
data: TInboxDetailedStatus
|
|
): Promise<TInboxIssueExtendedDetail> {
|
|
return this.patch(
|
|
`/api/workspaces/${workspaceSlug}/projects/${projectId}/inboxes/${inboxId}/inbox-issues/${inboxIssueId}/?expand=issue_inbox`,
|
|
data
|
|
)
|
|
.then((response) => response?.data)
|
|
.catch((error) => {
|
|
throw error?.response?.data;
|
|
});
|
|
}
|
|
}
|