APIs for Tasks
Get all tasks of project
http
GET /api/:workspaceId/:projectId/tasksRequest Body
No body required
Response
ts
type Tasks = {
success: boolean;
message: string;
data: Data[];
};
type Data = {
workspace_id: string;
project_id: string;
id: string;
title: string;
description: string;
status: string;
priority: string;
start_date: null;
due_date: Date;
comments_count: string;
assignees: Assignees[];
type: null;
created_by: CreatedBy;
};
type CreatedBy = {
name: string;
email: string;
};
type Assignees = {
id: string;
name: string;
email: string;
};Create Task
http
POST /api/:workspaceId/:projectId/tasksRequest Body
ts
type CreateTask = {
title: string;
description: string;
status: string;
priority: string;
due_date: Date;
start_date: string;
assignees: string[];
};Response
ts
type CreateTaskResponse = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
title: string;
description: string;
status: string;
priority: string;
due_date: Date;
created_by: string;
created_at: Date;
type: null;
start_date: null;
};Update task
http
PUT /api/:workspaceId/:projectId/tasks/:taskIdRequest Body
ts
type UpdateTask = {
title: string;
description: string;
status: string;
priority: string;
due_date: Date;
start_date: string;
assignees: string[];
};Response
ts
type UpdateTaskResponse = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
title: string;
description: string;
status: string;
priority: string;
due_date: Date;
created_by: string;
created_at: Date;
type: string;
start_date: Date;
};Delete task
http
DELETE /api/:workspaceId/:projectId/tasks/:taskIdRequest Body
No body required
Response
ts
type DeleteTaskResponse = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
title: string;
description: string;
status: string;
priority: string;
due_date: Date;
created_by: string;
created_at: Date;
type: string;
start_date: string;
};Assign task to user
http
POST /api/:workspaceId/:projectId/tasks/:taskId/assignRequest Body
ts
type AssignUserToTask = {
assignees: string[];
};Response
ts
type AssignUserToTaskResponse = {
success: boolean;
message: string;
data: Date[];
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
task_id: string;
user_id: string; //email
};Remove task from user
http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/assignRequest Body
ts
type AssignUserToTask = {
assignees: string[];
};Response
ts
type AssignUserToTask = {
success: boolean;
message: string;
};Add comment to task
http
POST /api/:workspaceId/:projectId/tasks/:taskId/commentsRequest Body
ts
type AddComment = {
content: string;
};Response
ts
type AddCommentResponse = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
task_id: string;
content: string;
created_at: Date;
user_email: string;
parent_comment_id: null;
};Add reply to comment
http
POST /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/replyRequest Body
ts
type AddReply = {
content: string;
};Response
ts
type AddReplyResponse = {
success: boolean;
message: string;
data: Data;
};
export interface Data {
id: string;
workspace_id: string;
project_id: string;
task_id: string;
content: string;
created_at: Date;
user_email: string;
parent_comment_id: string;
}Add reaction to comment
http
POST /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/reactionsRequest Body
ts
type AddReactions = {
emoji: string;
};Response
ts
type AddReactionsResponse = {
success: boolean;
message: string;
data: Data;
};
export interface Data {
id: string;
workspace_id: string;
project_id: string;
task_id: string;
comment_id: string;
emoji: string;
user_email: string;
created_at: Date;
}Remove reaction from comment
http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/reactions/:emojiRequest Body
No body required
Response
ts
type RemoveResponse = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
workspace_id: string;
project_id: string;
task_id: string;
comment_id: string;
emoji: string;
user_email: string;
created_at: Date;
};Get all comments of task
http
GET /api/:workspaceId/:projectId/tasks/:taskId/commentsRequest Body
No body required
Response
ts
type CommentResponse = {
success: boolean;
message: string;
data: Data[];
};
type Data = {
id: string;
name: string;
email: string;
photo: null;
content: string;
timestamp: Date;
parent_comment_id: null | string;
reactions: Reaction[];
attachments: Attachment[];
};
type Reaction = {
emoji: string;
users: string[];
count: number;
};
type Attachment = {
id: string;
task_id: string;
comment_id: string;
file_name: string;
file_path: string;
file_type: string;
uploaded_by: string;
uploaded_at: Date;
url: string;
};Delete comment from task
http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentIdRequest Body
No Body required
Response
ts
type DeleteCommentResponse = {
success: boolean;
message: string;
};Add attachments to comment
http
POST /api/:workspaceId/:projectIdRequest Body
ts
type AddCommentAttachment = {
file_name: string;
file_type: string;
file_path: string;
};Response
ts
type AddCommentAttachment = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
task_id: string;
comment_id: string;
file_name: string;
file_path: string;
file_type: string;
uploaded_by: string;
uploaded_at: Date;
};Delete attachments to comment
http
DELETE /api/:workspaceId/:projectIdRequest Body
No body required
Response
ts
type DeleteCommentAttachmentResponse = {
success: boolean;
message: string;
};Get files of task
http
GET /api/:workspaceId/:projectId/tasks/:taskId/fileRequest Body
No Body required
Response
ts
type FileResponse = {
success: boolean;
message: string;
data: Date[];
};
type Date = {
file_id: string;
workspace_id: string;
project_id: string;
task_id: string;
file_name: string;
file_path: string;
file_type: string;
uploaded_by: string;
uploaded_at: Date;
};Upload file to task
http
POST /api/:workspaceId/:projectId/tasks/:taskId/fileRequest Body
ts
type FileUpload = {
fileName: string;
fileType: string;
filePath: string;
};Response
ts
type FileUploadResponse = {
success: boolean;
message: string;
data: Data;
};
export interface Data {
file_id: string;
workspace_id: string;
project_id: string;
task_id: string;
file_name: string;
file_path: string;
file_type: string;
uploaded_by: string;
uploaded_at: Date;
}Export task file
http
GET /api/:workspaceId/:projectId/tasks/:taskId/file/:fileId/exportRequest Body
No body required
Response
Returns a downloadable file
Get task videos
http
GET /api/:workspaceId/:projectId/tasks/:taskId/videosResponse Body
No Body required
Response
ts
type Response = {
success: boolean;
message: string;
data: Data[];
};
type Data = {
file_id: string;
workspace_id: string;
project_id: string;
task_id: string;
file_name: string;
file_path: string;
file_type: string;
uploaded_by: string;
uploaded_at: Date;
url: string;
};Task Property
Create Tast Property
http
POST /api/:workspaceId/:projectId/tasks/:taskId/propertiesRequest Body
ts
type CreateProperty = {
property: Property[];
};
type Property = {
name: string;
color: string;
};Response
ts
type Response = {
success: boolean;
message: string;
data: Data;
};
type Data = {
id: string;
project_id: string;
task_id: string;
property: Property[];
};
type Property = {
name: string;
color: string;
};Get Task Property
http
GET /api/:workspaceId/:projectId/tasks/:taskId/propertiesRequest Body
No Body required
Response
ts
type PropertyResponse = {
success: boolean;
message: string;
data: Data[];
};
type Data = {
id: string;
project_id: string;
task_id: string;
property_name: string;
value: ValueType;
};Update Task Property
http
PUT /api/:workspaceId/:projectId/tasks/:taskId/properties/:propertyIdRequest Body
ts
type UpdateProperty = {
property: Property[];
};
type Property = {
name: string;
color: string;
};Response
ts
type UpdatePropertyRespone = {
success: boolean;
message: string;
};Delete Task Property
http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/properties/:propertyIdRequest Body
No Body Required
Response
ts
type DeletePropertyRespone = {
success: boolean;
message: string;
};