dbAccessor 0.1.3 → 0.1.4
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/lib/dbAccessor/base.rb +27 -41
- data/lib/dbAccessor/reader/reader.rb +33 -37
- data/lib/dbAccessor/updater/updater.rb +9 -9
- data/lib/dbAccessor/version.rb +1 -1
- data/lib/dbAccessor/writer/writer.rb +17 -33
- data/spec/deleter_spec.rb +48 -48
- data/spec/feed/dbTest/migration/create_table_actions.rb +5 -5
- data/spec/feed/dbTest/migration/create_table_assignments.rb +5 -5
- data/spec/feed/dbTest/migration/create_table_engine_data.rb +1 -1
- data/spec/feed/dbTest/migration/create_table_engines.rb +1 -1
- data/spec/feed/dbTest/model/engine.rb +1 -4
- data/spec/reader_spec.rb +11 -10
- data/spec/spec_helper.rb +1 -0
- data/spec/writer_spec.rb +13 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b880eb3b9ef4c01a57315c4b04b50bf3ca90dd7d
|
4
|
+
data.tar.gz: 1fc7cca67db5273802dea1010b932e7582c0281c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6603078e3d289a6a5a02d1a08e879ffbd5a290766b8e90599531df582b3c075f8fa4d399fa8b472af84d5d2554d7aedc960feb241ad018228f12192a7bcfdc94
|
7
|
+
data.tar.gz: 32a808da4e3bf5fc7dcb4b1aff528dd592c9f45e53b464d1084fdde2619aa546e146dc5d3c024446b0d3537df89824eb0cdbb77e958e211f92e40f3d8f84ec9a
|
data/lib/dbAccessor/base.rb
CHANGED
@@ -1,18 +1,14 @@
|
|
1
1
|
module Db_Accessor
|
2
|
-
|
3
2
|
class Base
|
4
|
-
USER_MODEL
|
5
|
-
APP_MODEL
|
6
|
-
ENGINE_MODEL
|
3
|
+
USER_MODEL = 'User'
|
4
|
+
APP_MODEL = 'Application'
|
5
|
+
ENGINE_MODEL = 'Engine'
|
7
6
|
ENGINE_DATA_MODEL = 'Engine_data'
|
8
|
-
|
9
|
-
ASSIGNMENT_MODEL = 'Assignment'
|
10
|
-
|
11
|
-
|
7
|
+
|
12
8
|
def self.validate_argument(given_param)
|
13
9
|
resp = nil
|
14
10
|
given_param.values.each do |v|
|
15
|
-
if v.nil?
|
11
|
+
if v.nil?
|
16
12
|
resp = true
|
17
13
|
break
|
18
14
|
elsif v.is_a?(String) && v.empty?
|
@@ -34,7 +30,7 @@ module Db_Accessor
|
|
34
30
|
end
|
35
31
|
|
36
32
|
def self.is_model?(param)
|
37
|
-
model = [ USER_MODEL, APP_MODEL, ENGINE_MODEL, ENGINE_DATA_MODEL
|
33
|
+
model = [ USER_MODEL, APP_MODEL, ENGINE_MODEL, ENGINE_DATA_MODEL ]
|
38
34
|
model.include?(param)
|
39
35
|
end
|
40
36
|
|
@@ -42,8 +38,7 @@ module Db_Accessor
|
|
42
38
|
param.is_a?(Hash)
|
43
39
|
end
|
44
40
|
|
45
|
-
|
46
|
-
def self.valid_keys?(param,waited_keys)
|
41
|
+
def self.valid_keys?(param,waited_keys)
|
47
42
|
waited_keys.each do |k|
|
48
43
|
if !(param.has_key?(k))
|
49
44
|
return false
|
@@ -51,9 +46,9 @@ module Db_Accessor
|
|
51
46
|
end
|
52
47
|
end
|
53
48
|
return true
|
54
|
-
|
49
|
+
end
|
55
50
|
|
56
|
-
|
51
|
+
def self.verify_keys(keys,attributes)
|
57
52
|
keys.each do |k|
|
58
53
|
if !(attributes.include?(k))
|
59
54
|
return false
|
@@ -61,31 +56,27 @@ module Db_Accessor
|
|
61
56
|
end
|
62
57
|
end
|
63
58
|
return true
|
64
|
-
|
59
|
+
end
|
65
60
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
attributes = app_columns
|
79
|
-
elsif model_name == "Engine"
|
61
|
+
def self.valid_object_columns?(model_name,content)
|
62
|
+
engine_columns = [:id,:engine_conf,:application_id]
|
63
|
+
engine_data_columns = [:id,:customer_id,:item_id,:preference,:engine_id]
|
64
|
+
app_columns = [:id,:name,:api_key,:url,:user_id]
|
65
|
+
user_columns = [:id,:login,:password,:firstname,:lastname,:gender,:email]
|
66
|
+
|
67
|
+
keys = content.keys
|
68
|
+
if model_name == "User"
|
69
|
+
attributes = user_columns
|
70
|
+
elsif model_name == "Application"
|
71
|
+
attributes = app_columns
|
72
|
+
elsif model_name == "Engine"
|
80
73
|
attributes = engine_columns
|
81
|
-
|
74
|
+
else
|
82
75
|
attributes = engine_data_columns
|
83
|
-
|
84
|
-
|
76
|
+
end
|
77
|
+
|
78
|
+
verify_keys(keys,attributes)
|
85
79
|
end
|
86
|
-
|
87
|
-
verify_keys(keys,attributes)
|
88
|
-
end
|
89
80
|
|
90
81
|
def self.valid_class?(keys,columns,attributes)
|
91
82
|
keys.each do |k|
|
@@ -111,10 +102,5 @@ module Db_Accessor
|
|
111
102
|
valid_class?(keys,string_columns,attributes)
|
112
103
|
end
|
113
104
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
end
|
119
|
-
|
105
|
+
end
|
120
106
|
end
|
@@ -3,48 +3,44 @@ require_relative '../base'
|
|
3
3
|
|
4
4
|
class DbAccessor::Reader < Db_Accessor::Base
|
5
5
|
|
6
|
-
|
6
|
+
|
7
7
|
def self.simple_select(given_param)
|
8
8
|
waited_keys = [:model_name,:action_on]
|
9
9
|
if validate(given_param,waited_keys)
|
10
|
-
|
11
|
-
|
10
|
+
result = get_model_name(given_param).where(deleted: false).send(given_param[:action_on])
|
11
|
+
result.nil? ? return_response(404,"Not found") : return_response(200,result)
|
12
12
|
else
|
13
|
-
|
13
|
+
return_response(404,"Not found")
|
14
14
|
end
|
15
|
-
|
16
|
-
|
15
|
+
rescue ActiveRecord::RecordNotFound => e
|
16
|
+
return_response(404,"Not found")
|
17
17
|
end
|
18
|
-
|
19
|
-
|
18
|
+
|
20
19
|
def self.condition_select(given_param)
|
21
20
|
waited_keys = [:model_name,:condition]
|
22
|
-
if validate(given_param,waited_keys)
|
23
|
-
|
24
|
-
|
21
|
+
if validate(given_param,waited_keys)
|
22
|
+
result = get_model_name(given_param).where(given_param[:condition],deleted: false)
|
23
|
+
( result.nil? || result == []) ? return_response(404,"Not found") : return_response(200,result)
|
25
24
|
else
|
26
25
|
return_response(404,"Not found")
|
27
26
|
end
|
28
|
-
|
29
|
-
|
27
|
+
rescue ActiveRecord::RecordNotFound => e
|
28
|
+
return_response(400,"Not found")
|
30
29
|
end
|
31
30
|
|
32
|
-
|
33
31
|
def self.select_by_id(given_param)
|
34
32
|
waited_keys = [:model_name,:identifiers]
|
35
33
|
if validate(given_param,waited_keys) && validate_id(given_param[:identifiers])
|
36
34
|
model_name = get_model_name(given_param)
|
37
|
-
result = model_name.where(deleted: false).where(id: given_param[:identifiers])
|
35
|
+
result = model_name.where(deleted: false).where(id: given_param[:identifiers])
|
38
36
|
result.nil? ? return_response(404,"Not found") : return_response(200,result)
|
39
37
|
else
|
40
38
|
return_response(404,"Not found")
|
41
39
|
end
|
42
|
-
|
43
|
-
|
40
|
+
rescue ActiveRecord::RecordNotFound => e
|
41
|
+
return_response(404,"Not found")
|
44
42
|
end
|
45
43
|
|
46
|
-
|
47
|
-
|
48
44
|
def self.linked_models_select(given_param)
|
49
45
|
waited_keys = [:model_name,:condition,:models]
|
50
46
|
if validate(given_param,waited_keys)
|
@@ -52,30 +48,30 @@ class DbAccessor::Reader < Db_Accessor::Base
|
|
52
48
|
condition = given_param[:condition]
|
53
49
|
models = given_param[:models]
|
54
50
|
result = model_name.where(condition,deleted: false).first
|
55
|
-
result.nil? ? return_response(404,"Not found") : return_response(200,result.send(models))
|
51
|
+
result.nil? ? return_response(404,"Not found") : return_response(200,result.send(models))
|
56
52
|
else
|
57
53
|
return_response(404,"Not found")
|
58
54
|
end
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
private ##################################################################
|
55
|
+
rescue ActiveRecord::RecordNotFound => e
|
56
|
+
return_response(400,"Not found")
|
57
|
+
end
|
58
|
+
private ##################################################################
|
63
59
|
|
64
60
|
def self.validate(param,waited_keys)
|
65
|
-
valid_hash?(param) && valid_keys?(param,waited_keys) && !validate_argument(param) && is_model?(param[:model_name])
|
61
|
+
valid_hash?(param) && valid_keys?(param,waited_keys) && !validate_argument(param) && is_model?(param[:model_name])
|
66
62
|
end
|
67
|
-
|
63
|
+
|
68
64
|
def self.validate_id(param)
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
65
|
+
test_id = lambda do |param|
|
66
|
+
param.each do |i|
|
67
|
+
if !(i.is_a?(Fixnum))
|
68
|
+
return false
|
69
|
+
break
|
70
|
+
end
|
71
|
+
end
|
72
|
+
return true
|
73
|
+
end
|
74
|
+
param.is_a?(Array) && test_id.call(param)
|
79
75
|
end
|
80
76
|
|
81
|
-
|
77
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require_relative '../../../spec/feed/resources/environment'
|
2
2
|
require_relative '../base'
|
3
3
|
|
4
|
-
class DbAccessor::Updater < Db_Accessor::Base
|
4
|
+
class DbAccessor::Updater < Db_Accessor::Base
|
5
|
+
|
5
6
|
|
6
|
-
#updates given object(s) with given attributes using object's identifier named 'id'
|
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])
|
@@ -16,7 +16,7 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
16
16
|
return_response(400,"Not updated")
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
|
20
20
|
def self.update_all_objects(given_param,condition="")
|
21
21
|
waited_keys = [:model_name,:attributes]
|
22
22
|
if validate(given_param,waited_keys) && valid_object_columns?(given_param[:model_name],given_param[:attributes]) && valid_attributes_values?(given_param[:attributes])
|
@@ -30,8 +30,8 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
30
30
|
result = update_by_id(hash)
|
31
31
|
break if !result
|
32
32
|
end
|
33
|
-
result ? return_response(200,"Successfully updated") : return_response(400,"Not updated")
|
34
|
-
else
|
33
|
+
result ? return_response(200,"Successfully updated") : return_response(400,"Not updated")
|
34
|
+
else
|
35
35
|
return_response(400,"Not updated")
|
36
36
|
end
|
37
37
|
end
|
@@ -45,8 +45,8 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
45
45
|
def self.validate_attributes(given_param)
|
46
46
|
given_param.is_a?(Hash) && !given_param.empty?
|
47
47
|
end
|
48
|
-
|
49
|
-
|
48
|
+
|
49
|
+
|
50
50
|
def self.valid_fixnum_keys?(keys)
|
51
51
|
keys.each do |k|
|
52
52
|
if !(k.is_a?(Fixnum))
|
@@ -59,7 +59,7 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
59
59
|
|
60
60
|
def self.valid_values_pattern?(values,model_name)
|
61
61
|
values.each do |v|
|
62
|
-
if !(v.nil?)
|
62
|
+
if !(v.nil?)
|
63
63
|
if v.empty? || !(v.is_a?(Hash)) || !valid_object_columns?(model_name,v) || !valid_attributes_values?(v)
|
64
64
|
return false
|
65
65
|
break
|
@@ -81,7 +81,7 @@ class DbAccessor::Updater < Db_Accessor::Base
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def self.validate(param,waited_keys)
|
84
|
-
param.is_a?(Hash) && valid_keys?(param,waited_keys) && is_model?(param[:model_name]) && validate_attributes(param[:attributes]) && !validate_argument(param)
|
84
|
+
param.is_a?(Hash) && valid_keys?(param,waited_keys) && is_model?(param[:model_name]) && validate_attributes(param[:attributes]) && !validate_argument(param)
|
85
85
|
end
|
86
86
|
|
87
87
|
end
|
data/lib/dbAccessor/version.rb
CHANGED
@@ -3,8 +3,10 @@ require_relative '../base'
|
|
3
3
|
|
4
4
|
class DbAccessor::Writer < Db_Accessor::Base
|
5
5
|
|
6
|
-
USER_MODEL
|
7
|
-
|
6
|
+
USER_MODEL = 'User'
|
7
|
+
ENGINE_MODEL = 'Engine'
|
8
|
+
ENGINE_DATA_MODEL = 'Engine_data'
|
9
|
+
APP_MODEL = 'Application'
|
8
10
|
|
9
11
|
def self.write_object(object_param)
|
10
12
|
waited_keys =[:model_name,:content]
|
@@ -12,14 +14,13 @@ class DbAccessor::Writer < Db_Accessor::Base
|
|
12
14
|
@given_object = get_object(object_param)
|
13
15
|
@given_object.save
|
14
16
|
!@given_object.new_record? ? code = 201 : code = 400
|
15
|
-
return_response(code,"Success")
|
17
|
+
return_response(code,"Success")
|
16
18
|
else
|
17
19
|
return_response(400,"Failed")
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
23
|
private ######################################################################
|
22
|
-
|
23
24
|
def self.get_content(object_param)
|
24
25
|
object_param[:content]
|
25
26
|
end
|
@@ -27,47 +28,30 @@ private ######################################################################
|
|
27
28
|
def self.get_object(object_param)
|
28
29
|
get_model_name(object_param).new(get_content(object_param))
|
29
30
|
end
|
30
|
-
|
31
|
+
|
31
32
|
def self.validate_required_params(param)
|
32
33
|
content = param[:content]
|
33
34
|
model_name = param[:model_name]
|
34
|
-
if model_name ==
|
35
|
+
if model_name == USER_MODEL
|
35
36
|
email_pattern = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
|
36
|
-
content[:login].is_a?(String) && content[:password].is_a?(String) && content[:email].is_a?(String) && !(email_pattern.match(content[:email])).nil?
|
37
|
-
|
37
|
+
content[:login].is_a?(String) && content[:password].is_a?(String) && content[:email].is_a?(String) && !(email_pattern.match(content[:email])).nil?
|
38
|
+
|
39
|
+
elsif model_name == APP_MODEL
|
38
40
|
content[:name].is_a?(String) && content[:api_key].is_a?(String) && content[:url].is_a?(String)
|
39
|
-
|
40
|
-
|
41
|
+
|
42
|
+
elsif model_name == ENGINE_MODEL
|
43
|
+
content[:engine_conf].is_a?(String) && content[:application_id].is_a?(Fixnum)
|
44
|
+
|
45
|
+
elsif model_name == ENGINE_DATA_MODEL
|
46
|
+
content[:customer_id].is_a?(Fixnum) && content[:item_id].is_a?(Fixnum) && content[:preference].is_a?(Fixnum) && content[:engine_id].is_a?(Fixnum)
|
41
47
|
else
|
42
48
|
false
|
43
49
|
end
|
44
50
|
end
|
45
51
|
|
46
|
-
|
47
52
|
def self.validate(param,waited_keys)
|
48
53
|
valid_hash?(param) && valid_keys?(param,waited_keys) && is_model?(param[:model_name]) && valid_object_columns?(param[:model_name],param[:content]) && !validate_argument(param) && !validate_argument(param[:content]) && validate_required_params(param)
|
49
54
|
|
50
55
|
end
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
56
|
+
end
|
73
57
|
|
data/spec/deleter_spec.rb
CHANGED
@@ -1,90 +1,90 @@
|
|
1
1
|
require_relative 'spec_helper'
|
2
2
|
|
3
|
-
describe DbAccessor::Deleter do
|
3
|
+
describe DbAccessor::Deleter do
|
4
4
|
|
5
5
|
describe ".delete_all" do
|
6
|
-
|
6
|
+
given_param = { model_name: "User",condition: {id: 3}}
|
7
7
|
context "when the object is deleted" do
|
8
|
-
|
8
|
+
it {expect((DbAccessor::Deleter.delete_all(given_param))[:code]).to eq 200 }
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: "Application",condition: {name: 'Wikia'}}))[:code]).to eq 200 }
|
11
|
+
|
12
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: "User",condition: {login: 'fabira',password: 'passera'}}))[:code]).to eq 200 }
|
13
|
+
end
|
14
14
|
|
15
15
|
context "when the conditon format is not valid" do
|
16
|
-
|
16
|
+
param = {model_name: "User",condition: {ta: 1}}
|
17
17
|
|
18
|
-
|
18
|
+
it {expect((DbAccessor::Deleter.delete_all(param))[:code]).to eq 400 }
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
param[:condition] = "coucou"
|
21
|
+
it {expect((DbAccessor::Deleter.delete_all(param))[:code]).to eq 400 }
|
22
22
|
|
23
|
-
|
24
|
-
|
23
|
+
param[:condition] = nil
|
24
|
+
it {expect((DbAccessor::Deleter.delete_all(param))[:code]).to eq 400 }
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
param[:condition] = {login: 1}
|
27
|
+
it {expect((DbAccessor::Deleter.delete_all(param))[:code]).to eq 400 }
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
param[:model_name] = "Application"
|
30
|
+
param[:condition] = {login: 'fabi'}
|
31
|
+
it {expect((DbAccessor::Deleter.delete_all(param))[:code]).to eq 400 }
|
32
|
+
end
|
33
33
|
|
34
34
|
context "when model name is invalid" do
|
35
|
-
|
36
|
-
|
35
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: "A",condition: {}}))[:code]).to eq 400 }
|
36
|
+
end
|
37
37
|
|
38
38
|
context "when one of the parameter's keys is invalid" do
|
39
|
-
|
40
|
-
|
39
|
+
it {expect((DbAccessor::Deleter.delete_all({model: "User",condition: {}}))[:code]).to eq 400 }
|
40
|
+
end
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
context "when the object which satisfy the given condition is deleted" do
|
43
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: "User",condition: {id: 4}}))[:code]).to eq 200 }
|
44
|
+
|
45
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: "Application",condition: {id: 4}}))[:code]).to eq 200 }
|
46
|
+
end
|
44
47
|
|
45
|
-
it {expect((DbAccessor::Deleter.delete_all({model_name: "Application",condition: {id: 4}}))[:code]).to eq 200 }
|
46
|
-
end
|
47
|
-
|
48
48
|
context "when one or many parameters are empty or nil" do
|
49
|
-
|
49
|
+
it {expect((DbAccessor::Deleter.delete_all({model_name: nil,condition: {id: 3}}))[:code]).to eq 400 }
|
50
50
|
end
|
51
51
|
|
52
52
|
end
|
53
53
|
|
54
54
|
describe ".delete_by_id" do
|
55
|
-
|
55
|
+
context "when the object find by id is deleted" do
|
56
56
|
given_param={model_name: "Application", id: [4]}
|
57
|
-
|
57
|
+
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 200 }
|
58
58
|
|
59
59
|
given_param={model_name: "User", id: [4]}
|
60
|
-
|
61
|
-
|
60
|
+
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 200 }
|
61
|
+
end
|
62
62
|
|
63
63
|
context "when the id's format is invalid" do
|
64
64
|
given_param={model_name: "User", id: "coucou"}
|
65
|
-
|
66
|
-
|
65
|
+
it {expect((DbAccessor::Deleter.delete_by_id(given_param))[:code]).to eq 400 }
|
66
|
+
end
|
67
67
|
|
68
68
|
|
69
|
-
context "when one or many parameters are empty or nil" do
|
70
|
-
|
71
|
-
|
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
72
|
end
|
73
73
|
|
74
|
-
context "when the model name is invalid" do
|
75
|
-
|
76
|
-
|
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
77
|
end
|
78
78
|
|
79
|
-
context "when parameter's keys are invalid" do
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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
84
|
end
|
85
85
|
|
86
|
-
context "when the parameter is nil" do
|
87
|
-
|
86
|
+
context "when the parameter is nil" do
|
87
|
+
it {expect((DbAccessor::Deleter.delete_by_id(nil))[:code]).to eq 400 }
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -2,18 +2,18 @@
|
|
2
2
|
class CreateActions < ActiveRecord::Migration
|
3
3
|
def self.up
|
4
4
|
create_table :actions do |a|
|
5
|
-
a.string :name
|
5
|
+
a.string :name
|
6
6
|
a.integer :score
|
7
7
|
a.timestamps
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
11
|
def self.down
|
12
12
|
drop_table :actions
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
CreateActions.down
|
17
|
-
|
17
|
+
|
18
18
|
|
19
19
|
|
@@ -2,18 +2,18 @@
|
|
2
2
|
class CreateAssignments < ActiveRecord::Migration
|
3
3
|
def self.up
|
4
4
|
create_table :assignments do |a|
|
5
|
-
a.integer :engine_id
|
5
|
+
a.integer :engine_id
|
6
6
|
a.integer :action_id
|
7
7
|
a.timestamps
|
8
|
-
end
|
8
|
+
end
|
9
9
|
|
10
10
|
add_index :assignments, :engine_id
|
11
11
|
add_index :assignments, :action_id
|
12
|
-
end
|
13
|
-
|
12
|
+
end
|
13
|
+
|
14
14
|
def self.down
|
15
15
|
drop_table :assignments
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
CreateAssignments.
|
19
|
+
CreateAssignments.down
|
@@ -1,14 +1,11 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
require_relative 'engine_data'
|
3
3
|
require_relative 'application'
|
4
|
-
require_relative 'action'
|
5
|
-
require_relative 'assignment'
|
6
4
|
|
7
5
|
class Engine < ActiveRecord::Base
|
8
6
|
|
9
|
-
validates_presence_of :
|
7
|
+
validates_presence_of :engine_conf
|
10
8
|
has_one :engine_data
|
11
9
|
belongs_to :application
|
12
|
-
has_many :actions, through: :assignments
|
13
10
|
|
14
11
|
end
|
data/spec/reader_spec.rb
CHANGED
@@ -2,11 +2,12 @@ require_relative 'spec_helper'
|
|
2
2
|
|
3
3
|
|
4
4
|
describe DbAccessor::Reader do
|
5
|
-
|
5
|
+
|
6
6
|
describe ".simple_select" do
|
7
7
|
context "when all model's items are found" do
|
8
8
|
it {expect((DbAccessor::Reader.simple_select({model_name: "User",action_on: "all"}))[:code]).to eq 200 }
|
9
|
-
|
9
|
+
it {expect((DbAccessor::Reader.simple_select({model_name: "Engine",action_on: "all"}))[:code]).to eq 200 }
|
10
|
+
end
|
10
11
|
context "when the first model's item is found" do
|
11
12
|
it {expect((DbAccessor::Reader.simple_select({model_name: "User",action_on: "first"}))[:code]).to eq 200 }
|
12
13
|
end
|
@@ -18,7 +19,7 @@ describe DbAccessor::Reader do
|
|
18
19
|
context "when it reads many items according to the condition" do
|
19
20
|
it {expect((DbAccessor::Reader.simple_select({model_name: "User",action_on: nil}))[:code]).to eq 404 }
|
20
21
|
end
|
21
|
-
|
22
|
+
|
22
23
|
context "when passed parameter's keys are not correct" do
|
23
24
|
it {expect((DbAccessor::Reader.simple_select({model: "User",action: nil}))[:code]).to eq 404 }
|
24
25
|
end
|
@@ -39,8 +40,8 @@ describe DbAccessor::Reader do
|
|
39
40
|
end
|
40
41
|
|
41
42
|
context "when condition is not correct" do
|
42
|
-
it {expect((DbAccessor::Reader.condition_select({model_name: "", condition: 1 }))[:code]).to eq 404 }
|
43
|
-
|
43
|
+
it {expect((DbAccessor::Reader.condition_select({model_name: "", condition: 1 }))[:code]).to eq 404 }
|
44
|
+
|
44
45
|
it {expect((DbAccessor::Reader.condition_select({model_name: "", condition: "pas une condition"}))[:code]).to eq 404 }
|
45
46
|
end
|
46
47
|
|
@@ -52,13 +53,13 @@ describe DbAccessor::Reader do
|
|
52
53
|
describe ".select_by_id" do
|
53
54
|
|
54
55
|
context "when it reads on a model with an id" do
|
55
|
-
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [5]}))[:code]).to eq 200 }
|
56
|
+
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [5]}))[:code]).to eq 200 }
|
56
57
|
|
57
|
-
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [5]}))[:message]).to_not eq nil }
|
58
|
+
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [5]}))[:message]).to_not eq nil }
|
58
59
|
end
|
59
|
-
|
60
|
+
|
60
61
|
context "when one of the ids is incorrect" do
|
61
|
-
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [1,2,'c']}))[:code]).to eq 404 }
|
62
|
+
it {expect((DbAccessor::Reader.select_by_id({model_name: "User",identifiers: [1,2,'c']}))[:code]).to eq 404 }
|
62
63
|
end
|
63
64
|
|
64
65
|
context "when one of the parameter is nil" do
|
@@ -83,5 +84,5 @@ describe DbAccessor::Reader do
|
|
83
84
|
|
84
85
|
end
|
85
86
|
|
86
|
-
|
87
|
+
|
87
88
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/writer_spec.rb
CHANGED
@@ -8,9 +8,9 @@ describe DbAccessor::Writer do
|
|
8
8
|
|
9
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
10
|
|
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
|
-
|
13
|
-
let(:engine) { {model_name: 'Engine',content: {name: 'engine'+nb.to_s,application_id: 2}} }
|
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
|
+
|
13
|
+
let(:engine) { {model_name: 'Engine',content: {engine_conf: {name: 'engine'+nb.to_s,action: ['LIKE','SHARE'],score: [2,5],algorithm: 'Person',type: 'UserBased', neighborhood: 5 }.to_json ,application_id: 2}} }
|
14
14
|
|
15
15
|
describe".write_object" do
|
16
16
|
|
@@ -31,35 +31,35 @@ describe DbAccessor::Writer do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
context "when the model_name contains numbers" do
|
34
|
-
it {expect((DbAccessor::Writer.write_object({model_name: 'DGH67889',content: user[:content]}))[:code]).to eq 400 }
|
34
|
+
it {expect((DbAccessor::Writer.write_object({model_name: 'DGH67889',content: user[:content]}))[:code]).to eq 400 }
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
context "when passed parameter's keys are incorrect" do
|
38
|
-
it {expect((DbAccessor::Writer.write_object({model: 'DGH67889',con: user[:content]}))[:code]).to eq 400 }
|
38
|
+
it {expect((DbAccessor::Writer.write_object({model: 'DGH67889',con: user[:content]}))[:code]).to eq 400 }
|
39
39
|
end
|
40
40
|
|
41
41
|
context "when the parameter is not a hash" do
|
42
|
-
it { expect((DbAccessor::Writer.write_object("coucou"))[:code]).to eq 400 }
|
42
|
+
it { expect((DbAccessor::Writer.write_object("coucou"))[:code]).to eq 400 }
|
43
43
|
end
|
44
44
|
|
45
45
|
context "when the parameter's keys are not correct" do
|
46
|
-
it { expect((DbAccessor::Writer.write_object({t: "coucou"}))[:code]).to eq 400 }
|
46
|
+
it { expect((DbAccessor::Writer.write_object({t: "coucou"}))[:code]).to eq 400 }
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
context "when required parameters are not given" do
|
50
|
-
user = {model_name: 'User',content: {firstname: 'ablaye', lastname: 'Dieng',gender: 'M'} }
|
50
|
+
user = {model_name: 'User',content: {firstname: 'ablaye', lastname: 'Dieng',gender: 'M'} }
|
51
51
|
it { expect((DbAccessor::Writer.write_object(user))[:code]).to eq 400 }
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
context "when required parameters are not correct" do
|
55
|
-
user = {model_name: 'User',content: {login: nb.to_s,password: 'passer',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'fatou',gender: 'M'}}
|
55
|
+
user = {model_name: 'User',content: {login: nb.to_s,password: 'passer',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'fatou',gender: 'M'}}
|
56
56
|
it { expect((DbAccessor::Writer.write_object(user))[:code]).to eq 400 }
|
57
57
|
end
|
58
58
|
|
59
59
|
context "when the content doesn't correspond to the model_name" do
|
60
60
|
it { expect((DbAccessor::Writer.write_object( {model_name: 'User',content: {name: 'Wiki',api_key: api_key,url: 'http://www.wiki.com',user_id: 2}} ))[:code]).to eq 400 }
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
context "when the content is incorrect" do
|
64
64
|
it { expect((DbAccessor::Writer.write_object( {model_name: 'Utilisateur',content: "coucou"} ))[:code]).to eq 400 }
|
65
65
|
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.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fabira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|