diff --git a/src/services/base.service.ts b/src/services/base.service.ts index 1060264..d3eb174 100644 --- a/src/services/base.service.ts +++ b/src/services/base.service.ts @@ -14,4 +14,10 @@ export class BaseService { protected post(url: string, body: T): Observable { return this.http.post(this.baseAddress + url, body); } + + + + protected delete(url: string): Observable { + return this.http.delete(`${this.baseAddress}${url}`); + } } diff --git a/src/services/task.service.ts b/src/services/task.service.ts index c7a5597..e3629ba 100644 --- a/src/services/task.service.ts +++ b/src/services/task.service.ts @@ -9,7 +9,10 @@ export class TaskService extends BaseService { return this.get("task"); } - public addTask(name: string, dueDate: string | null, priority: string | null, status: string | null): Observable { + public addTask(name: string, + dueDate: string | null, + priority: string | null, + status: string | null): Observable { let body: Task = { name_task: name, date_task: new Date(dueDate!), @@ -19,4 +22,8 @@ export class TaskService extends BaseService { } return this.post("task/add", body); } + + public deleteTask(id_task: number): Observable { + return this.delete(`task/delete?id=${id_task}`); + } } diff --git a/src/view/pages/home/home.component.html b/src/view/pages/home/home.component.html index ede63fb..db76410 100644 --- a/src/view/pages/home/home.component.html +++ b/src/view/pages/home/home.component.html @@ -6,12 +6,16 @@ Section tâches
+
@for (task of tasks(); track task.id_task) {

{{ task.name_task }}

- } + + } +
+
diff --git a/src/view/pages/home/home.component.ts b/src/view/pages/home/home.component.ts index ff8a5b3..905e603 100644 --- a/src/view/pages/home/home.component.ts +++ b/src/view/pages/home/home.component.ts @@ -49,17 +49,32 @@ export class Home { //#endregion public ngOnInit(): void { - this.taskService.getTasks().subscribe((response: Task[]): void => { - this.tasks.set(response); + this.taskService.getTasks().subscribe({ + next: (response: Task[]) => { + this.tasks.set(response); + }, + error: (error) => { + console.error(`Récupération des tâches impossible\nErreur:${error.error.message}`); + } }); - this.groupService.getGroups().subscribe((response: Group[]): void => { - this.groups.set(response); + this.groupService.getGroups().subscribe({ + next: (response: Group[]) => { + this.groups.set(response); + }, + error: (error) => { + console.error(`Récupération des groupes impossible\nErreur:${error.error.message}`); + } }); - this.projectService.getProjects().subscribe((response: Project[]): void => { - this.projects.set(response); - }) + this.projectService.getProjects().subscribe({ + next: (response: Project[]) => { + this.projects.set(response); + }, + error: (error) => { + console.error(`Récupération des projets impossible\nErreur:${error.error.message}`); + } + }); } public toggleTaskForm(): void { @@ -75,10 +90,33 @@ export class Home { this.newTaskForm.controls.priority.value, this.newTaskForm.controls.status.value); - response.subscribe(response => { - this.tasks.update(values => { - return [...values, response]; - }); + response.subscribe({ + next: (response) => { + this.tasks.update(values => { + return [...values, response]; + }); + }, + error: (error) => { + console.error(`L'ajout de tâche est impossible\nErreur:${error.error.message}`); + } + }); + } + + /** + * deleteTask + */ + public deleteTask(id_task: number) { + let response: Observable = this.taskService.deleteTask(id_task); + + response.subscribe({ + next: () => { + this.tasks.update((tasks) => { + return tasks.filter(((task) => task.id_task != id_task)); + }); + }, + error: (error) => { + console.error(`La suppression de tâche est impossible\nErreur:${error.error.message}`); + } }); } @@ -92,10 +130,15 @@ export class Home { public submitGroup() { let response: Observable = this.groupService.addGroup(this.newGroupForm.controls.name.value!); - response.subscribe(response => { - this.groups.update(values => { - return [...values, response]; - }); + response.subscribe({ + next: (response) => { + this.groups.update(values => { + return [...values, response]; + }); + }, + error: (error) => { + console.error(`L'ajout d'un groupe est impossible\nErreur:${error.error.message}`); + } }); } @@ -109,10 +152,15 @@ export class Home { public submitProject() { let response: Observable = this.projectService.addProject(this.newProjectForm.controls.name.value!); - response.subscribe(response => { - this.projects.update(values => { - return [...values, response]; - }); + response.subscribe({ + next: (response) => { + this.projects.update(values => { + return [...values, response]; + }); + }, + error: (error) => { + console.error(`L'ajout d'un projet est impossible\nErreur:${error.error.message}`); + } }); } }