From d644a84fff918d5ee0ce3555861e3ae2ac73eca1 Mon Sep 17 00:00:00 2001 From: Jackie Watanabe Date: Wed, 14 Jun 2017 15:52:24 -0700 Subject: [PATCH 1/4] added post route and create controller action to add new movie --- app/controllers/movies_controller.rb | 33 +++++++++++++++++++++++----- config/routes.rb | 2 +- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 362e2791..841ab806 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -13,12 +13,29 @@ def index def show render( - status: :ok, - json: @movie.as_json( - only: [:title, :overview, :release_date, :inventory], - methods: [:available_inventory] - ) - ) + status: :ok, + json: @movie.as_json( + only: [:title, :overview, :release_date, :inventory], + methods: [:available_inventory] + ) + ) + end + + def create + movie = Movie.new + + movie.title = params[:title] + movie.image_url = params[:image_url] + movie.overview = params[:overview] + movie.release_date = params[:release_date] + movie.inventory = params[:inventory] + + if + movie.save + render status: :ok, json: {id: movie.id, title: movie.title} + else + render status: :bad_request, json: { errors: movie.errors.messages } + end end private @@ -29,4 +46,8 @@ def require_movie render status: :not_found, json: { errors: { title: ["No movie with title #{params["title"]}"] } } end end + + # def movie_params + # params.require(:movie).permit(:id, :title, :release_date, :overview, :inventory, :image_url) + # end end diff --git a/config/routes.rb b/config/routes.rb index 54bf033e..8eff1ff6 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], 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" From 28516dc0c3ccbfba169a1bc4541f52d3b1afd3f1 Mon Sep 17 00:00:00 2001 From: jjousun Date: Thu, 15 Jun 2017 10:22:13 -0700 Subject: [PATCH 2/4] Fixed url issue --- lib/movie_wrapper.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/movie_wrapper.rb b/lib/movie_wrapper.rb index 7bd05c0e..bc5abf9a 100644 --- a/lib/movie_wrapper.rb +++ b/lib/movie_wrapper.rb @@ -32,7 +32,11 @@ def self.construct_movie(api_result) end def self.construct_image_url(img_name) - return BASE_IMG_URL + DEFAULT_IMG_SIZE + img_name + if img_name[0] == '/' + return BASE_IMG_URL + DEFAULT_IMG_SIZE + img_name + else + return img_name + end end end From a6fabfc1d7f2e38f1ffdcd09ce34208064f2a123 Mon Sep 17 00:00:00 2001 From: Jackie Watanabe Date: Tue, 20 Jun 2017 14:37:10 -0700 Subject: [PATCH 3/4] added inventory attribute to serializer so that inventory is included in response --- app/controllers/movies_controller.rb | 8 ++++++-- app/serializers/movie_serializer.rb | 2 +- lib/movie_wrapper.rb | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 841ab806..056afa16 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -28,11 +28,15 @@ def create movie.image_url = params[:image_url] movie.overview = params[:overview] movie.release_date = params[:release_date] - movie.inventory = params[:inventory] + if !params[:inventory] + movie.inventory = 1 + else + movie.inventory = params[:inventory] + end if movie.save - render status: :ok, json: {id: movie.id, title: movie.title} + render status: :ok, json: {id: movie.id, title: movie.title, inventory: movie.inventory} else render status: :bad_request, json: { errors: movie.errors.messages } end diff --git a/app/serializers/movie_serializer.rb b/app/serializers/movie_serializer.rb index 8a1cdc35..c1871302 100644 --- a/app/serializers/movie_serializer.rb +++ b/app/serializers/movie_serializer.rb @@ -1,5 +1,5 @@ class MovieSerializer < ActiveModel::Serializer attribute :id, if: -> { object.id != nil } - attributes :title, :overview, :release_date, :image_url, :external_id + attributes :title, :overview, :release_date, :image_url, :external_id, :inventory end diff --git a/lib/movie_wrapper.rb b/lib/movie_wrapper.rb index bc5abf9a..5c63e7ed 100644 --- a/lib/movie_wrapper.rb +++ b/lib/movie_wrapper.rb @@ -29,6 +29,7 @@ def self.construct_movie(api_result) 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"]) + # inventory: api_result["inventory"]) end def self.construct_image_url(img_name) From dc47b4ff3a5e1024b701c83f7c620c533f846564 Mon Sep 17 00:00:00 2001 From: Jackie Watanabe Date: Fri, 23 Jun 2017 16:14:46 -0700 Subject: [PATCH 4/4] changed default image --- app/controllers/rentals_controller.rb | 2 +- lib/movie_wrapper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/rentals_controller.rb b/app/controllers/rentals_controller.rb index 92744380..aa993d60 100644 --- a/app/controllers/rentals_controller.rb +++ b/app/controllers/rentals_controller.rb @@ -8,7 +8,7 @@ def check_out if rental.save render status: :ok, json: {} else - render status: :bad_request, json: { errors: rental.errors.messages } + render status: :bad_request, json: { errors: rental.errors.messages} end end diff --git a/lib/movie_wrapper.rb b/lib/movie_wrapper.rb index 5c63e7ed..c5f5dcb3 100644 --- a/lib/movie_wrapper.rb +++ b/lib/movie_wrapper.rb @@ -4,7 +4,7 @@ class MovieWrapper BASE_IMG_URL = "https://image.tmdb.org/t/p/" DEFAULT_IMG_SIZE = "w185" - DEFAULT_IMG_URL = "http://lorempixel.com/185/278/" + DEFAULT_IMG_URL = "https://i.ytimg.com/vi/E48ri9sh0u0/maxresdefault.jpg" def self.search(query) url = BASE_URL + "search/movie?api_key=" + KEY + "&query=" + query