restpack_account_service 0.0.2 → 0.0.3
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/db/migrate/20130919115210_create_accounts.rb +11 -0
- data/lib/restpack_account_service.rb +2 -1
- data/lib/restpack_account_service/commands/account/create.rb +22 -0
- data/lib/restpack_account_service/commands/account/get.rb +22 -0
- data/lib/restpack_account_service/configuration.rb +12 -0
- data/lib/restpack_account_service/models/account.rb +10 -0
- data/lib/restpack_account_service/serializers/account.rb +10 -0
- data/lib/restpack_account_service/tasks/db.rake +39 -0
- data/lib/restpack_account_service/tasks/tasks.rb +7 -0
- data/lib/restpack_account_service/version.rb +1 -1
- data/restpack_account_service.gemspec +0 -5
- data/spec/commands/account/create_spec.rb +32 -0
- data/spec/commands/account/get_spec.rb +54 -0
- data/spec/factories/account.rb +7 -0
- data/spec/models/account_spec.rb +9 -0
- metadata +19 -76
- data/lib/restpack_account_service/commands/.keep +0 -0
- data/lib/restpack_account_service/models/.keep +0 -0
- data/lib/restpack_account_service/serializers/.keep +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd9c6e1c2c1bc0bf018d1ba4c89acef4d256abe4
|
4
|
+
data.tar.gz: 7080c9ec92f4b768ce3384412bbd384ca09e7153
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55d9a4bcb7c59737d59dd16f4f1ceb285544ccfe9b8f9d7404451aaa3d19e583931c3b9d9d29258c1f8a346a4c3bfd234f3ba57b3c35ac05a2bda341700d17eb
|
7
|
+
data.tar.gz: d5cd8d8d752bc9a8688a4d8564f034a2499cd0131bff71e2d307ec5a7ae18711bff51e81952e0c90b4600c12d54ef6963fb33a0edf0d6ea018efc62e6e3eb757
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateAccounts < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :restpack_accounts do |t|
|
4
|
+
t.integer :created_by, :null => false
|
5
|
+
t.integer :application_id, :null => false
|
6
|
+
t.string :name, :null => false, :limit => 256
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1 +1,2 @@
|
|
1
|
-
require
|
1
|
+
require 'restpack_service'
|
2
|
+
RestPack::Service::Loader.load 'account', Dir.pwd
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RestPack::Account::Service::Commands
|
2
|
+
module Account
|
3
|
+
class Create < RestPack::Service::Command
|
4
|
+
required do
|
5
|
+
array :accounts do
|
6
|
+
hash do
|
7
|
+
required do
|
8
|
+
integer :application_id
|
9
|
+
integer :created_by
|
10
|
+
string :name
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def execute
|
17
|
+
accounts = Models::Account.create!(inputs[:accounts])
|
18
|
+
Serializers::Account.serialize(accounts)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RestPack::Account::Service::Commands
|
2
|
+
module Account
|
3
|
+
class Get < RestPack::Service::Command
|
4
|
+
required do
|
5
|
+
integer :id
|
6
|
+
integer :application_id
|
7
|
+
end
|
8
|
+
|
9
|
+
def execute
|
10
|
+
scope = Models::Account.all
|
11
|
+
scope = scope.where(application_id: application_id)
|
12
|
+
result = Serializers::Account.resource(inputs, scope)
|
13
|
+
|
14
|
+
if result[:accounts].empty?
|
15
|
+
status :not_found
|
16
|
+
else
|
17
|
+
result
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module RestPack::Account::Service::Models
|
2
|
+
class Account < ActiveRecord::Base
|
3
|
+
self.table_name = :restpack_accounts
|
4
|
+
|
5
|
+
attr_accessible :application_id, :created_by, :name
|
6
|
+
validates_presence_of :application_id, :created_by, :name
|
7
|
+
|
8
|
+
validates :name, :length => { :maximum => 256 }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
namespace :restpack do
|
2
|
+
desc "Run any outstanding RestPack migrations"
|
3
|
+
task :migrate do
|
4
|
+
Rake::Task["restpack:account:migrate"].invoke
|
5
|
+
end
|
6
|
+
|
7
|
+
desc "List RestPack configuration"
|
8
|
+
task :configuration do
|
9
|
+
Rake::Task["restpack:account:configuration"].invoke
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :account do
|
13
|
+
desc "Run any outstanding RestPack::Account migrations"
|
14
|
+
task :migrate => ["connection"] do
|
15
|
+
source_migrations_path = File.dirname(__FILE__) + "/../../../db/migrate"
|
16
|
+
target_migrations_path = "db/migrate"
|
17
|
+
|
18
|
+
ActiveRecord::Migration.verbose = true
|
19
|
+
ActiveRecord::Migrator.migrate(source_migrations_path)
|
20
|
+
|
21
|
+
if File.directory?(target_migrations_path)
|
22
|
+
FileUtils.cp_r(Dir["#{source_migrations_path}/*"], target_migrations_path)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
task :connection do
|
27
|
+
config = YAML.load(IO.read('config/database.yml'))
|
28
|
+
environment = ENV['RAILS_ENV'] || ENV['DB'] || 'development'
|
29
|
+
ActiveRecord::Base.establish_connection config[environment]
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "List RestPack::Account::Service configuration"
|
33
|
+
task :configuration do
|
34
|
+
p "RestPack::Account::Service Configuration"
|
35
|
+
p "--------------------------------"
|
36
|
+
p "TODO"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -19,11 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "restpack_service"
|
22
|
-
spec.add_dependency "restpack_serializer"
|
23
|
-
spec.add_dependency "restpack_gem"
|
24
|
-
spec.add_dependency "sinatra", "~> 1.4.3"
|
25
|
-
spec.add_dependency "pg", "~> 0.16.0"
|
26
|
-
spec.add_dependency "require_all", "~> 1.3.0"
|
27
22
|
|
28
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
29
24
|
spec.add_development_dependency "database_cleaner", "~> 1.0.1"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Commands::Account::Create do
|
4
|
+
#TODO: GJ: validate array
|
5
|
+
# is_required :created_by, :name
|
6
|
+
|
7
|
+
context 'creating an account' do
|
8
|
+
let(:response) { subject.class.run(params) }
|
9
|
+
|
10
|
+
context 'with valid params' do
|
11
|
+
let(:account) { {
|
12
|
+
application_id: 111,
|
13
|
+
created_by: 234,
|
14
|
+
name: 'My New Group'
|
15
|
+
} }
|
16
|
+
let(:params) { {
|
17
|
+
accounts: [account]
|
18
|
+
} }
|
19
|
+
|
20
|
+
it 'returns the newly created account' do
|
21
|
+
response.success?.should == true
|
22
|
+
|
23
|
+
accounts = response.result[:accounts]
|
24
|
+
accounts.length.should == 1
|
25
|
+
|
26
|
+
accounts.first[:application_id].should == 111
|
27
|
+
accounts.first[:created_by].should == 234
|
28
|
+
accounts.first[:name].should == "My New Group"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe Commands::Account::Get do
|
4
|
+
is_required :id, :application_id
|
5
|
+
|
6
|
+
let(:response) { subject.class.run(params) }
|
7
|
+
let(:params) { {} }
|
8
|
+
|
9
|
+
before do
|
10
|
+
@account = create(:account)
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'with valid params' do
|
14
|
+
let(:params) { {
|
15
|
+
id: @account.id,
|
16
|
+
application_id: @account.application_id
|
17
|
+
} }
|
18
|
+
|
19
|
+
it 'is valid' do
|
20
|
+
response.success?.should == true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'return the group' do
|
24
|
+
response.result[:accounts].length.should == 1
|
25
|
+
response.result[:accounts].first[:id].should == @account.id.to_s
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'with invalid :id' do
|
30
|
+
let(:params) { {
|
31
|
+
id: 142857,
|
32
|
+
application_id: @account.application_id
|
33
|
+
}}
|
34
|
+
|
35
|
+
it 'is :not_found' do
|
36
|
+
response.success?.should == false
|
37
|
+
response.result.should == {}
|
38
|
+
response.status.should == :not_found
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'with invalid :application_id' do
|
43
|
+
let(:params) { {
|
44
|
+
id: @account.id,
|
45
|
+
application_id: 142857
|
46
|
+
}}
|
47
|
+
|
48
|
+
it 'is :not_found' do
|
49
|
+
response.success?.should == false
|
50
|
+
response.result.should == {}
|
51
|
+
response.status.should == :not_found
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Models::Account do
|
4
|
+
it { should validate_presence_of(:application_id) }
|
5
|
+
it { should validate_presence_of(:created_by) }
|
6
|
+
it { should validate_presence_of(:name) }
|
7
|
+
|
8
|
+
it { should ensure_length_of(:name).is_at_most(256) }
|
9
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restpack_account_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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-09-
|
11
|
+
date: 2013-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: restpack_service
|
@@ -24,76 +24,6 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: restpack_serializer
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: restpack_gem
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: sinatra
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.4.3
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.4.3
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pg
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 0.16.0
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ~>
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 0.16.0
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: require_all
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.3.0
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ~>
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.3.0
|
97
27
|
- !ruby/object:Gem::Dependency
|
98
28
|
name: bundler
|
99
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,12 +136,21 @@ files:
|
|
206
136
|
- README.md
|
207
137
|
- Rakefile
|
208
138
|
- config/database.yml
|
139
|
+
- db/migrate/20130919115210_create_accounts.rb
|
209
140
|
- lib/restpack_account_service.rb
|
210
|
-
- lib/restpack_account_service/commands
|
211
|
-
- lib/restpack_account_service/
|
212
|
-
- lib/restpack_account_service/
|
141
|
+
- lib/restpack_account_service/commands/account/create.rb
|
142
|
+
- lib/restpack_account_service/commands/account/get.rb
|
143
|
+
- lib/restpack_account_service/configuration.rb
|
144
|
+
- lib/restpack_account_service/models/account.rb
|
145
|
+
- lib/restpack_account_service/serializers/account.rb
|
146
|
+
- lib/restpack_account_service/tasks/db.rake
|
147
|
+
- lib/restpack_account_service/tasks/tasks.rb
|
213
148
|
- lib/restpack_account_service/version.rb
|
214
149
|
- restpack_account_service.gemspec
|
150
|
+
- spec/commands/account/create_spec.rb
|
151
|
+
- spec/commands/account/get_spec.rb
|
152
|
+
- spec/factories/account.rb
|
153
|
+
- spec/models/account_spec.rb
|
215
154
|
- spec/spec_helper.rb
|
216
155
|
homepage: https://github.com/RestPack
|
217
156
|
licenses:
|
@@ -233,9 +172,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
172
|
version: '0'
|
234
173
|
requirements: []
|
235
174
|
rubyforge_project:
|
236
|
-
rubygems_version: 2.0.
|
175
|
+
rubygems_version: 2.0.5
|
237
176
|
signing_key:
|
238
177
|
specification_version: 4
|
239
178
|
summary: Accounts
|
240
179
|
test_files:
|
180
|
+
- spec/commands/account/create_spec.rb
|
181
|
+
- spec/commands/account/get_spec.rb
|
182
|
+
- spec/factories/account.rb
|
183
|
+
- spec/models/account_spec.rb
|
241
184
|
- spec/spec_helper.rb
|
File without changes
|
File without changes
|
File without changes
|