Browse Source

first commit

master
Jörg Thalheim 6 years ago
commit
cf35af7110
  1. 7
      Gemfile
  2. 33
      Gemfile.lock
  3. 15
      Rakefile
  4. 33
      app.rb
  5. 9
      migrations/1_init_db.rb

7
Gemfile

@ -0,0 +1,7 @@
# A sample Gemfile
source "https://rubygems.org"
gem "sinatra"
gem "sinatra-contrib"
gem "sequel"
gem "sqlite3"

33
Gemfile.lock

@ -0,0 +1,33 @@
GEM
remote: https://rubygems.org/
specs:
backports (3.6.4)
multi_json (1.10.1)
rack (1.6.0)
rack-protection (1.5.3)
rack
rack-test (0.6.3)
rack (>= 1.0)
sequel (4.18.0)
sinatra (1.4.5)
rack (~> 1.4)
rack-protection (~> 1.4)
tilt (~> 1.3, >= 1.3.4)
sinatra-contrib (1.4.2)
backports (>= 2.0)
multi_json
rack-protection
rack-test
sinatra (~> 1.4.0)
tilt (~> 1.3)
sqlite3 (1.3.10)
tilt (1.4.1)
PLATFORMS
ruby
DEPENDENCIES
sequel
sinatra
sinatra-contrib
sqlite3

15
Rakefile

@ -0,0 +1,15 @@
namespace :db do
require 'sequel'
Sequel.extension :migration
task :migrate do
m = Sequel::Migrator
db = Sequel.connect(ENV['DATABASE_URL'] || 'sqlite://library.sqlite')
dir = "migrations"
target = ENV['TARGET'] ? ENV['TARGET'].to_i : nil
current = ENV['CURRENT'] ? ENV['CURRENT'].to_i : nil
m.run(db, dir, target: target, current: current)
end
end

33
app.rb

@ -0,0 +1,33 @@
require "sinatra"
require "sinatra/json"
require "sequel"
NODES = {}
Sequel.connect(ENV["DATABASE_URL"] || "sqlite://meet4eat.db")
class Node < Sequel::Model
def to_json(options={})
{
id: name,
room: room
}.to_json
end
end
get '/nodes' do
json({ nodes: Node.all })
end
put '/nodes/:id' do
node = Node.where(name: params[:id]).first
node ||= Node.new(name: params[:id])
node.room = params[:room] || "default"
node.save
json("")
end
delete '/nodes/:id' do
Node.where(name: params[:id]).delete
json("")
end

9
migrations/1_init_db.rb

@ -0,0 +1,9 @@
Sequel.migration do
change do
create_table(:nodes) do
primary_key :id
String :room, null: false
String :name, null: false
end
end
end
Loading…
Cancel
Save