@@ -8,8 +8,6 @@ module ActsAsResourceController
88 def self . included ( base )
99 base . extend ClassMethods
1010 base . include Callbacks
11- base . before_action :ensure_correct_media_type , only : [ :create , :update , :create_relationship , :update_relationship ]
12- base . before_action :ensure_valid_accept_media_type
1311 base . cattr_reader :server_error_callbacks
1412 base . define_jsonapi_resources_callbacks :process_operations
1513 end
@@ -27,18 +25,22 @@ def show_relationship
2725 end
2826
2927 def create
28+ return unless verify_content_type_header
3029 process_request
3130 end
3231
3332 def create_relationship
33+ return unless verify_content_type_header
3434 process_request
3535 end
3636
3737 def update_relationship
38+ return unless verify_content_type_header
3839 process_request
3940 end
4041
4142 def update
43+ return unless verify_content_type_header
4244 process_request
4345 end
4446
@@ -59,6 +61,8 @@ def get_related_resources
5961 end
6062
6163 def process_request
64+ return unless verify_accept_header
65+
6266 @request = JSONAPI ::RequestParser . new ( params , context : context ,
6367 key_formatter : key_formatter ,
6468 server_error_callbacks : ( self . class . server_error_callbacks || [ ] ) )
@@ -134,20 +138,24 @@ def resource_klass_name
134138 @resource_klass_name ||= "#{ self . class . name . underscore . sub ( /_controller$/ , '' ) . singularize } _resource" . camelize
135139 end
136140
137- def ensure_correct_media_type
141+ def verify_content_type_header
138142 unless request . content_type == JSONAPI ::MEDIA_TYPE
139143 fail JSONAPI ::Exceptions ::UnsupportedMediaTypeError . new ( request . content_type )
140144 end
145+ true
141146 rescue => e
142147 handle_exceptions ( e )
148+ false
143149 end
144150
145- def ensure_valid_accept_media_type
151+ def verify_accept_header
146152 unless valid_accept_media_type?
147153 fail JSONAPI ::Exceptions ::NotAcceptableError . new ( request . accept )
148154 end
155+ true
149156 rescue => e
150157 handle_exceptions ( e )
158+ false
151159 end
152160
153161 def valid_accept_media_type?
0 commit comments