diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index ea3fbaa36bff2ea5beb8842062aa63f026d6cbee..2c26a402f5d4cbc7ffddc1977a7953bc7f6122f6 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -22,7 +22,6 @@ export const routes: Routes = [ { path: 'add-film', component: AddMovieComponent }, { path: 'add-film/:id', component: AddMovieComponent }, { path: 'add-file/:id', component: AddFileComponent }, - { path: 'list-films', component: ListFilmsComponent }, { path: 'add-avis', component: AddReviewComponent }, { path: 'add-avis/:id', component: AddReviewComponent }, { path: 'connection', component: ConnectionComponent }, diff --git a/src/app/pages/add-movie/add-movie.component.html b/src/app/pages/add-movie/add-movie.component.html index c438e4077a7620cff9c5f70d5f8d5fd29c1a337b..77f9e0cc4951f9e1bc72b806cc9f3b8a662404c5 100644 --- a/src/app/pages/add-movie/add-movie.component.html +++ b/src/app/pages/add-movie/add-movie.component.html @@ -23,10 +23,10 @@ <input type="text" id="director" class="form-control" name="director" [ngModel]="film.director"> </div> <div class="form-group"> - <label for="dateSortie"> + <label for="releaseDate"> Date de Sortie </label> - <input type="date" id="dateSortie" class="form-control" name="dateSortie" [ngModel]="film.releaseDate | date:'yyyy-MM-dd'" > + <input type="date" id="releaseDate" class="form-control" name="releaseDate" [ngModel]="film.releaseDate"> </div> <div class="form-group"> <label for="synopsis"> diff --git a/src/app/pages/add-review/add-review.component.html b/src/app/pages/add-review/add-review.component.html index 17576dc94e97c81854e5e0f94cc9d3997386668d..cc44a3f67eae663f65d531f5f66105f72fb1bd8b 100644 --- a/src/app/pages/add-review/add-review.component.html +++ b/src/app/pages/add-review/add-review.component.html @@ -42,13 +42,12 @@ } </div> - <div *ngIf="addAvisValide == false" class="alert alert-danger" role="alert"> + <div *ngIf="addAvisValide == true" class="alert alert-danger" role="alert"> <p> Vous avez déjà saisi un avis pour ce film ! </div> <button *ngIf="onAddPage" class="btn btn-warning" type="submit" >Ajouter</button> - <button *ngIf="!onAddPage" class="btn btn-warning" type="submit">Modifier - </button> + <button *ngIf="!onAddPage" class="btn btn-warning" type="submit">Modifier</button> </form> </div> </div> diff --git a/src/app/pages/add-review/add-review.component.ts b/src/app/pages/add-review/add-review.component.ts index fea5cab0d87a11679211acc827fe10c3851e0f56..716584ffed8064bb6f497714879147d78052cefb 100644 --- a/src/app/pages/add-review/add-review.component.ts +++ b/src/app/pages/add-review/add-review.component.ts @@ -65,6 +65,7 @@ export class AddReviewComponent implements OnInit { } onSubmit(ngForm: NgForm) { + console.log('Début de la méthode onSubmit'); if (this.onAddPage) { const checkAvis: checkReviewValide = { userId: this.connectionService.user.id.toString(), @@ -72,13 +73,13 @@ export class AddReviewComponent implements OnInit { } this.reviewService.checkAddReview(checkAvis).subscribe(bool => { this.addAvisValide = bool - if (this.addAvisValide) { + if (!this.addAvisValide) { const avis = defaultsDeep({ id: null, user: this.connectionService.user, - film: this.movieSelected, - note: this.noteSelected, - texte: ngForm.form.value.texte, + movie: this.movieSelected, + rate: this.noteSelected, + text: ngForm.form.value.texte, }); this.reviewService.addReview(avis).subscribe(u => console.log(u)); this.connectionService.refreshUser().subscribe(u => console.log(u)); diff --git a/src/app/pages/avis-movie/review-movie.component.ts b/src/app/pages/avis-movie/review-movie.component.ts index f0d7c42d96336eeff7af37ef623d0ba24f4ee1c0..59e5cea971af1b42884bfdf33e2f31170c1c0c49 100644 --- a/src/app/pages/avis-movie/review-movie.component.ts +++ b/src/app/pages/avis-movie/review-movie.component.ts @@ -28,7 +28,7 @@ export class ReviewMovieComponent implements OnInit { ngOnInit(): void { this.id = this.route.snapshot.paramMap.get('id'); - this.reviewService.getReviewByFilm(this.id).subscribe(reviews => this.reviews = reviews); + this.filmService.getReviewByFilm(this.id).subscribe(reviews => this.reviews = reviews); this.filmService.getMovies().subscribe(movie => this.movies = movie); } diff --git a/src/app/pages/homepage/homepage.component.html b/src/app/pages/homepage/homepage.component.html index 9770acd721cda75a6918147c60b8c9e7f54e28b6..e1e3f114ee19a6a9093bca5734cc2aa57aec92b5 100644 --- a/src/app/pages/homepage/homepage.component.html +++ b/src/app/pages/homepage/homepage.component.html @@ -47,7 +47,7 @@ <div class="row"> <div *ngFor="let movie of movies" class="col-4"> <div class="card shadow" style="width: 18rem;"> - <img *ngIf="movie.image" src="http://localhost:8080/movies/images/{{movie.id}}" class="card-img-top" alt=""> + <img *ngIf="movie.image" src="http://localhost:8080/movies/{{movie.id}}/image" class="card-img-top" alt=""> <div class="card-body"> <h5 class="card-title">{{movie.title}}</h5> <p class="card-text">{{movie.synopsis}}</p> diff --git a/src/app/pages/list-movies/list-films.component.ts b/src/app/pages/list-movies/list-films.component.ts index d0d0e7296b6190f703afd81888a81a1b86d2c4ec..dab7b5c7483f5d066dd08c9cbab8e09beeb66081 100644 --- a/src/app/pages/list-movies/list-films.component.ts +++ b/src/app/pages/list-movies/list-films.component.ts @@ -19,7 +19,7 @@ import {DatePipe, NgForOf} from "@angular/common"; export class ListFilmsComponent implements OnInit { movies: Movie[]; - id: string; + id: number; constructor(private filmService: MovieService, private router: Router, private route: ActivatedRoute, @@ -28,7 +28,7 @@ export class ListFilmsComponent implements OnInit { ngOnInit() { this.filmService.getMovies().subscribe(movies => this.movies = movies); - this.id = this.route.snapshot.paramMap.get('id'); + this.id = +this.route.snapshot.paramMap.get('id'); } deleteFilm(id: number) { diff --git a/src/app/pages/list-review/list-review.component.ts b/src/app/pages/list-review/list-review.component.ts index 8f908265b437d9cd479863ca1f96214a0a1d07ad..75e74c4cd01c22d2bd0848120c1340664ed0d548 100644 --- a/src/app/pages/list-review/list-review.component.ts +++ b/src/app/pages/list-review/list-review.component.ts @@ -5,6 +5,7 @@ import {ActivatedRoute, Router, RouterLink} from '@angular/router'; import {ExportCsvService} from '../../services/exportCsv.service'; import {DatePipe, NgForOf, NgIf} from "@angular/common"; import {FormsModule} from "@angular/forms"; +import {UserService} from "../../services/user.service"; @Component({ standalone: true, @@ -26,7 +27,8 @@ export class ListReviewComponent implements OnInit { years: number[]; yearSelected: string; constructor(private avisService: ReviewService, private router: Router, - private route: ActivatedRoute, private exportCsvService: ExportCsvService) { + private route: ActivatedRoute, private exportCsvService: ExportCsvService, private userService: UserService, + ) { } ngOnInit() { @@ -38,7 +40,7 @@ export class ListReviewComponent implements OnInit { this.reviews = reviews }); } else { - this.avisService.getReviewByUserId(this.idUser).subscribe(avisList => this.reviews = avisList); + this.userService.getReviewByUserId(this.idUser).subscribe(avisList => this.reviews = avisList); } } diff --git a/src/app/pages/user-page/user-page.component.html b/src/app/pages/user-page/user-page.component.html index 2b4e6bb7d663e7c176c23c8e7d15df4849eca5e9..bedac9efdcc49d2609bc99c90e9f4c44ff183062 100644 --- a/src/app/pages/user-page/user-page.component.html +++ b/src/app/pages/user-page/user-page.component.html @@ -21,7 +21,8 @@ <div class="row"> <div *ngFor="let film of films" class="col-4"> <div class="card shadow" style="width: 18rem;"> - <img *ngIf="film.image" src="http://localhost:8080/movies/images/{{film.id}}" class="card-img-top" alt=""> + <img *ngIf="film.image" src="http://localhost:8080/movies/{{film.id}}/image" class="card-img-top" + alt=""> <div class="card-body"> <h5 class="card-title">{{film.title}}</h5> <p class="card-text">{{film.synopsis}}</p> diff --git a/src/app/pages/user-page/user-page.component.ts b/src/app/pages/user-page/user-page.component.ts index 483de893c3ff07c9ddd64a04b1d9d1df5ece096b..067862061049f20bb7acac4d17b0ff19ebca1496 100644 --- a/src/app/pages/user-page/user-page.component.ts +++ b/src/app/pages/user-page/user-page.component.ts @@ -39,7 +39,7 @@ export class UserPageComponent implements OnInit { this.userService.getUserById(this.connectionService.user.id).subscribe(u => this.user = u) this.userId = this.connectionService.user.id.toString(); this.filmService.getMoviesByUserId(this.userId).subscribe(films => this.films = films); - this.avisService.getReviewByUserId(this.userId).subscribe(avisList => this.reviews = avisList); + this.userService.getReviewByUserId(this.userId).subscribe(avisList => this.reviews = avisList); } else { this.router.navigateByUrl('/connection') } diff --git a/src/app/services/movie.service.ts b/src/app/services/movie.service.ts index f9dac5d6d5b867ba161ed98fd35b20963061ca22..fe0aa7c439bbb5750bebd91a3d5015ca543f6840 100644 --- a/src/app/services/movie.service.ts +++ b/src/app/services/movie.service.ts @@ -4,6 +4,7 @@ import {Observable} from 'rxjs'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {timeout} from 'rxjs/operators'; +import {Review} from "../models/avis.model"; @Injectable({ providedIn: 'root' @@ -26,7 +27,7 @@ export class MovieService { addFile(filmCreateDto: FilmCreateDto): Observable<Movie> { const data = new FormData(); data.append('filmImage', filmCreateDto.filmImage) - return this.http.post<any>(`${this.url}/movies/${filmCreateDto.id}`, data).pipe(timeout(10000)); + return this.http.put<any>(`${this.url}/movies/${filmCreateDto.id}/image`, data).pipe(timeout(10000)); } addMovie(movie: Movie): Observable<Movie> { @@ -34,7 +35,7 @@ export class MovieService { } updateMovie(movie: Movie): Observable<Movie> { - return this.http.put<any>(`${this.url}/movies/${movie.id}}`, movie).pipe(timeout(10000)); + return this.http.put<any>(`${this.url}/movies/${movie.id}`, movie).pipe(timeout(10000)); } getMovieById(id: number): Observable<Movie> { @@ -46,12 +47,16 @@ export class MovieService { } deleteFile(id: string): Observable<any> { - return this.http.post<any>(`${this.url}/movies/deleteFile`, id).pipe(timeout(10000)); + return this.http.delete<any>(`${this.url}/movies/${id}/image`).pipe(timeout(10000)); } getMoviesByUserId(userId: string): Observable<Movie[]> { return this.http.get<Movie[]>(`${this.url}/movies/byReviewer/${userId}`).pipe(timeout(10000)); } + + getReviewByFilm(id: string): Observable<Review[]> { + return this.http.get<Review[]>(`${this.url}/movies/${id}/reviews`).pipe(timeout(10000)); + } } export type FilmCreateDto = { diff --git a/src/app/services/review.service.ts b/src/app/services/review.service.ts index 5691a8214dc6ff97e835dc09cf0688e01a6e94a3..9df3eb4084bf41754502241b92d53dd07409c374 100644 --- a/src/app/services/review.service.ts +++ b/src/app/services/review.service.ts @@ -34,7 +34,7 @@ export class ReviewService { } updateReview(review: Review): Observable<Review> { - return this.http.put<any>(`${this.url}/reviews`, review).pipe(timeout(10000)); + return this.http.put<any>(`${this.url}/reviews/${review.id}`, review).pipe(timeout(10000)); } getReviewById(id: number): Observable<Review> { @@ -45,14 +45,6 @@ export class ReviewService { return this.http.delete(`${this.url}/reviews/${id}`).pipe(timeout(10000)); } - getReviewByFilm(id: string): Observable<Review[]> { - return this.http.get<Review[]>(`${this.url}/reviews/movie/${id}`).pipe(timeout(10000)); - } - - getReviewByUserId(userId: string): Observable<Review[]> { - return this.http.get<Review[]>(`${this.url}/reviews/user/${userId}`).pipe(timeout(10000)); - } - checkAddReview(checkAvis: checkReviewValide): Observable<boolean> { return this.http.get<boolean>(`${this.url}/reviews/checkAvis`, {params: {...checkAvis}}).pipe(timeout(10000)); } diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts index 233a01af543caa020946f9d65152b285f51b3d27..991da09d8d11b9a30458841e8acb10623b9f6924 100644 --- a/src/app/services/user.service.ts +++ b/src/app/services/user.service.ts @@ -5,6 +5,7 @@ import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {timeout} from 'rxjs/operators'; import {Movie} from '../models/movie.model'; +import {Review} from "../models/avis.model"; @Injectable({ providedIn: 'root' @@ -34,12 +35,15 @@ export class UserService { } updateUser(user: User): Observable<Movie> { - return this.http.put<any>(`${this.url}/users`, user).pipe(timeout(10000)); + return this.http.put<any>(`${this.url}/users/${user.id}`, user).pipe(timeout(10000)); } connectionUser(email: string): Observable<User> { - return this.http.get<User>(`${this.url}/users/${email}`).pipe(timeout(10000)); + return this.http.get<User>(`${this.url}/users/byEmail/${email}`).pipe(timeout(10000)); + } + getReviewByUserId(userId: string): Observable<Review[]> { + return this.http.get<Review[]>(`${this.url}/users/${userId}/reviews`).pipe(timeout(10000)); } }