Skip to content

Instantly share code, notes, and snippets.

@cheald
Created July 6, 2012 20:22
Show Gist options
  • Save cheald/3062572 to your computer and use it in GitHub Desktop.
Save cheald/3062572 to your computer and use it in GitHub Desktop.
require 'sinatra'
require 'redis'
require 'json'
set :redis, Redis.new(:db => 3)
before { content_type :json }
get "/foos" do
keys = options.redis.keys("foo:*")
foos = options.redis.multi do
keys.map {|k| options.redis.hgetall k }
end
foos.to_json
end
post "/foos" do
id = options.redis.incr "foo_counter"
options.redis.hmset "foo:#{id}", *params[:foo].merge(id: id).to_a.flatten
{result: "success"}.to_json
end
get "/foos/:id" do
options.redis.hgetall("foo:#{params[:id]}").to_json
end
post "/foos/:id" do
record = options.redis.hgetall("foo:#{params[:id]}")
record.merge! params[:foo]
options.redis.hmset "foo:#{params[:id]}", *params[:foo].to_a.flatten
{result: "success"}.to_json
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment