diff --git a/app/controllers/videos_controller.rb b/app/controllers/videos_controller.rb index c9a2bb08..7f0a63f9 100644 --- a/app/controllers/videos_controller.rb +++ b/app/controllers/videos_controller.rb @@ -21,8 +21,28 @@ def show ) end + def create + + video = Video.new(video_params.merge({inventory: 5})) + if video.save + render json: video.as_json(only: + [:id, :title, :overview, :release_date, :image_url, :external_id, :inventory]), + status: :created + else + render json: { + errors: video.errors.messages + }, status: :bad_request + return + end + end + + private + def video_params + return params.permit(:external_id, :title, :release_date, :image_url, :overview) + end + def require_video @video = Video.find_by(title: params[:title]) unless @video diff --git a/config/routes.rb b/config/routes.rb index 16fc2214..b055ddf9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,12 +3,11 @@ resources :customers, only: [:index] - resources :videos, only: [:index, :show], param: :title + resources :videos, 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" get "/rentals/overdue", to: "rentals#overdue", as: "overdue" - root 'videos#index' end