diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 362e2791..9bb08595 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -21,6 +21,22 @@ def show ) end + def create + # given JSON from addMovie in movie_view, create a movie in the db + movie = Movie.new(title: params["title"], overview: params["overview"], release_date: params["release_date"], image_url: params["image_url"], inventory: params["inventory"]) + + if movie.save + render status: :ok, json: movie + else + render status: "Failed to create movie" + end + + end + + def destroy + Movie.destroy(params["id"]) + end + private def require_movie diff --git a/app/models/movie.rb b/app/models/movie.rb index 0327a4d6..de6dee8e 100644 --- a/app/models/movie.rb +++ b/app/models/movie.rb @@ -13,7 +13,12 @@ def image_url if !orig_value MovieWrapper::DEFAULT_IMG_URL else + puts "This is the orig_value" + orig_value + if orig_value.include?('http') + return orig_value + else MovieWrapper.construct_image_url(orig_value) + end end end end diff --git a/config/routes.rb b/config/routes.rb index 54bf033e..955dcd70 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,7 +3,7 @@ resources :customers, only: [:index] - resources :movies, only: [:index, :show], param: :title + resources :movies, only: [:index, :show, :create, :destroy], param: :title post "/rentals/:title/check-out", to: "rentals#check_out", as: "check_out" post "/rentals/:title/return", to: "rentals#check_in", as: "check_in" diff --git a/db/seeds.rb b/db/seeds.rb index 36750f8e..412e650a 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -4,6 +4,6 @@ Customer.create!(customer) end -JSON.parse(File.read('db/seeds/movies.json')).each do |movie| - Movie.create!(movie) -end +# JSON.parse(File.read('db/seeds/movies.json')).each do |movie| +# Movie.create!(movie) +# end diff --git a/lib/movie_wrapper.rb b/lib/movie_wrapper.rb index 7bd05c0e..b6d4bb12 100644 --- a/lib/movie_wrapper.rb +++ b/lib/movie_wrapper.rb @@ -14,8 +14,13 @@ def self.search(query) return [] else movies = response["results"].map do |result| - self.construct_movie(result) + if Movie.exists?(release_date: result["release_date"]) + Movie.find_by_release_date(result["release_date"]) + else + self.construct_movie(result) + end end + # puts movies return movies end end @@ -24,11 +29,11 @@ def self.search(query) def self.construct_movie(api_result) Movie.new( - title: api_result["title"], - overview: api_result["overview"], - release_date: api_result["release_date"], - image_url: api_result["poster_path"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), - external_id: api_result["id"]) + title: api_result["title"], + overview: api_result["overview"], + release_date: api_result["release_date"], + image_url: api_result["poster_path"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), + external_id: api_result["id"]) end def self.construct_image_url(img_name)