Commit 143465a

mo khan <mo.khan@gmail.com>
2020-12-22 00:07:11
feat: use rack request object to parse query
1 parent 70e23f1
Changed files (2)
lib
test
integration
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
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