diff --git a/app/controllers/customers_controller.rb b/app/controllers/customers_controller.rb index f4dc350d..72a5470c 100644 --- a/app/controllers/customers_controller.rb +++ b/app/controllers/customers_controller.rb @@ -7,10 +7,10 @@ def index if @sort data = Customer.all.order(@sort) else - data = Customer.all + data = Customer.all.order('name') end - data = data.paginate(page: params[:p], per_page: params[:n]) + # data = data.paginate(page: params[:p], per_page: params[:n]) render json: data.as_json( only: [:id, :name, :registered_at, :address, :city, :state, :postal_code, :phone, :account_credit], diff --git a/app/controllers/videos_controller.rb b/app/controllers/videos_controller.rb index c9a2bb08..29fc68f9 100644 --- a/app/controllers/videos_controller.rb +++ b/app/controllers/videos_controller.rb @@ -5,7 +5,7 @@ def index if params[:query] data = VideoWrapper.search(params[:query]) else - data = Video.all + data = Video.all.order('title') end render status: :ok, json: data @@ -21,6 +21,20 @@ def show ) end + def create + video = Video.new(video_params) + + if video.save + render json: video.as_json(only: [:title, :overview, :release_date, :inventory]), status: :created + return + else + render json: { + errors: video.errors.messages + }, status: :bad_request + return + end + end + private def require_video @@ -29,4 +43,15 @@ def require_video render status: :not_found, json: { errors: { title: ["No video with title #{params["title"]}"] } } end end + + def video_params + return params.permit( + :external_id, + :title, + :overview, + :release_date, + :inventory, + :image_url + ) + end end diff --git a/config/routes.rb b/config/routes.rb index 16fc2214..9d9f11cf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,14 +1,11 @@ Rails.application.routes.draw do - # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html - 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