From 7ebbed0ac1ba5dd8bcbcc2bbf26f0d4eba66f7b0 Mon Sep 17 00:00:00 2001 From: mo khan Date: Sat, 21 Nov 2020 15:35:17 -0700 Subject: docs: add doc for PUT and DELETE actions --- server-rack.rb | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'server-rack.rb') diff --git a/server-rack.rb b/server-rack.rb index 9c768e5..d68d867 100644 --- a/server-rack.rb +++ b/server-rack.rb @@ -1,13 +1,14 @@ #!/usr/bin/env ruby # Usage: # -# $ ruby rack-server.rb +# $ ./script/server require 'digest/sha1' require 'rack' require 'json' class DataStorageServer MAX_BYTES=1024 + # You may initialize any variables you want to use across requests here def initialize @storage = {} @@ -30,6 +31,20 @@ class DataStorageServer end end + # Upload an Object + # + # Request + # PUT /data/{repository} + # + # my data + # + # Response + # + # Status: 201 Created + # {size, oid} + # Blobs can have a max size of 1024 bytes. + # If a blob exceeds this size then the blob is truncated + # and the first 1024 bytes are stored. def put(io) data = io.read(MAX_BYTES) oid = Digest::SHA1.hexdigest(data) @@ -37,6 +52,16 @@ class DataStorageServer ['201', {}, [JSON.generate({ size: data.size, oid: oid })]] end + # Delete an Object + # + # Request + # DELETE /data/{repository}/{oid} + # + # Response + # + # Status: 200 OK + # If the object identifer is unknown + # then a 404 status code is returned. def destroy(path) oid = id_from(path) if @storage.key?(oid) -- cgit v1.2.3