Files
old-ribica/front-api/app.rb
2016-01-07 13:28:57 +01:00

63 lines
1.5 KiB
Ruby

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 = RibicaConfig::TRELLO_DEVELOPER_PUBLIC_KEY
# Member token
# larry-price.com/blog/2014/03/18/connecting-to-the-trello-api/
config.member_token = RibicaConfig::TRELLO_MEMBER_TOKEN
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'
unless Helper::do_not_parse_as_json.include? env['PATH_INFO']
request.body.rewind
json_string = request.body.read
@json_params = JSON.parse json_string if json_string.length > 1
end
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 }