require 'sinatra/base' require 'sinatra/namespace' require 'sinatra/activerecord' class MoodApp < Sinatra::Base register Sinatra::ActiveRecordExtension register Sinatra::Namespace set :database, { adapter: 'sqlite3', database: 'mood.sqlite3' } get '/' do @last_mood = Mood.order(recorded_at: :desc).first erb :index end namespace '/api/v1' do before do content_type 'application/json' end post '/moods' do json = request.body.read puts json data = JSON.parse json Mood.create(mode: data['mode'], recorded_at: Time.now) end end run! if app_file == $0 end class Mood < ActiveRecord::Base validates_presence_of :mode validates_presence_of :recorded_at end