From 5c6282973adb42ac132eab1268e243ff44aec7a1 Mon Sep 17 00:00:00 2001 From: Daniela Di Iorio Date: Mon, 17 Dec 2018 13:43:20 -0800 Subject: [PATCH 1/4] entered API key and ran dbseed --- .DS_Store | Bin 0 -> 6148 bytes db/schema.rb | 53 +++++++++++++++++++++++++++------------------------ 2 files changed, 28 insertions(+), 25 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..95445913e03db11afe645c0ba96d53fd2ea7020e GIT binary patch literal 6148 zcmeHK(QeZ)6uoXsmzE(afwVp51&N1h>Qu%a5K<|f&>oNwMeqPr-Mg?kgsGP$3EA|J=ck2A`%oSp}>D|GEPF?iR_TF^vyHQPJ)y#jZb<9_%P*PkV0{iXTpkHa8I8;x(GP%K?4Z#YiXsa~nR z?4HE4ZtA7er0q?f^VK6SJ@Iw>NgRj2+MfS37|f1p*YC$s>IKnYBAtW&0F)Qcf~X(Q z+VM2%Cvu*y8gQJ7Q#q<_&*#nNUfpf(H5PSuzQ5n7ySJLR7mJFsbz}GL;qmCr+xff2 z`%h9t68KO`yQ*;opV2S`Iqy!QFph@kXP-(|EF@t<)0|}A!OAAAKz;H}4slXHW|F!= z4`@ImnSzi8IX0&?%ic8Ec#04S?9rL&Clj6ZD}oo~pG9zr^Q?GnA#hY#)+Uy!$M-}% z#Iwug$jiul298uXnMljZdMP@WR~;6u z0#*U5fL4IN4=xI0OXE_Z{B)p_M*v_6-O|vOKmS0NJAf^XONHox3FQh@u0kI%gg!e6 z<&N=|<}Vd0cM|f>m`C4P=o5<2M-SmjI*FD-TU!OJ0;U2*by?&6|KRuMf78icSp}>D z|CIuw)aiEG2ubg)Yr*ke>!KW^urY6`P`aSf+p%o$R=kZO4P!1hfGv$nh3J9V9|0+Y Kt*ionRe_&I6e55C literal 0 HcmV?d00001 diff --git a/db/schema.rb b/db/schema.rb index ffb28f7e..c7cb7c0a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,40 +10,43 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20180618042754) do +ActiveRecord::Schema.define(version: 2018_06_18_042754) do + + # These are extensions that must be enabled in order to support this database + enable_extension "plpgsql" create_table "customers", force: :cascade do |t| - t.string "name" + t.string "name" t.datetime "registered_at" - t.string "address" - t.string "city" - t.string "state" - t.string "postal_code" - t.string "phone" - t.float "account_credit" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.string "address" + t.string "city" + t.string "state" + t.string "postal_code" + t.string "phone" + t.float "account_credit" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "movies", force: :cascade do |t| - t.string "title" - t.text "overview" - t.date "release_date" - t.integer "inventory" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "image_url" - t.integer "external_id" + t.string "title" + t.text "overview" + t.date "release_date" + t.integer "inventory" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "image_url" + t.integer "external_id" end create_table "rentals", force: :cascade do |t| - t.integer "customer_id" - t.integer "movie_id" - t.date "checkout_date" - t.date "due_date" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "returned" + t.integer "customer_id" + t.integer "movie_id" + t.date "checkout_date" + t.date "due_date" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.boolean "returned" t.index ["customer_id"], name: "index_rentals_on_customer_id" t.index ["movie_id"], name: "index_rentals_on_movie_id" end From fd3d19bfaa95d40ecf97edf0800441837456005f Mon Sep 17 00:00:00 2001 From: Daniela Di Iorio Date: Tue, 18 Dec 2018 14:00:16 -0800 Subject: [PATCH 2/4] added API endpoint to add movie --- app/controllers/movies_controller.rb | 9 +++++++++ config/routes.rb | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 362e2791..bf1e86e1 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -11,6 +11,15 @@ def index render status: :ok, json: data end + def create + Movie.create( + title: params["title"], + overview: params["overview"], + release_date: params["release_date"], + image_url: params["poster_path"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), + external_id: params["id"]) + end + def show render( status: :ok, diff --git a/config/routes.rb b/config/routes.rb index f4c99688..76715f9a 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 3a2075211d3002283aee18cfe3b14002192b572e Mon Sep 17 00:00:00 2001 From: Daniela Di Iorio Date: Tue, 18 Dec 2018 14:50:54 -0800 Subject: [PATCH 3/4] refactored movie create to use correct data --- app/controllers/movies_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index bf1e86e1..d04d05aa 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -16,8 +16,8 @@ def create title: params["title"], overview: params["overview"], release_date: params["release_date"], - image_url: params["poster_path"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), - external_id: params["id"]) + image_url: params["image_url"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), + external_id: params["external_id"]) end def show From 3823a79307369823cae7a93d59f2347a56c00403 Mon Sep 17 00:00:00 2001 From: Daniela Di Iorio Date: Tue, 18 Dec 2018 15:34:04 -0800 Subject: [PATCH 4/4] create method responds with json --- app/controllers/movies_controller.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index d04d05aa..617f7f3e 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -12,12 +12,20 @@ def index end def create - Movie.create( + movie = Movie.new( title: params["title"], overview: params["overview"], release_date: params["release_date"], image_url: params["image_url"], #(api_result["poster_path"] ? self.construct_image_url(api_result["poster_path"]) : nil), external_id: params["external_id"]) + + if movie.save + render json: movie.as_json, status: :ok + + else + render json: {"errors": {"movie": movie.errors.messages}}, status: :bad_request + end + end def show