debian-mirror-gitlab/debian/gems-compat/apollo-upload-server-2.0.0.beta.3/lib/apollo_upload_server/middleware.rb
2019-08-03 11:04:32 +05:30

23 lines
574 B
Ruby

require 'apollo_upload_server/graphql_data_builder'
module ApolloUploadServer
class Middleware
def initialize(app)
@app = app
end
def call(env)
request = ActionDispatch::Request.new(env)
params = request.params
if env['CONTENT_TYPE'].to_s.include?('multipart/form-data') && params['operations'].present? && params['map'].present?
result = GraphQLDataBuilder.new.call(request.params)
result&.each do |key, value|
request.update_param(key, value)
end
end
@app.call(env)
end
end
end