summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/server.rb15
-rw-r--r--test/integration/server_test.rb12
2 files changed, 14 insertions, 13 deletions
diff --git a/lib/server.rb b/lib/server.rb
index 600dce5..2c8d318 100644
--- a/lib/server.rb
+++ b/lib/server.rb
@@ -19,12 +19,21 @@ end
class Server
def call(env)
- query = '{ me }'
-
+ result = execute(query_for(Rack::Request.new(env)))
[
200,
{ 'Content-Type' => 'application/graphql' },
- [MySchema.execute(query).to_json]
+ [ result.to_json ]
]
end
+
+ private
+
+ def execute(query)
+ MySchema.execute(query)
+ end
+
+ def query_for(request)
+ request.post? ? request.body.read : request.params['query']
+ end
end
diff --git a/test/integration/server_test.rb b/test/integration/server_test.rb
index 20d870e..5bc7089 100644
--- a/test/integration/server_test.rb
+++ b/test/integration/server_test.rb
@@ -5,17 +5,9 @@ class ServerTest < Minitest::Test
Server.new
end
- def test_get
- skip "for now"
- get '/'
-
- assert_equal 200, last_response.status
- assert_empty last_response.body
- end
-
def test_get_graphql_with_query_string
header 'Content-Type', 'application/graphql'
- get '/graphql', query: '{me}'
+ get '/', query: '{me}'
assert last_response.ok?
assert_equal 200, last_response.status
@@ -27,7 +19,7 @@ class ServerTest < Minitest::Test
def test_get_graphql_with_post_body
header 'Content-Type', 'application/graphql'
- post '/graphql', '{me}'
+ post '/', '{me}'
assert last_response.ok?
assert_equal 200, last_response.status