Module: Spree::Api::V2::ResourceControllerDecorator

Defined in:
app/controllers/spree/api/v2/resource_controller_decorator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



5
6
7
8
9
10
11
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 5

def self.prepended(base)
  base.include SpreeCmCommissioner::WaitingRoomAuthorization

  base.before_action :required_schema_validation!
  base.rescue_from SpreeCmCommissioner::SchemaValidationError, with: :rescue_schema_validation_error
  base.attr_reader :schema
end

Instance Method Details

#app_nameObject



17
18
19
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 17

def app_name
  request.headers['X-Cm-App-Name']
end

#app_versionObject



13
14
15
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 13

def app_version
  request.headers['X-Cm-App-Version']
end

#required_schemaObject



30
31
32
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 30

def required_schema
  nil
end

#required_schema_validation!Object



21
22
23
24
25
26
27
28
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 21

def required_schema_validation!
  return true if required_schema.nil?

  schema = required_schema.new(request: request)
  return true if schema.success?

  raise SpreeCmCommissioner::SchemaValidationError, schema.error_message
end

#rescue_schema_validation_error(exc) ⇒ Object



34
35
36
# File 'app/controllers/spree/api/v2/resource_controller_decorator.rb', line 34

def rescue_schema_validation_error(exc)
  render_error_payload(exc.message, 422)
end