dbAccessor 0.1.6 → 0.1.7
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/.rspec +1 -1
- data/Gemfile +1 -0
- data/dbAccessor.gemspec +1 -1
- data/lib/dbAccessor/base.rb +1 -1
- data/lib/dbAccessor/deleter/deleter.rb +0 -30
- data/lib/dbAccessor/updater/updater.rb +1 -1
- data/lib/dbAccessor/version.rb +1 -1
- data/spec/deleter_spec.rb +18 -41
- data/spec/feed/dbTest/migration/create_table_actions.rb +2 -4
- data/spec/feed/dbTest/migration/create_table_applications.rb +3 -3
- data/spec/feed/dbTest/migration/create_table_assignments.rb +1 -1
- data/spec/feed/dbTest/migration/create_table_engine_data.rb +1 -1
- data/spec/feed/dbTest/migration/create_table_engines.rb +2 -1
- data/spec/feed/dbTest/migration/create_table_users.rb +4 -2
- data/spec/feed/resources/do_migration.rb +0 -2
- data/spec/reader_spec.rb +15 -2
- data/spec/updater_spec.rb +17 -5
- data/spec/writer_spec.rb +11 -5
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 701e6d4e9ab5ce11aae92b954dc447a8201ab0b4
|
4
|
+
data.tar.gz: ca327af2f7c65250a2f5ab25c1a18178ce3b05fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdb5d7952f1c4f661b4ccf626b6662d9e8a008cc8217d696c9d73bce406c61912446194861e74fc69d85134d0928c3b6e85e0b40e76dca2d52e1c739c8c1b744
|
7
|
+
data.tar.gz: f61092eba402b8ac33e5120b461e6a4f51ffabec79c5c40af2a0fd3daa9ee244e754e99312a3c5b1828d3e92e3b3c7ff3584b17b69c726cc56da078327a564b1
|
data/.rspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
--format
|
1
|
+
--format d
|
2
2
|
--color
|
data/Gemfile
CHANGED
data/dbAccessor.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.required_ruby_version = ">= 1.9"
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.5"
|
25
25
|
spec.add_development_dependency "uuid", "~> 2.3", ">= 2.3.7"
|
26
|
-
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
27
|
spec.add_development_dependency "activerecord", "~> 4.1", ">= 4.1.1"
|
28
28
|
spec.add_development_dependency "rake", "~> 10.3", ">= 10.3.2"
|
29
29
|
spec.add_development_dependency "pg", "~> 0.17", ">= 0.17.1"
|
data/lib/dbAccessor/base.rb
CHANGED
@@ -62,7 +62,7 @@ module Db_Accessor
|
|
62
62
|
engine_columns = [:id,:name,:engine_conf,:application_id]
|
63
63
|
engine_data_columns = [:id,:customer_id,:item_id,:preference,:engine_id]
|
64
64
|
app_columns = [:id,:name,:api_key,:url,:user_id]
|
65
|
-
user_columns = [:id,:login,:password,:firstname,:lastname,:gender,:email]
|
65
|
+
user_columns = [:id,:login,:password,:firstname,:lastname,:gender,:email, :admin]
|
66
66
|
|
67
67
|
keys = content.keys
|
68
68
|
if model_name == "User"
|
@@ -17,40 +17,10 @@ class DbAccessor::Deleter < Db_Accessor::Base
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
def self.delete_by_id(given_param)
|
22
|
-
waited_keys = [:model_name,:id]
|
23
|
-
if validate(given_param,waited_keys) && validate_id(given_param[:id])
|
24
|
-
model_name = get_model_name(given_param)
|
25
|
-
objects = model_name.find(given_param[:id])
|
26
|
-
objects.each do |o|
|
27
|
-
o.deleted=true
|
28
|
-
o.save
|
29
|
-
end
|
30
|
-
return_response(200,"success")
|
31
|
-
else
|
32
|
-
return_response(400,"Not deleted")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
20
|
def self.validate(param,waited_keys)
|
37
21
|
param.is_a?(Hash) && valid_keys?(param,waited_keys) && !validate_argument(param) && is_model?(param[:model_name])
|
38
22
|
end
|
39
23
|
|
40
|
-
def self.validate_id(param)
|
41
|
-
if param.is_a?(Array)
|
42
|
-
param.each do |v|
|
43
|
-
if !(v.is_a?(Fixnum))
|
44
|
-
return false
|
45
|
-
break
|
46
|
-
end
|
47
|
-
end
|
48
|
-
else
|
49
|
-
return false
|
50
|
-
end
|
51
|
-
return true
|
52
|
-
end
|
53
|
-
|
54
24
|
def self.valid_condition?(param)
|
55
25
|
condition = param[:condition]
|
56
26
|
model_name = param[:model_name]
|
@@ -7,7 +7,7 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
7
7
|
def self.update_by_id(given_object)
|
8
8
|
waited_keys = [:model_name,:attributes]
|
9
9
|
if validate(given_object,waited_keys) && valid_attributes_pattern?(given_object[:model_name],given_object[:attributes])
|
10
|
-
get_model_name(given_object).update(get_attributes(given_object).keys,get_attributes(given_object).values)
|
10
|
+
var = get_model_name(given_object).update(get_attributes(given_object).keys,get_attributes(given_object).values)
|
11
11
|
return_response(200,"Succesfully updated")
|
12
12
|
else
|
13
13
|
return_response(400,"Not updated")
|
data/lib/dbAccessor/version.rb
CHANGED
data/spec/deleter_spec.rb
CHANGED
@@ -3,11 +3,25 @@ require_relative 'spec_helper'
|
|
3
3
|
describe DbAccessor::Deleter do
|
4
4
|
|
5
5
|
describe ".delete_all" do
|
6
|
-
|
6
|
+
nb = rand(1000)
|
7
|
+
api_key = UUID.new.generate
|
8
|
+
let(:app) { {model_name: 'Application',content: {name: 'desert'+nb.to_s,api_key: api_key,url: 'http://www.desert'+nb.to_s+'.com',user_id: 2}} }
|
9
|
+
let(:user) { {model_name: 'User',content: {login: 'diakhoumpa'+nb.to_s,password: 'passeraa',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'diakhouumpa'+nb.to_s+'@gmail.com',gender: 'M'}} }
|
7
10
|
context "when the object is deleted" do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
+
before(:each) do
|
12
|
+
DbAccessor::Writer.write_object(app)
|
13
|
+
DbAccessor::Writer.write_object(user)
|
14
|
+
end
|
15
|
+
it do
|
16
|
+
found_id = DbAccessor::Reader.simple_select( { model_name: 'User', action_on: 'first' } )[:message].id
|
17
|
+
given_param = { model_name: "User", condition: { id: found_id }}
|
18
|
+
expect((DbAccessor::Deleter.delete_all(given_param))[:code]).to eq 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it do
|
22
|
+
found_id = DbAccessor::Reader.simple_select( { model_name: 'Application', action_on: 'first' } )[:message].id
|
23
|
+
expect((DbAccessor::Deleter.delete_all({model_name: "Application",condition: { id: found_id }}))[:code]).to eq 200
|
24
|
+
end
|
11
25
|
|
12
26
|
it {expect((DbAccessor::Deleter.delete_all({model_name: "User",condition: {login: 'fabira',password: 'passera'}}))[:code]).to eq 200 }
|
13
27
|
end
|
@@ -50,41 +64,4 @@ describe DbAccessor::Deleter do
|
|
50
64
|
end
|
51
65
|
|
52
66
|
end
|
53
|
-
|
54
|
-
describe ".delete_by_id" do
|
55
|
-
context "when the object find by id is deleted" do
|
56
|
-
given_param={model_name: "Application", id: [4]}
|
57
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 200 }
|
58
|
-
|
59
|
-
given_param={model_name: "User", id: [4]}
|
60
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 200 }
|
61
|
-
end
|
62
|
-
|
63
|
-
context "when the id's format is invalid" do
|
64
|
-
given_param={model_name: "User", id: "coucou"}
|
65
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
66
|
-
end
|
67
|
-
|
68
|
-
|
69
|
-
context "when one or many parameters are empty or nil" do
|
70
|
-
given_param={model_name: "User", id: nil}
|
71
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
72
|
-
end
|
73
|
-
|
74
|
-
context "when the model name is invalid" do
|
75
|
-
given_param={model_name: "U3466", id: [1,2,3]}
|
76
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
77
|
-
end
|
78
|
-
|
79
|
-
context "when parameter's keys are invalid" do
|
80
|
-
given_param={model_name: "User", i: [1,2] }
|
81
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
82
|
-
given_param = {model: "Application",id: [3]}
|
83
|
-
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
84
|
-
end
|
85
|
-
|
86
|
-
context "when the parameter is nil" do
|
87
|
-
it {expect((DbAccessor::Deleter.delete_by_id(nil))[:code]).to eq 400 }
|
88
|
-
end
|
89
|
-
end
|
90
67
|
end
|
@@ -10,12 +10,12 @@ class CreateApplications < ActiveRecord::Migration
|
|
10
10
|
a.timestamps
|
11
11
|
end
|
12
12
|
add_index :applications, :user_id
|
13
|
-
end
|
14
|
-
|
13
|
+
end
|
14
|
+
|
15
15
|
def self.down
|
16
16
|
drop_table :applications
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
CreateApplications.down if ActiveRecord::Base.connection.table_exists? 'applications'
|
20
21
|
CreateApplications.up
|
21
|
-
|
@@ -4,6 +4,7 @@ class CreateEngines < ActiveRecord::Migration
|
|
4
4
|
e.string :name
|
5
5
|
e.column :engine_conf, :json
|
6
6
|
e.integer :application_id
|
7
|
+
e.boolean :deleted, :default => false
|
7
8
|
e.timestamps
|
8
9
|
end
|
9
10
|
add_index :engines, :application_id
|
@@ -15,5 +16,5 @@ class CreateEngines < ActiveRecord::Migration
|
|
15
16
|
|
16
17
|
end
|
17
18
|
|
18
|
-
CreateEngines.down
|
19
|
+
CreateEngines.down if ActiveRecord::Base.connection.table_exists? 'engines'
|
19
20
|
CreateEngines.up
|
@@ -9,14 +9,16 @@ class CreateUsers < ActiveRecord::Migration
|
|
9
9
|
u.string :lastname
|
10
10
|
u.string :gender
|
11
11
|
u.string :email
|
12
|
+
u.boolean :admin, default: false
|
12
13
|
u.boolean :deleted, :default => false
|
13
14
|
u.timestamps
|
14
15
|
end
|
15
|
-
end
|
16
|
-
|
16
|
+
end
|
17
|
+
|
17
18
|
def self.down
|
18
19
|
drop_table :users
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
23
|
+
CreateUsers.down if ActiveRecord::Base.connection.table_exists? 'users'
|
22
24
|
CreateUsers.up
|
data/spec/reader_spec.rb
CHANGED
@@ -2,6 +2,16 @@ require_relative 'spec_helper'
|
|
2
2
|
|
3
3
|
|
4
4
|
describe DbAccessor::Reader do
|
5
|
+
nb = rand(50)
|
6
|
+
|
7
|
+
api_key = UUID.new.generate
|
8
|
+
let(:app) { {model_name: 'Application',content: {name: 'desert'+nb.to_s,api_key: api_key,url: 'http://www.desert'+nb.to_s+'.com',user_id: 1}} }
|
9
|
+
let(:user) { {model_name: 'User',content: {login: 'diakhoumpa'+nb.to_s,password: 'passeraa',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'diakhouumpa'+nb.to_s+'@gmail.com',gender: 'M'}} }
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
DbAccessor::Writer.write_object(app)
|
13
|
+
DbAccessor::Writer.write_object(user)
|
14
|
+
end
|
5
15
|
|
6
16
|
describe ".simple_select" do
|
7
17
|
context "when all model's items are found" do
|
@@ -28,7 +38,10 @@ describe DbAccessor::Reader do
|
|
28
38
|
describe ".condition_select" do
|
29
39
|
|
30
40
|
context "when it reads one or many items on table with a condition" do
|
31
|
-
it
|
41
|
+
it do
|
42
|
+
found_login = DbAccessor::Reader.simple_select( { model_name: 'User', action_on: 'first' } )[:message].login
|
43
|
+
expect((DbAccessor::Reader.condition_select({model_name: "User" , condition: { login: found_login }}))[:code]).to eq 200
|
44
|
+
end
|
32
45
|
end
|
33
46
|
|
34
47
|
context "when the condition is not satisfied" do
|
@@ -71,7 +84,7 @@ describe DbAccessor::Reader do
|
|
71
84
|
describe ".linked_models_select" do
|
72
85
|
|
73
86
|
context "when it reads models on model with a condition" do
|
74
|
-
it {expect((DbAccessor::Reader.linked_models_select({model_name: "User", condition: { id:
|
87
|
+
it {expect((DbAccessor::Reader.linked_models_select({model_name: "User", condition: { id: 1}, models: "applications"}))[:code]).to eq 200 }
|
75
88
|
end
|
76
89
|
|
77
90
|
context "when a parameter is empty or empty" do
|
data/spec/updater_spec.rb
CHANGED
@@ -9,15 +9,22 @@ describe DbAccessor::Updater do
|
|
9
9
|
describe ".update_by_id" do
|
10
10
|
|
11
11
|
context "updates one or many users by id" do
|
12
|
-
|
12
|
+
DbAccessor::Writer.write_object({model_name: 'User',content: {login: 'diakhoumpa'+nb.to_s,password: 'passeraa',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'diakhouumpa'+nb.to_s+'@gmail.com',gender: 'M'}})
|
13
|
+
found_id = DbAccessor::Reader.simple_select( { model_name: 'User', action_on: 'first' } )[:message].id
|
14
|
+
param = {model_name: "User",attributes: { found_id => {login: "mamadouPouye"}} }
|
13
15
|
it {expect((DbAccessor::Updater.update_by_id(param))[:code]).to eq 200 }
|
14
16
|
end
|
15
17
|
|
16
18
|
context "updates one or many applications by id" do
|
17
|
-
|
19
|
+
api_key = UUID.new.generate
|
20
|
+
DbAccessor::Writer.write_object({model_name: 'Application',content: {name: 'desert'+nb.to_s,api_key: api_key,url: 'http://www.desert'+nb.to_s+'.com',user_id: 1}})
|
21
|
+
found_id = DbAccessor::Reader.simple_select( { model_name: 'Application', action_on: 'first' } )[:message].id
|
22
|
+
param = {model_name: "Application",attributes: {found_id => {api_key: UUID.new.generate}} }
|
18
23
|
it {expect((DbAccessor::Updater.update_by_id(param))[:code]).to eq 200 }
|
19
24
|
|
20
|
-
|
25
|
+
DbAccessor::Writer.write_object({model_name: 'Engine',content: {name: 'engine'+nb.to_s,engine_conf: {action: ['LIKE','SHARE'],score: [2,5],algorithm: 'Person',type: 'UserBased', neighborhood: 5 }.to_json ,application_id: 1}})
|
26
|
+
found_id = DbAccessor::Reader.simple_select( { model_name: 'Engine', action_on: 'first' } )[:message].id
|
27
|
+
param = {model_name: "Engine",attributes: { found_id => {engine_conf: {similarity_metric: 'similarity_metric',reco_algo: 'reco_algo',neighborhood: 'neighborhood'}.to_json} } }
|
21
28
|
it {expect((DbAccessor::Updater.update_by_id(param))[:code]).to eq 200 }
|
22
29
|
end
|
23
30
|
|
@@ -80,8 +87,13 @@ describe DbAccessor::Updater do
|
|
80
87
|
end
|
81
88
|
|
82
89
|
context "when all model objects that satisfy the condition are updated" do
|
83
|
-
|
84
|
-
|
90
|
+
it do
|
91
|
+
Redis.current.del('users')
|
92
|
+
parameter={model_name: "User", attributes: {password: "password#{nb}"}}
|
93
|
+
found_login = DbAccessor::Reader.simple_select( { model_name: 'User', action_on: 'last' } )[:message].login
|
94
|
+
condition = { login: found_login }
|
95
|
+
expect((DbAccessor::Updater.update_all_objects(parameter,condition))[:code]).to eq 200
|
96
|
+
end
|
85
97
|
end
|
86
98
|
|
87
99
|
context "when model's attributes are not correct" do
|
data/spec/writer_spec.rb
CHANGED
@@ -10,14 +10,22 @@ describe DbAccessor::Writer do
|
|
10
10
|
|
11
11
|
let(:app) { {model_name: 'Application',content: {name: 'desert'+nb.to_s,api_key: api_key,url: 'http://www.desert'+nb.to_s+'.com',user_id: 2}} }
|
12
12
|
|
13
|
-
let(:engine) {
|
14
|
-
|
15
|
-
describe".write_object" do
|
13
|
+
let(:engine) { {model_name: 'Engine',content: {name: 'engine'+nb.to_s,engine_conf: {action: ['LIKE','SHARE'],score: [2,5],algorithm: 'Person',type: 'UserBased', neighborhood: 5 }.to_json ,application_id: 1}} }
|
16
14
|
|
17
15
|
context "when a user is saved in database" do
|
18
16
|
it {expect((DbAccessor::Writer.write_object(user))[:code]).to eq 201}
|
19
17
|
end
|
20
18
|
|
19
|
+
context "when an admin user is saved in database" do
|
20
|
+
it do
|
21
|
+
admin_user = user
|
22
|
+
admin_user[:content][:login] = "admin#{nb.to_s}"
|
23
|
+
admin_user[:content][:email] = "admin#{nb.to_s}@gmail.com"
|
24
|
+
admin_user[:content][:admin] = true
|
25
|
+
expect((DbAccessor::Writer.write_object(admin_user))[:code]).to eq 201
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
21
29
|
context "when an application is saved in database" do
|
22
30
|
it {expect((DbAccessor::Writer.write_object(app))[:code]).to eq 201}
|
23
31
|
end
|
@@ -73,5 +81,3 @@ describe DbAccessor::Writer do
|
|
73
81
|
end
|
74
82
|
|
75
83
|
end
|
76
|
-
|
77
|
-
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbAccessor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fabira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -48,16 +48,16 @@ dependencies:
|
|
48
48
|
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - "
|
58
|
+
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: activerecord
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|