summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-11-21 15:17:45 -0700
committermo khan <mo.khan@gmail.com>2020-11-21 15:17:45 -0700
commit67e9ec15258258291610d8933a1c801151f56e69 (patch)
tree068d0fdd5dc68a544d809e5018066d887e58e30e
parent3ada0a4e55b56002a2492cf893034f074347a923 (diff)
refactor: pass request body io as parameter to put
-rw-r--r--server-rack.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/server-rack.rb b/server-rack.rb
index 3d4642b..9c768e5 100644
--- a/server-rack.rb
+++ b/server-rack.rb
@@ -30,8 +30,8 @@ class DataStorageServer
end
end
- def put(env)
- data = env['rack.input'].read(MAX_BYTES)
+ def put(io)
+ data = io.read(MAX_BYTES)
oid = Digest::SHA1.hexdigest(data)
@storage[oid] = data
['201', {}, [JSON.generate({ size: data.size, oid: oid })]]
@@ -48,14 +48,13 @@ class DataStorageServer
end
def call(env)
- path = env['PATH_INFO']
case env['REQUEST_METHOD']
when 'GET'
- get(path)
+ get(env['PATH_INFO'])
when 'PUT'
- put(env)
+ put(env['rack.input'])
when 'DELETE'
- destroy(path)
+ destroy(env['PATH_INFO'])
else
raise env.inspect
end