require 'rubygems' require 'sinatra' require 'sinatra/json' require 'uri' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :database => 'contacts.sqlite' ) class Contact < ActiveRecord::Base end get '/contacts' do @contacts = Contact.all @response_message = {data: @contacts, success: true, status: 200} json @response_message end get '/contacts/:name' do @name = params['name'] @contact = Contact.where(name: @name).first @response_message = {data: [@contact], success: true, status: 200} json @response_message end post '/contacts/new' do @data = JSON.parse(request.body.read)['data'] puts @data.inspect if @data['name'] and @data['link'] then @contact = Contact.new(name: @data['name'], link: @data['link']) @contact.save end @response_message = { "message": "Kontakt #{@data['name']} erstellt." } json @response_message end delete '/contacts/:id' do @id = params['id'] @contact = Contact.find_by_id(@id) if @contact then Contact.delete(@contact.id) @response_message = { "message": "Kontakt id = #{@contact.id} gelöscht." } else @response_message = { "message": "Kontakt id = #{@contact.id} nicht gefunden." } end json @response_message end options '/' do # Aktuell unterstützte HTTP Verben response.headers["Allow"] = "HEAD,GET,POST,DELETE,OPTIONS" 204 end