1 2 3 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# frozen_string_literal: true
require 'grape/util/lazy_object'
module Grape
module Http
module Headers
# https://github.com/rack/rack/blob/master/lib/rack.rb
HTTP_VERSION = 'HTTP_VERSION'
PATH_INFO = 'PATH_INFO'
REQUEST_METHOD = 'REQUEST_METHOD'
QUERY_STRING = 'QUERY_STRING'
CONTENT_TYPE = 'Content-Type'
GET = 'GET'
POST = 'POST'
PUT = 'PUT'
PATCH = 'PATCH'
DELETE = 'DELETE'
HEAD = 'HEAD'
OPTIONS = 'OPTIONS'
SUPPORTED_METHODS = [GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS].freeze
SUPPORTED_METHODS_WITHOUT_OPTIONS = Grape::Util::LazyObject.new { [GET, POST, PUT, PATCH, DELETE, HEAD].freeze }
HTTP_ACCEPT_VERSION = 'HTTP_ACCEPT_VERSION'
X_CASCADE = 'X-Cascade'
HTTP_TRANSFER_ENCODING = 'HTTP_TRANSFER_ENCODING'
HTTP_ACCEPT = 'HTTP_ACCEPT'
FORMAT = 'format'
HTTP_HEADERS = Grape::Util::LazyObject.new do
common_http_headers = %w[
Version
Host
Connection
Cache-Control
Dnt
Upgrade-Insecure-Requests
User-Agent
Sec-Fetch-Dest
Accept
Sec-Fetch-Site
Sec-Fetch-Mode
Sec-Fetch-User
Accept-Encoding
Accept-Language
Cookie
].freeze
common_http_headers.each_with_object({}) do |header, response|
response["HTTP_#{header.upcase.tr('-', '_')}"] = header
end.freeze
end
def self.find_supported_method(route_method)
Grape::Http::Headers::SUPPORTED_METHODS.detect { |supported_method| supported_method.casecmp(route_method).zero? }
end
end
end
end
|