From fcca3d032c246d6f63e1d10dab1476f121a8964b Mon Sep 17 00:00:00 2001 From: DoarMihai Date: Mon, 30 Dec 2024 03:06:20 +0200 Subject: [PATCH] [#1] reviews --- app/Models/Comment.php | 24 ++++++++++++ .../MovieProcessingService.php | 35 ++++++++++++++++++ ...024_12_30_010251_create_comments_table.php | 37 +++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 app/Models/Comment.php create mode 100644 database/migrations/2024_12_30_010251_create_comments_table.php diff --git a/app/Models/Comment.php b/app/Models/Comment.php new file mode 100644 index 0000000..989b157 --- /dev/null +++ b/app/Models/Comment.php @@ -0,0 +1,24 @@ +removeElementFromRemainingJobs($item->tmdb_id, ItemToFetchJobs::JOB_TRANSLATIONS); } + private function getReviews($item) + { + $tmdbMovieReviews = $this->moviesApi->getReviews($item->tmdb_id); + + if (empty($tmdbMovieReviews) || !isset($tmdbMovieReviews['results'])){ + return; + } + + $movie = Movie::where('tmdb_id', $item->tmdb_id)->first(); + + foreach ($tmdbMovieReviews['results'] as $tmdbReview) { + $existingReview = Comment::where('entity_id', $movie->id) + ->where('entity_type', Comment::TYPE_MOVIE) + ->where('tmdb_id', $tmdbReview['id']) + ->first(); + + if (!$existingReview) { + Comment::create([ + 'entity_id' => $movie->id, + 'entity_type' => Comment::TYPE_MOVIE, + 'author_name' => $tmdbReview['author'], + 'author_avatar' => $tmdbReview['author_details']['avatar_path'], + 'author_rating' => $tmdbReview['author_details']['rating'], + 'content' => $tmdbReview['content'], + 'published_at' => $tmdbReview['created_at'], + 'tmdb_id' => $tmdbReview['id'], + 'tmdb_url' => $tmdbReview['url'], + ]); + } + } + + $this->removeElementFromRemainingJobs($item->tmdb_id, ItemToFetchJobs::JOB_REVIEWS); + } + private function processMovieCollection(int $movieId, $belongsToCollection) { $movieCollection = MovieCollection::where('tmdb_id', $belongsToCollection['id'])->first(); diff --git a/database/migrations/2024_12_30_010251_create_comments_table.php b/database/migrations/2024_12_30_010251_create_comments_table.php new file mode 100644 index 0000000..3d07465 --- /dev/null +++ b/database/migrations/2024_12_30_010251_create_comments_table.php @@ -0,0 +1,37 @@ +id(); + $table->integer('entity_id'); + $table->string('entity_type'); + $table->integer('user_id')->nullable(true); + $table->string('author_name'); + $table->string('author_avatar'); + $table->integer('author_rating'); + $table->text('content'); + $table->datetime('published_at'); + $table->string('tmdb_id'); + $table->string('tmdb_url'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('comments'); + } +};