restpack_core_service 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/db/migrate/{20130808135549_create_hosts.rb → 20130808135549_create_domains.rb} +4 -3
- data/lib/restpack_core_service/models/application.rb +1 -1
- data/lib/restpack_core_service/models/domain.rb +8 -3
- data/lib/restpack_core_service/serializers/application_serializer.rb +16 -0
- data/lib/restpack_core_service/serializers/domain_serializer.rb +13 -0
- data/lib/restpack_core_service/services/domain/by_identifier.rb +24 -0
- data/lib/restpack_core_service/services.rb +1 -0
- data/lib/restpack_core_service/version.rb +1 -1
- data/lib/restpack_core_service.rb +6 -2
- data/spec/factories/domain_factory.rb +2 -2
- data/spec/models/application_spec.rb +1 -1
- data/spec/models/domain_spec.rb +20 -1
- data/spec/services/domain/by_identifier_spec.rb +44 -0
- data/spec/spec_helper.rb +1 -1
- metadata +9 -11
- data/db/migrate/20130808135613_create_domains.rb +0 -10
- data/lib/restpack_core_service/models/host.rb +0 -17
- data/lib/restpack_core_service/serializers/user_serializer.rb +0 -11
- data/spec/factories/host_factory.rb +0 -6
- data/spec/models/host_spec.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52807d51108a48deef41bc8969a19bd5ff468554
|
4
|
+
data.tar.gz: a6f046e023180cd7d79ddf81dfe6345b55d28c1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4256c522beddff5e9bc2544cd5662ee4eed7c3d813dd519be24d7fdd9d0e361dc88beb5193cfd93390e13cea01c6dd503f68b193e3ba331da56aefb17979cc14
|
7
|
+
data.tar.gz: e362b39a88c302963f21ef1bf2e28fa1cc88ee7fff1a2bcc4adc3853f1ec1480c0d35737979cf19ff60387d067773205a249df7ca5f1ba921965189d80cfd87c
|
@@ -1,8 +1,9 @@
|
|
1
|
-
class
|
1
|
+
class CreateDomains < ActiveRecord::Migration
|
2
2
|
def change
|
3
|
-
create_table :
|
4
|
-
t.string :
|
3
|
+
create_table :restpack_domains do |t|
|
4
|
+
t.string :identifier, :null => false, :limit => 215
|
5
5
|
t.integer :application_id, :null => false
|
6
|
+
t.boolean :is_verified, :null => false, :default => false
|
6
7
|
t.string :session_secret, :null => false, :limit => 128
|
7
8
|
t.json :oauth_providers, :null => false
|
8
9
|
|
@@ -1,11 +1,16 @@
|
|
1
1
|
module RestPack::Core::Service::Models
|
2
2
|
class Domain < ActiveRecord::Base
|
3
3
|
self.table_name = :restpack_domains
|
4
|
-
attr_accessible :identifier, :
|
4
|
+
attr_accessible :identifier, :application_id, :is_verified, :session_secret, :oauth_providers
|
5
5
|
|
6
|
-
validates_presence_of :identifier
|
6
|
+
validates_presence_of :identifier, :application_id
|
7
7
|
validates :identifier, :length => { :maximum => 512 }
|
8
8
|
|
9
|
-
belongs_to :
|
9
|
+
belongs_to :application
|
10
|
+
|
11
|
+
before_save -> {
|
12
|
+
self.oauth_providers ||= {}
|
13
|
+
self.session_secret ||= SecureRandom.hex(16)
|
14
|
+
}
|
10
15
|
end
|
11
16
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RestPack::Core::Service::Serializers
|
2
|
+
class ApplicationSerializer
|
3
|
+
include RestPack::Serializer
|
4
|
+
|
5
|
+
self.model_class = RestPack::Core::Service::Models::Application
|
6
|
+
self.key = :applications
|
7
|
+
|
8
|
+
attributes :id
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
#TODO: GJ: remove once this has been addressed:
|
13
|
+
# https://github.com/RestPack/restpack_serializer/issues/41
|
14
|
+
class ApplicationSerializer < RestPack::Core::Service::Serializers::ApplicationSerializer
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module RestPack::Core::Service::Serializers
|
2
|
+
class DomainSerializer
|
3
|
+
include RestPack::Serializer
|
4
|
+
|
5
|
+
self.model_class = RestPack::Core::Service::Models::Domain
|
6
|
+
self.key = :domains
|
7
|
+
|
8
|
+
attributes :id, :identifier, :application_id, :is_verified, :session_secret,
|
9
|
+
:oauth_providers
|
10
|
+
|
11
|
+
can_include :application
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module RestPack::Core::Service::Commands::Domain
|
2
|
+
class ByIdentifier < RestPack::Service::Command
|
3
|
+
required do
|
4
|
+
string :identifier
|
5
|
+
end
|
6
|
+
|
7
|
+
optional do
|
8
|
+
string :includes
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
result = Core::Serializers::DomainSerializer.resource(
|
13
|
+
inputs,
|
14
|
+
Core::Models::Domain.where(identifier: inputs[:identifier])
|
15
|
+
)
|
16
|
+
|
17
|
+
if result[:domains].any?
|
18
|
+
result
|
19
|
+
else
|
20
|
+
status :not_found
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,19 +1,23 @@
|
|
1
1
|
require "active_record"
|
2
2
|
require "restpack_service"
|
3
|
+
require "restpack_serializer"
|
4
|
+
|
3
5
|
require "active_support/core_ext"
|
4
6
|
|
5
7
|
require "restpack_core_service/version"
|
6
8
|
require "restpack_core_service/configuration"
|
7
9
|
|
8
10
|
require "restpack_core_service/models/application"
|
9
|
-
require "restpack_core_service/models/host"
|
10
11
|
require "restpack_core_service/models/domain"
|
11
12
|
|
13
|
+
require "restpack_core_service/serializers/application_serializer"
|
14
|
+
require "restpack_core_service/serializers/domain_serializer"
|
15
|
+
|
12
16
|
require "restpack_core_service/services"
|
13
17
|
require "restpack_core_service/tasks"
|
14
18
|
|
15
19
|
module Core
|
16
20
|
Models = RestPack::Core::Service::Models
|
17
21
|
Commands = RestPack::Core::Service::Commands
|
18
|
-
|
22
|
+
Serializers = RestPack::Core::Service::Serializers
|
19
23
|
end
|
@@ -2,7 +2,7 @@ describe RestPack::Core::Service::Models::Application do
|
|
2
2
|
it { should validate_presence_of(:name) }
|
3
3
|
it { should validate_presence_of(:account_id) }
|
4
4
|
it { should ensure_length_of(:name).is_at_most(256) }
|
5
|
-
it { should have_many(:
|
5
|
+
it { should have_many(:domains) }
|
6
6
|
it { subject.class.table_name.should == 'restpack_applications' }
|
7
7
|
|
8
8
|
context "default values" do
|
data/spec/models/domain_spec.rb
CHANGED
@@ -1,6 +1,25 @@
|
|
1
1
|
describe RestPack::Core::Service::Models::Domain do
|
2
2
|
it { should validate_presence_of(:identifier) }
|
3
|
+
it { should validate_presence_of(:application_id) }
|
3
4
|
it { should ensure_length_of(:identifier).is_at_most(512) }
|
4
|
-
it { should belong_to(:
|
5
|
+
it { should belong_to(:application) }
|
5
6
|
it { subject.class.table_name.should == 'restpack_domains' }
|
7
|
+
|
8
|
+
context "default values" do
|
9
|
+
it "has a random session_secret" do
|
10
|
+
domain1 = create(:domain)
|
11
|
+
domain2 = create(:domain)
|
12
|
+
|
13
|
+
domain1.session_secret.should_not == nil
|
14
|
+
domain1.session_secret.should_not == domain2.session_secret
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has empty oauth_providers as default" do
|
18
|
+
create(:domain).oauth_providers.should == {}
|
19
|
+
end
|
20
|
+
|
21
|
+
it "is not verified" do
|
22
|
+
create(:domain).is_verified.should == false
|
23
|
+
end
|
24
|
+
end
|
6
25
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Core::Commands::Domain::ByIdentifier do
|
4
|
+
is_required :identifier
|
5
|
+
is_optional :includes
|
6
|
+
|
7
|
+
let(:response) { subject.class.run(params) }
|
8
|
+
|
9
|
+
before do
|
10
|
+
@domain = create(:domain)
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'with valid params' do
|
14
|
+
let(:params) { {
|
15
|
+
identifier: @domain.identifier,
|
16
|
+
includes: 'application'
|
17
|
+
} }
|
18
|
+
|
19
|
+
it 'is valid' do
|
20
|
+
response.success?.should == true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'includes identifier' do
|
24
|
+
response.result[:domains].length.should == 1
|
25
|
+
response.result[:domains].first[:identifier].should == @domain.identifier
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'includes related application' do
|
29
|
+
response.result[:applications].length.should == 1
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'with invalid :identifier' do
|
34
|
+
let(:params) { {
|
35
|
+
identifier: 'invalid'
|
36
|
+
}}
|
37
|
+
|
38
|
+
it 'is :not_found' do
|
39
|
+
response.success?.should == false
|
40
|
+
response.result.should == {}
|
41
|
+
response.status.should == :not_found
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ require 'restpack_core_service'
|
|
4
4
|
config = YAML.load_file('./config/database.yml')
|
5
5
|
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'] || config['test'])
|
6
6
|
|
7
|
-
migrations_path = File.dirname(__FILE__) + "/../db/
|
7
|
+
migrations_path = File.dirname(__FILE__) + "/../db/migrate"
|
8
8
|
migrator = ActiveRecord::Migrator.new(:up, migrations_path)
|
9
9
|
migrator.migrate
|
10
10
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restpack_core_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Joyce
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: restpack_service
|
@@ -193,16 +193,16 @@ files:
|
|
193
193
|
- Rakefile
|
194
194
|
- config/database.yml
|
195
195
|
- db/migrate/20130807103945_create_applications.rb
|
196
|
-
- db/migrate/
|
197
|
-
- db/migrate/20130808135613_create_domains.rb
|
196
|
+
- db/migrate/20130808135549_create_domains.rb
|
198
197
|
- lib/restpack_core_service.rb
|
199
198
|
- lib/restpack_core_service/configuration.rb
|
200
199
|
- lib/restpack_core_service/models/application.rb
|
201
200
|
- lib/restpack_core_service/models/domain.rb
|
202
|
-
- lib/restpack_core_service/
|
203
|
-
- lib/restpack_core_service/serializers/
|
201
|
+
- lib/restpack_core_service/serializers/application_serializer.rb
|
202
|
+
- lib/restpack_core_service/serializers/domain_serializer.rb
|
204
203
|
- lib/restpack_core_service/services.rb
|
205
204
|
- lib/restpack_core_service/services/application/verify_api_token.rb
|
205
|
+
- lib/restpack_core_service/services/domain/by_identifier.rb
|
206
206
|
- lib/restpack_core_service/tasks.rb
|
207
207
|
- lib/restpack_core_service/tasks/db.rake
|
208
208
|
- lib/restpack_core_service/version.rb
|
@@ -210,11 +210,10 @@ files:
|
|
210
210
|
- spec/configuration_spec.rb
|
211
211
|
- spec/factories/application_factory.rb
|
212
212
|
- spec/factories/domain_factory.rb
|
213
|
-
- spec/factories/host_factory.rb
|
214
213
|
- spec/models/application_spec.rb
|
215
214
|
- spec/models/domain_spec.rb
|
216
|
-
- spec/models/host_spec.rb
|
217
215
|
- spec/services/application/verify_api_token_spec.rb
|
216
|
+
- spec/services/domain/by_identifier_spec.rb
|
218
217
|
- spec/spec_helper.rb
|
219
218
|
homepage: https://github.com/RestPack
|
220
219
|
licenses:
|
@@ -236,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
235
|
version: '0'
|
237
236
|
requirements: []
|
238
237
|
rubyforge_project:
|
239
|
-
rubygems_version: 2.0.
|
238
|
+
rubygems_version: 2.0.7
|
240
239
|
signing_key:
|
241
240
|
specification_version: 4
|
242
241
|
summary: Applications, Domains and Configurations
|
@@ -244,9 +243,8 @@ test_files:
|
|
244
243
|
- spec/configuration_spec.rb
|
245
244
|
- spec/factories/application_factory.rb
|
246
245
|
- spec/factories/domain_factory.rb
|
247
|
-
- spec/factories/host_factory.rb
|
248
246
|
- spec/models/application_spec.rb
|
249
247
|
- spec/models/domain_spec.rb
|
250
|
-
- spec/models/host_spec.rb
|
251
248
|
- spec/services/application/verify_api_token_spec.rb
|
249
|
+
- spec/services/domain/by_identifier_spec.rb
|
252
250
|
- spec/spec_helper.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module RestPack::Core::Service::Models
|
2
|
-
class Host < ActiveRecord::Base
|
3
|
-
self.table_name = :restpack_hosts
|
4
|
-
attr_accessible :name, :application_id, :session_secret, :oauth_providers
|
5
|
-
|
6
|
-
validates_presence_of :name, :application_id
|
7
|
-
validates :name, :length => { :maximum => 256 }
|
8
|
-
|
9
|
-
has_many :domains
|
10
|
-
belongs_to :application
|
11
|
-
|
12
|
-
before_save -> {
|
13
|
-
self.oauth_providers ||= {}
|
14
|
-
self.session_secret ||= SecureRandom.hex(16)
|
15
|
-
}
|
16
|
-
end
|
17
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module RestPack::Core::Service::Serializers
|
2
|
-
class UserSerializer
|
3
|
-
include RestPack::Serializer
|
4
|
-
|
5
|
-
self.model_class = RestPack::User::Service::Models::User
|
6
|
-
self.key = :users
|
7
|
-
|
8
|
-
# attributes :id, :application_id, :user_id, :title, :content, :latitude, :longitude,
|
9
|
-
# :tags, :access, :data, :href, :updated_at, :created_at
|
10
|
-
end
|
11
|
-
end
|
data/spec/models/host_spec.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
describe RestPack::Core::Service::Models::Host do
|
2
|
-
it { should validate_presence_of(:name) }
|
3
|
-
it { should validate_presence_of(:application_id) }
|
4
|
-
it { should ensure_length_of(:name).is_at_most(256) }
|
5
|
-
it { should belong_to(:application) }
|
6
|
-
it { should have_many(:domains) }
|
7
|
-
it { subject.class.table_name.should == 'restpack_hosts' }
|
8
|
-
|
9
|
-
context "default values" do
|
10
|
-
it "has a random session_secret" do
|
11
|
-
host1 = create(:host)
|
12
|
-
host2 = create(:host)
|
13
|
-
|
14
|
-
host1.session_secret.should_not == nil
|
15
|
-
host1.session_secret.should_not == host2.session_secret
|
16
|
-
end
|
17
|
-
|
18
|
-
it "has empty oauth_providers as default" do
|
19
|
-
create(:host).oauth_providers.should == {}
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|