diff options
| author | mo khan <mo.khan@gmail.com> | 2020-12-21 17:07:11 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-12-21 17:07:11 -0700 |
| commit | 143465ae64450be1a171b4f80111d53bb268fbc5 (patch) | |
| tree | 8ce9347153695cf90cb12003e7cd50aa5ad6cfd7 | |
| parent | 70e23f16e4d8f5c53ef8b6fede98e4b8dd4bc218 (diff) | |
feat: use rack request object to parse query
| -rw-r--r-- | lib/server.rb | 15 | ||||
| -rw-r--r-- | test/integration/server_test.rb | 12 |
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 |
