connect front to back

This commit is contained in:
2025-11-18 10:47:33 +01:00
parent 37094996ad
commit 73ce63d7d0
21 changed files with 399 additions and 617 deletions

View File

@@ -1,10 +1,12 @@
import { Component } from '@angular/core';
import {Component, inject, OnInit, signal} from '@angular/core';
import {NzTableComponent} from "ng-zorro-antd/table";
import {Modal} from "../modal/modal";
import {DatePipe} from "@angular/common";
import {NzButtonComponent} from "ng-zorro-antd/button";
import {UserInfo} from "../../interfaces/user.interfaces";
import {UpdateUser} from "../update-user/update-user";
import {GetUserDto, UsersService} from "../../services/api";
import {NzNotificationService} from "ng-zorro-antd/notification";
import {firstValueFrom} from "rxjs";
@Component({
selector: 'app-user-table',
@@ -18,245 +20,32 @@ import {UpdateUser} from "../update-user/update-user";
templateUrl: './user-table.html',
styleUrl: './user-table.css',
})
export class UserTable {
listOfData: UserInfo[] = [
{
name: 'Dupont',
firstName: 'Mathys',
email: 'mathys@biblio.fr',
birthDate: new Date('2004-05-21'),
loan: [
{
book: {
title: 'Dune',
isbn: '9780441013593',
author: 'Frank Herbert',
releaseYear: 1965
},
user: null,
date: new Date('2025-11-01'),
plannedReturningDate: new Date('2025-12-01'),
effectiveReturningDate: null
},
{
book: {
title: 'Dune',
isbn: '9780441013593',
author: 'Frank Herbert',
releaseYear: 1965
},
user: null,
date: new Date('2025-11-01'),
plannedReturningDate: new Date('2025-12-01'),
effectiveReturningDate: null
},
{
book: {
title: 'Dune',
isbn: '9780441013593',
author: 'Frank Herbert',
releaseYear: 1965
},
user: null,
date: new Date('2025-11-01'),
plannedReturningDate: new Date('2025-12-01'),
effectiveReturningDate: null
},
{
book: {
title: 'Dune',
isbn: '9780441013593',
author: 'Frank Herbert',
releaseYear: 1965
},
user: null,
date: new Date('2025-11-01'),
plannedReturningDate: new Date('2025-12-01'),
effectiveReturningDate: null
}
]
},
{
name: 'Durand',
firstName: 'Lucie',
email: 'lucie@biblio.fr',
birthDate: new Date('1998-03-12'),
loan: [
{
book: {
title: '1984',
isbn: '9780451524935',
author: 'George Orwell',
releaseYear: 1949
},
user: null,
date: new Date('2025-10-20'),
plannedReturningDate: new Date('2025-11-20'),
effectiveReturningDate: new Date('2025-11-05')
}
]
},
{
name: 'Bernard',
firstName: 'Thomas',
email: 'thomas@biblio.fr',
birthDate: new Date('1990-07-04'),
loan: [
{
book: {
title: 'Le Seigneur des Anneaux',
isbn: '9780261102385',
author: 'J.R.R. Tolkien',
releaseYear: 1954
},
user: null,
date: new Date('2025-09-10'),
plannedReturningDate: new Date('2025-10-10'),
effectiveReturningDate: new Date('2025-10-02')
}
]
},
{
name: 'Moreau',
firstName: 'Sophie',
email: 'sophie@biblio.fr',
birthDate: new Date('1987-02-25'),
loan: [
{
book: {
title: 'Les Misérables',
isbn: '9780140444308',
author: 'Victor Hugo',
releaseYear: 1862
},
user: null,
date: new Date('2025-11-03'),
plannedReturningDate: new Date('2025-12-03'),
effectiveReturningDate: null
}
]
},
{
name: 'Leroy',
firstName: 'Julien',
email: 'julien@biblio.fr',
birthDate: new Date('2001-09-18'),
loan: [
{
book: {
title: 'Fahrenheit 451',
isbn: '9781451673319',
author: 'Ray Bradbury',
releaseYear: 1953
},
user: null,
date: new Date('2025-10-15'),
plannedReturningDate: new Date('2025-11-15'),
effectiveReturningDate: new Date('2025-11-13')
}
]
},
{
name: 'Petit',
firstName: 'Emma',
email: 'emma@biblio.fr',
birthDate: new Date('2006-11-30'),
loan: [
{
book: {
title: 'Harry Potter à lécole des sorciers',
isbn: '9780747532743',
author: 'J.K. Rowling',
releaseYear: 1997
},
user: null,
date: new Date('2025-11-08'),
plannedReturningDate: new Date('2025-12-08'),
effectiveReturningDate: null
}
]
},
{
name: 'Roux',
firstName: 'Nicolas',
email: 'nicolas@biblio.fr',
birthDate: new Date('1995-08-14'),
loan: [
{
book: {
title: 'Le Petit Prince',
isbn: '9780156012195',
author: 'Antoine de Saint-Exupéry',
releaseYear: 1943
},
user: null,
date: new Date('2025-09-25'),
plannedReturningDate: new Date('2025-10-25'),
effectiveReturningDate: new Date('2025-10-20')
}
]
},
{
name: 'Fontaine',
firstName: 'Claire',
email: 'claire@biblio.fr',
birthDate: new Date('1992-04-17'),
loan: [
{
book: {
title: 'LÉtranger',
isbn: '9782070360024',
author: 'Albert Camus',
releaseYear: 1942
},
user: null,
date: new Date('2025-10-05'),
plannedReturningDate: new Date('2025-11-05'),
effectiveReturningDate: new Date('2025-11-01')
}
]
},
{
name: 'Blanc',
firstName: 'Hugo',
email: 'hugo@biblio.fr',
birthDate: new Date('2000-01-09'),
loan: [
{
book: {
title: 'Le Hobbit',
isbn: '9780261102217',
author: 'J.R.R. Tolkien',
releaseYear: 1937
},
user: null,
date: new Date('2025-11-02'),
plannedReturningDate: new Date('2025-12-02'),
effectiveReturningDate: null
}
]
},
{
name: 'Garnier',
firstName: 'Léa',
email: 'lea@biblio.fr',
birthDate: new Date('1999-06-11'),
loan: [
{
book: {
title: 'La Peste',
isbn: '9780141185064',
author: 'Albert Camus',
releaseYear: 1947
},
user: null,
date: new Date('2025-09-01'),
plannedReturningDate: new Date('2025-10-01'),
effectiveReturningDate: new Date('2025-09-27')
}
]
export class UserTable implements OnInit {
private usersService = inject(UsersService);
private notificationService = inject(NzNotificationService)
users = signal<GetUserDto[]>([]);
usersLoading = signal<boolean>(false);
async ngOnInit() {
await this.fetchUsers();
}
async fetchUsers() {
this.usersLoading.set(true)
try {
const users = await firstValueFrom(this.usersService.getAllUsersEndpoint())
} catch (e) {
this.notificationService.error(
'Erreur',
'Erreur de communication avec l\'API'
)
}
];
this.usersLoading.set(false)
}
delete() {
return