Sha256: 942d0f3fa51c05d902f58293e1ade981b12509c77fcf49a54d3be8536ecff5e5
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
module JSONAPIonify::Api module Resource::Definitions::RequestHeaders def self.extended(klass) klass.class_eval do extend JSONAPIonify::InheritedAttributes inherited_hash_attribute :request_header_definitions context(:request_headers) do |context| should_error = false # Check for validity headers = self.class.request_header_definitions.select do |_, v| v.actions.blank? || v.actions.include?(action_name) end required_headers = headers.select do |_, v| v.required end if (missing_keys = required_headers.keys.map(&:downcase) - context.request.headers.keys.map(&:downcase)).present? should_error = true error :headers_missing, missing_keys end raise Errors::RequestError if should_error context.request.headers end end end def request_header(name, **options) request_header_definitions[name] = HeaderOptions.new(name, **options) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jsonapionify-0.9.0 | lib/jsonapionify/api/resource/definitions/request_headers.rb |