Skip to content

Instantly share code, notes, and snippets.

@adjohu
Created January 12, 2012 20:26
Show Gist options
  • Save adjohu/1602900 to your computer and use it in GitHub Desktop.
Save adjohu/1602900 to your computer and use it in GitHub Desktop.
require 'sinatra/base'
require 'data_mapper'
require 'json'
DataMapper::Logger.new($stdout, :debug)
# A Sqlite3 connection to a persistent database
DataMapper.setup(:default, 'sqlite:///Users/adam/Programming/Web/ruby/sinatra/photos/photos.db')
class User
include DataMapper::Resource
has n, :galleries
property :id, Serial
property :username, String
property :email, String
property :created_at, DateTime
end
class Gallery
include DataMapper::Resource
belongs_to :user
property :id, Serial
property :name, String
end
DataMapper.finalize
#DataMapper.auto_migrate!
class UserRouter< Sinatra::Base
# Get user
get %r{/(\d{1,})} do
user = User.get(params[:captures].first)
content_type :json
user.to_json
end
# Add user
post "/" do
@user = User.create(
:username => params[:username],
:email => params[:email],
:created_at => Time.now
)
end
# Modify user
put %r{/(\d{1,})} do
"modify"
end
# Delete user
delete %r{/(\d{1,})} do
"delete #{params[:captures].first}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment