Create Api::BaseController to allow use of ActiveModelSerializers

Also add index action to Api::CustomersController
This commit is contained in:
Rob Harrington
2018-04-27 16:04:58 +10:00
parent 29922d4be9
commit ffa8a8c7d6
7 changed files with 64 additions and 9 deletions

View File

@@ -0,0 +1,13 @@
# Base controller for OFN's API
# Includes the minimum machinery required by ActiveModelSerializers
module Api
class BaseController < Spree::Api::BaseController
# Need to include these because Spree::Api::BaseContoller inherits
# from ActionController::Metal rather than ActionController::Base
# and they are required by ActiveModelSerializers
include ActionController::Serialization
include ActionController::UrlFor
include Rails.application.routes.url_helpers
use_renderers :json
end
end

View File

@@ -1,13 +1,16 @@
module Api
class CustomersController < Spree::Api::BaseController
respond_to :json
class CustomersController < BaseController
def index
@customers = current_api_user.customers
render json: @customers, each_serializer: CustomerSerializer
end
def update
@customer = Customer.find(params[:id])
authorize! :update, @customer
if @customer.update_attributes(params[:customer])
render text: @customer.id, :status => 200
render json: @customer, serializer: CustomerSerializer, status: 200
else
invalid_resource!(@customer)
end

View File

@@ -1,5 +1,5 @@
module Api
class StatusesController < BaseController
class StatusesController < ::BaseController
respond_to :json
def job_queue