Skip to content
Snippets Groups Projects
Commit 4e326967 authored by Bernard Roland (Student Com20)'s avatar Bernard Roland (Student Com20)
Browse files

Implemented part of the task adapter

parent bb425c5e
No related branches found
No related tags found
No related merge requests found
import { apiRoot } from 'config';
import { getAuthHeader } from './auth';
import { Comment } from './comment';
import { Work } from './work';
export interface TaskRequirement { export interface TaskRequirement {
role: string; role: string;
...@@ -26,3 +31,106 @@ export interface Task { ...@@ -26,3 +31,106 @@ export interface Task {
edited: Date; edited: Date;
} }
export async function getTasks(): Promise<Task[]> {
try {
const response = await fetch(`${apiRoot}/task`, { headers: getAuthHeader() });
if (response.ok) {
return (await response.json()).tasks.map((task: any) => ({
...task,
edited: new Date(task.edited),
created: new Date(task.created),
}));
} else {
throw new Error("Failed to get tasks");
}
} catch (e) {
throw e;
}
}
export async function getTasksWithStatus(status: 'open' | 'closed' | 'suspended'): Promise<Task[]> {
try {
const response = await fetch(`${apiRoot}/task/${status}`, { headers: getAuthHeader() });
if (response.ok) {
return (await response.json()).tasks.map((task: any) => ({
...task,
edited: new Date(task.edited),
created: new Date(task.created),
}));
} else {
throw new Error("Failed to get tasks with status");
}
} catch (e) {
throw e;
}
}
export async function getPossibleTasks(): Promise<Task[]> {
try {
const response = await fetch(`${apiRoot}/task/possible`, { headers: getAuthHeader() });
if (response.ok) {
return (await response.json()).tasks.map((task: any) => ({
...task,
edited: new Date(task.edited),
created: new Date(task.created),
}));
} else {
throw new Error("Failed to get possible tasks");
}
} catch (e) {
throw e;
}
}
export async function getTask(uuid: string): Promise<Task> {
try {
const response = await fetch(`${apiRoot}/task/${uuid}`, { headers: getAuthHeader() });
if (response.ok) {
const task = (await response.json()).task;
return {
...task,
edited: new Date(task.edited),
created: new Date(task.created),
};
} else {
throw new Error("Failed to get task");
}
} catch (e) {
throw e;
}
}
export async function getTaskComments(uuid: string): Promise<Comment[]> {
try {
const response = await fetch(`${apiRoot}/task/${uuid}/comments`, { headers: getAuthHeader() });
if (response.ok) {
return (await response.json()).comments.map((comment: any) => ({
...comment,
edited: new Date(comment.edited),
created: new Date(comment.created),
}));
} else {
throw new Error("Failed to get task comments");
}
} catch (e) {
throw e;
}
}
export async function getTaskWork(uuid: string): Promise<Work[]> {
try {
const response = await fetch(`${apiRoot}/task/${uuid}/work`, { headers: getAuthHeader() });
if (response.ok) {
return (await response.json()).work.map((work: any) => ({
...work,
started: new Date(work.started),
finished: work.finished ? new Date(work.finished) : undefined,
}));
} else {
throw new Error("Failed to get task work");
}
} catch (e) {
throw e;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment