endpoint_base 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|