url = config('services.omdb.api_url') . config('services.omdb.api_key'); $this->user = auth()->user(); } public function search(string $query, array $options = []) { $movie = Http::get($this->url . "&t=" . $query)->json(); if ($movie['Response'] !== 'True') { throw new NotFoundHttpException("Movie not found"); } logger()->debug("Movie from OMDB: " . json_encode($movie)); try { $existing_movie = $this->movie->where('imdb_id', $movie['imdbID'])->firstOrFail(); return $existing_movie; } catch (Exception $e) { return Movie::fromOmdb(array_merge( $movie, ["added_by" => $this->user->id]) ); } } }