endpoint_base 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +1 -2
- data/Rakefile +18 -1
- data/app/views/application/500.json.jbuilder +2 -0
- data/app/views/application/response.json.jbuilder +21 -0
- data/endpoint_base.gemspec +17 -6
- data/lib/endpoint_base.rb +29 -8
- data/lib/endpoint_base/concerns.rb +7 -0
- data/lib/endpoint_base/concerns/all.rb +15 -0
- data/lib/endpoint_base/concerns/exception_handler.rb +26 -0
- data/lib/endpoint_base/concerns/param_processor.rb +54 -0
- data/lib/endpoint_base/concerns/rails_responder.rb +20 -0
- data/lib/endpoint_base/concerns/response_dsl.rb +44 -0
- data/lib/endpoint_base/concerns/sinatra_responder.rb +38 -0
- data/lib/endpoint_base/concerns/token_authorization.rb +28 -0
- data/lib/endpoint_base/rails.rb +1 -0
- data/lib/endpoint_base/rails/engine.rb +5 -0
- data/lib/endpoint_base/sinatra.rb +2 -0
- data/lib/endpoint_base/sinatra/base.rb +11 -0
- data/lib/endpoint_base/sinatra/integrator_utils.rb +17 -0
- data/spec/rails/controllers/failing_controller_spec.rb +29 -0
- data/spec/rails/controllers/happy_controller_spec.rb +35 -0
- data/spec/rails/dummy/.gitignore +16 -0
- data/spec/rails/dummy/Gemfile +46 -0
- data/spec/rails/dummy/README.rdoc +28 -0
- data/spec/rails/dummy/Rakefile +6 -0
- data/spec/rails/dummy/app/assets/images/.keep +0 -0
- data/spec/rails/dummy/app/assets/javascripts/application.js +16 -0
- data/spec/rails/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/rails/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/rails/dummy/app/controllers/concerns/.keep +0 -0
- data/spec/rails/dummy/app/controllers/failing_controller.rb +7 -0
- data/spec/rails/dummy/app/controllers/happy_controller.rb +13 -0
- data/spec/rails/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/rails/dummy/app/mailers/.keep +0 -0
- data/spec/rails/dummy/app/models/.keep +0 -0
- data/spec/rails/dummy/app/models/concerns/.keep +0 -0
- data/spec/rails/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/rails/dummy/bin/bundle +3 -0
- data/spec/rails/dummy/bin/rails +4 -0
- data/spec/rails/dummy/bin/rake +4 -0
- data/spec/rails/dummy/config.ru +4 -0
- data/spec/rails/dummy/config/application.rb +28 -0
- data/spec/rails/dummy/config/boot.rb +4 -0
- data/spec/rails/dummy/config/database.yml +25 -0
- data/spec/rails/dummy/config/environment.rb +5 -0
- data/spec/rails/dummy/config/environments/development.rb +29 -0
- data/spec/rails/dummy/config/environments/production.rb +80 -0
- data/spec/rails/dummy/config/environments/test.rb +36 -0
- data/spec/rails/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/rails/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/rails/dummy/config/initializers/inflections.rb +16 -0
- data/spec/rails/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/rails/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/rails/dummy/config/initializers/session_store.rb +3 -0
- data/spec/rails/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/rails/dummy/config/locales/en.yml +23 -0
- data/spec/rails/dummy/config/routes.rb +4 -0
- data/spec/rails/dummy/db/seeds.rb +7 -0
- data/spec/rails/dummy/lib/assets/.keep +0 -0
- data/spec/rails/dummy/lib/tasks/.keep +0 -0
- data/spec/rails/dummy/log/.keep +0 -0
- data/spec/rails/dummy/public/404.html +58 -0
- data/spec/rails/dummy/public/422.html +58 -0
- data/spec/rails/dummy/public/500.html +57 -0
- data/spec/rails/dummy/public/favicon.ico +0 -0
- data/spec/rails/dummy/public/robots.txt +5 -0
- data/spec/rails/dummy/vendor/assets/javascripts/.keep +0 -0
- data/spec/rails/dummy/vendor/assets/stylesheets/.keep +0 -0
- data/spec/rails/spec_helper.rb +13 -0
- data/spec/rails/support/controllers.rb +17 -0
- data/spec/sinatra/endpoint_base_spec.rb +55 -0
- data/spec/sinatra/spec_helper.rb +55 -0
- data/spec/spec_helper.rb +3 -32
- metadata +217 -18
- data/lib/cross_origin.rb +0 -49
- data/lib/integrator_utils.rb +0 -58
- data/spec/cross_origin_spec.rb +0 -20
- data/spec/integrator_utils_spec.rb +0 -52
data/spec/cross_origin_spec.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Sinatra
|
4
|
-
describe CrossOrigin do
|
5
|
-
let(:payload) { {:payload => {} }.to_json }
|
6
|
-
let(:headers) { {'HTTP_X_AUGURY_TOKEN' => 'x123', "CONTENT_TYPE" => "application/json", 'HTTP_ORIGIN' => 'http://spreecommerce.com'} }
|
7
|
-
|
8
|
-
it "should include CORS headers when ORIGIN is specified" do
|
9
|
-
post '/', payload, headers
|
10
|
-
last_response.headers['Access-Control-Allow-Origin'].should == 'http://spreecommerce.com'
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should not include CORS headers when ORIGIN is not specified" do
|
14
|
-
headers.delete('HTTP_ORIGIN')
|
15
|
-
post '/', payload, headers
|
16
|
-
last_response.headers['Access-Control-Allow-Origin'].should be_nil
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Sinatra
|
4
|
-
describe IntegratorUtils do
|
5
|
-
let(:payload) { {:payload => {} }.to_json }
|
6
|
-
let(:headers) { {'HTTP_X_AUGURY_TOKEN' => 'x123', "CONTENT_TYPE" => "application/json"} }
|
7
|
-
|
8
|
-
it "should reject request without auth" do
|
9
|
-
post '/', payload
|
10
|
-
last_response.status.should == 401
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should accept POST with auth" do
|
14
|
-
post '/', payload, headers
|
15
|
-
last_response.status.should == 200
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should redirect to endpoint.json for GET on root url" do
|
19
|
-
get '/', nil, {}
|
20
|
-
last_response.status.should == 302
|
21
|
-
last_response.location.should == 'http://example.org/endpoint.json'
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'returns a 200 for /auth check' do
|
25
|
-
get '/auth', {}, headers
|
26
|
-
last_response.status.should == 200
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should parse valid json from body" do
|
30
|
-
post '/', {payload: {}, test: [{"west" => 1}, {"south" => false}]}.to_json, headers
|
31
|
-
msg = ::JSON.parse(last_response.body)
|
32
|
-
msg['test'].size.should == 2
|
33
|
-
msg['test'].first['west'].should == 1
|
34
|
-
msg['test'].last[:south].should be_false
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return 406 if body is not valid json" do
|
38
|
-
post '/', 'notjson', headers
|
39
|
-
last_response.status.should == 406
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should find parameters" do
|
43
|
-
body = { 'payload' => { 'parameters' => [{'name' => 'x', 'value' => 1}, {'name' => '2', 'value' => 3}] } }.to_json
|
44
|
-
post '/config', body, headers
|
45
|
-
|
46
|
-
response = ::JSON.parse(last_response.body)
|
47
|
-
response['x'].should == 1
|
48
|
-
response['2'].should == 3
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
end
|