require 'sinatra' require 'sinatra/activerecord' require './config' require './helpers' require 'json' require 'sinatra/cookies' require 'elasticsearch' require 'xxhash' require 'trello' require 'sendgrid-ruby' Trello.configure do |config| # API key generated by visiting https://trello.com/1/appKey/generate config.developer_public_key = "f13dd6c2dcc65f48b9a56c6d420e32e7" # Member token # larry-price.com/blog/2014/03/18/connecting-to-the-trello-api/ config.member_token = "e8e1885d794dbc4d9d8d1ae586a84e580be224b2737254de6064d7d7219f3064" end Dir[File.dirname(__FILE__) + '/models/*.rb'].each {|file| require file } set :bind, '0.0.0.0' before do content_type :json # TODO: before running to production change this so that only specific # domain is allowed headers 'Access-Control-Allow-Origin' => 'http://localhost:3001', 'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST','PUT'].join(','), 'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, Accept', 'Access-Control-Expose-Headers' => 'X-Total-Count', 'Access-Control-Allow-Credentials' => 'true' request.body.rewind json_string = request.body.read @json_params = JSON.parse json_string if json_string.length > 1 if request.request_method == 'OPTIONS' halt 200 end end helpers Sinatra::Cookies def xxhash(text) seed = 31337 XXhash.xxh32(text, seed) end Dir[File.dirname(__FILE__) + '/controllers/*.rb'].each {|file| require file }