63 lines
1.5 KiB
Ruby
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 }
|