mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
b66f07845a
* chore: inbox-issues store and type updates * chore: issue inbox payload change for GET and POST * chore: issue inbox payload change for PATCH * chore: inbox-issue new hooks and store updates * chore: update inbox issue template. * chore: UI root * chore: sidebar issues render * chore: inbox issue details page layout. * chore: inbox issue filters * chore: inbox issue status card. * chore: add loader. * chore: active inbox issue styles. * chore: inbox filters * chore: inbox applied filters UI * chore: inbox issue approval header * chore: inbox issue approval header operations * chore: issue reaction and activity fetch in issue_inbox store * chore: posthog enabled --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
113 lines
3.1 KiB
TypeScript
113 lines
3.1 KiB
TypeScript
import { APIService } from "services/api.service";
|
|
// helpers
|
|
import { API_BASE_URL } from "helpers/common.helper";
|
|
// 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;
|
|
});
|
|
}
|
|
}
|