Module: JSONAPIonify::Api::Resource::Definitions::RequestHeaders
- Defined in:
- lib/jsonapionify/api/resource/definitions/request_headers.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.extended(klass) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/jsonapionify/api/resource/definitions/request_headers.rb', line 4 def self.extended(klass) klass.class_eval do extend JSONAPIonify::InheritedAttributes inherited_hash_attribute :request_header_definitions # Define context context(:request_headers, persisted: true, readonly: true) do |request:| request.headers end # Validate headers before request before do |request_headers:, action_name:, nested_request: false| # Gather Definitions defined_headers = self.class.request_header_definitions.select do |_, v| v.actions.blank? || v.actions.include?(action_name) end # Gather required Headers required_headers = defined_headers.select do |_, v| v.required end # Gather Missing Keys missing_keys = required_headers.keys.map(&:downcase) - request_headers.keys.map(&:downcase) error :headers_missing, missing_keys if !nested_request && missing_keys.present? end end end |
Instance Method Details
#request_header(name, **options) ⇒ Object
33 34 35 |
# File 'lib/jsonapionify/api/resource/definitions/request_headers.rb', line 33 def request_header(name, **) request_header_definitions[name] = HeaderOptions.new(name, **) end |