diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 362e2791..056afa16 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -13,12 +13,33 @@ 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] + 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, inventory: movie.inventory} + else + render status: :bad_request, json: { errors: movie.errors.messages } + end end private @@ -29,4 +50,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/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/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/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" diff --git a/lib/movie_wrapper.rb b/lib/movie_wrapper.rb index 7bd05c0e..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 @@ -29,10 +29,15 @@ 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) - 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