Module: JSONAPI::ActsAsResourceController

Included in:
ResourceController
Defined in:
lib/jsonapi/acts_as_resource_controller.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



6
7
8
9
10
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 6

def self.included(base)
  base.extend ClassMethods
  base.before_action :ensure_correct_media_type, only: [:create, :update, :create_relationship, :update_relationship]
  base.cattr_reader :server_error_callbacks
end

Instance Method Details

#createObject



24
25
26
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 24

def create
  process_request
end

#create_operations_processorObject

set the operations processor in the configuration or override this to use another operations processor



76
77
78
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 76

def create_operations_processor
  JSONAPI.configuration.operations_processor.new
end

#create_relationshipObject



28
29
30
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 28

def create_relationship
  process_request
end

#destroyObject



40
41
42
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 40

def destroy
  process_request
end

#destroy_relationshipObject



44
45
46
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 44

def destroy_relationship
  process_request
end


48
49
50
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 48

def get_related_resource
  process_request
end


52
53
54
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 52

def get_related_resources
  process_request
end

#indexObject



12
13
14
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 12

def index
  process_request
end

#process_requestObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 56

def process_request
  @request = JSONAPI::Request.new(params, context: context,
                                  key_formatter: key_formatter,
                                  server_error_callbacks: (self.class.server_error_callbacks || []))
  unless @request.errors.empty?
    render_errors(@request.errors)
  else
    operation_results = create_operations_processor.process(@request)
    render_results(operation_results)
  end

rescue => e
  handle_exceptions(e)
ensure
  if response.body.size > 0
    response.headers['Content-Type'] = JSONAPI::MEDIA_TYPE
  end
end

#showObject



16
17
18
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 16

def show
  process_request
end

#show_relationshipObject



20
21
22
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 20

def show_relationship
  process_request
end

#updateObject



36
37
38
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 36

def update
  process_request
end

#update_relationshipObject



32
33
34
# File 'lib/jsonapi/acts_as_resource_controller.rb', line 32

def update_relationship
  process_request
end