recommender_api 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e15f137c185238a94cff4b12d9e2b9d8c14af32
4
- data.tar.gz: 5dead20d915c2492d0dbf8b35f73b98e665bf365
3
+ metadata.gz: 48427bdda282011938492f69cfeb88c7f9c184c5
4
+ data.tar.gz: 2d3f295e271c1bfd0bfbcde674bd8288fcfa92a6
5
5
  SHA512:
6
- metadata.gz: e1007962f79944aff9752e68f9f42bf1c517c9cfe8d447d0a8b68c4d5143c15aefc23103431790913f80d3c73f2ab7c42790cdc18cd5b7395f0fb9b425706418
7
- data.tar.gz: 1f81396b4706cbfd08ce919c1b0533eae7a349bf6c163ecb4253a5ac5d3281de69773c6ce4425da6acf725e697bc18f0797f91d65a58d80dec134b44c4787f4d
6
+ metadata.gz: 39121436b6105b01d0b1ca93da4477d585fdea217a57cad077c0d0c25ae990f72335e3faafe4fae34bf33af18b31c9708b7cca97bea706d33243ad0ab0956732
7
+ data.tar.gz: 222dbc6ddab6fce6412f2202f044bf0b0d9815b250b190fe9e0a5e79cc89e04c75a5bc8e2494c75572e5b53d65fa9dabf974ff3e72301dc866af098b8389cdbe
data/lib/api/handler.rb CHANGED
@@ -5,8 +5,8 @@ require 'dbAccessor'
5
5
  module Api
6
6
  class Handler
7
7
 
8
- def self.create_account(param)
9
- added = DbAccessor::Writer.write_object(param)
8
+ def self.create_object(param)
9
+ added = DbAccessor::Writer.write_object(param)
10
10
  if added[:code] == 201
11
11
  true
12
12
  else
@@ -16,12 +16,11 @@ class Handler
16
16
 
17
17
  def self.connect(param, option)
18
18
  found = AuthManager::Finder.find_object?(param, option)
19
- session_response = SessionManager::Handler.create_session(param, option) if found
20
- if session_response
21
- ((session_response[:code] == 200) && found)
22
- else
23
- false
24
- end
19
+ found ? SessionManager::Handler.create_session(param, option) : {code: 400, message: "User not connected"}
20
+ end
21
+
22
+ def self.condition_read(param)
23
+ DbAccessor::Reader.condition_select(param)
25
24
  end
26
25
 
27
26
  def self.valid_session(object, token, option)
data/lib/api/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Api
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/api/web.rb CHANGED
@@ -4,83 +4,31 @@ require_relative 'handler'
4
4
  module Api
5
5
  class Web < Sinatra::Base
6
6
 
7
- post '/apps' do
8
- if create(params)
9
- status 200
10
- body ['Successfully created!']
11
- else
12
- status 400
13
- body ['Sorry, an error occured']
14
- end
15
- end
16
-
17
7
 
18
- post '/users' do
19
- if create(params)
20
- status 200
21
- body ['Successfully created!']
22
- else
23
- status 400
24
- body ['Sorry, an error occured']
8
+ post '/apps/connect' do
9
+ if connect(params)[:code] == 200
10
+ status 200
11
+ body ['Successfully logged!']
12
+ else
13
+ status 400
14
+ body ['Sorry, an error occured']
15
+ end
25
16
  end
26
- end
27
-
28
- post '/users/connect' do
29
- if connect(params)
30
- status 200
31
- body ['Successfully logged!']
32
- else
33
- status 400
34
- body ['Sorry, an error occured']
17
+ after do
18
+ response
35
19
  end
36
- end
37
20
 
38
- post '/apps/connect' do
39
- if connect(params)
40
- status 200
41
- body ['Successfully logged!']
42
- else
43
- status 400
44
- body ['Sorry, an error occured']
45
- end
46
- end
47
- after do
48
- response
49
- end
21
+ private ################
50
22
 
51
- private ################
52
-
53
- def format_option(params)
54
- option = {}
55
- option = {user: true, app: false} if (params[:option][:user] == 'true')
56
- option = {user: false, app: true} if (params[:option][:app] == 'true')
57
- option
58
- end
59
-
60
- def format_object(params)
61
- if params[:object][:model_name] == 'User'
62
- login = params[:object][:content][:login]
63
- password = params[:object][:content][:password]
64
- firstname = params[:object][:content][:firstname]
65
- lastname = params[:object][:content][:lastname]
66
- email = params[:object][:content][:email]
67
- gender = params[:object][:content][:gender]
68
- object = {model_name: 'User',content: {login: login,password: password,firstname: firstname, lastname: lastname,email: email,gender: gender}}
69
- else
70
- name = params[:object][:content][:name]
71
- api_key = params[:object][:content][:api_key]
72
- url = params[:object][:content][:url]
73
- user_id = params[:object][:content][:user_id]
74
- object = {model_name: 'Application',content: {name: name,api_key: api_key,url: url,user_id: user_id}}
23
+ def format_option(params)
24
+ option = {}
25
+ option = {user: true, app: false} if (params[:option][:user] == 'true')
26
+ option = {user: false, app: true} if (params[:option][:app] == 'true')
27
+ option
75
28
  end
76
- end
77
29
 
78
- def create(params)
79
- Api::Handler.create_account(format_object(params))
80
- end
81
-
82
- def connect(params)
83
- Api::Handler.connect(params[:object].to_json, format_option(params))
30
+ def connect(params)
31
+ Api::Handler.connect(params[:object].to_json, format_option(params))
32
+ end
84
33
  end
85
34
  end
86
- end
data/spec/handler_spec.rb CHANGED
@@ -8,8 +8,9 @@ describe Api::Handler do
8
8
  let(:session_info) { {login: 'login', token: token} }
9
9
  nb = rand(1000)
10
10
  let(:a_user) {{model_name: 'User',content: {login: 'macoumba'+nb.to_s,password: 'passeraa',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'macoumba'+nb.to_s+'@gmail.com',gender: 'M'}} }
11
+ let(:param_for_read) { {model_name: 'User', condition: {login: a_user[:content][:login]}} }
11
12
 
12
- describe '#connect' do
13
+ describe '.connect' do
13
14
  before(:each) do
14
15
  AuthManager::Base.redis_del({list: 'users'})
15
16
  AuthManager::Base.redis_del({list: 'applications'})
@@ -19,44 +20,44 @@ describe Api::Handler do
19
20
  context 'When user connected' do
20
21
  it {
21
22
  swap_option_to('user')
22
- expect(Api::Handler.connect(user.to_json, opt)).to be_true
23
+ expect(Api::Handler.connect(user.to_json, opt)[:code]).to eq(200)
23
24
  }
24
25
  end
25
26
  context 'When app connected' do
26
27
  it {
27
28
  swap_option_to('app')
28
29
  app[:api_key] = 'api_key'
29
- expect(Api::Handler.connect(app.to_json, opt)).to be_true
30
+ expect(Api::Handler.connect(app.to_json, opt)[:code]).to eq(200)
30
31
  }
31
32
  end
32
33
  context 'When user fails to connect' do
33
34
  it {
34
35
  swap_option_to('user')
35
36
  user[:login] = 'not a login'
36
- expect(Api::Handler.connect(user.to_json, opt)).to be_false
37
+ expect(Api::Handler.connect(user.to_json, opt)[:code]).to eq(400)
37
38
  }
38
39
  end
39
40
  context 'When app fails to connect' do
40
41
  it {
41
42
  swap_option_to('app')
42
43
  app[:api_key] = 'not an api_key'
43
- expect(Api::Handler.connect(app.to_json, opt)).to be_false
44
+ expect(Api::Handler.connect(app.to_json, opt)[:code]).to eq(400)
44
45
  }
45
46
  end
46
47
  end
47
- describe '#create_account' do
48
+ describe '.create_object' do
48
49
  context 'When user account created' do
49
- it {
50
- expect(Api::Handler.create_account(a_user)).to be_true
50
+ it {
51
+ expect(Api::Handler.create_object(a_user)).to be_true
51
52
  }
52
53
  end
53
54
  context 'When user account not created' do
54
55
  it {
55
- expect(Api::Handler.create_account(a_user)).to be_false
56
+ expect(Api::Handler.create_object(a_user)).to be_false
56
57
  }
57
58
  end
58
59
  end
59
- describe '#valid_session' do
60
+ describe '.valid_session' do
60
61
  before(:each) do
61
62
  AuthManager::Base.redis_del({list: 'users'})
62
63
  AuthManager::Base.redis_del({list: 'applications_sessions'})
@@ -79,8 +80,20 @@ describe Api::Handler do
79
80
  }
80
81
  end
81
82
  end
83
+
84
+ describe '.condition_read' do
85
+ context 'Record found' do
86
+ it { expect(Api::Handler.condition_read(param_for_read)[:code]).to eq (200)}
87
+ end
88
+ context 'Record not found' do
89
+ it do
90
+ param_for_read[:condition][:login] = 'not a login'
91
+ expect(Api::Handler.condition_read(param_for_read)[:code]).to eq(404)
92
+ end
93
+ end
94
+ end
82
95
  #to do later
83
- describe '#request' do
96
+ describe '.request' do
84
97
 
85
98
  end
86
99
  end
data/spec/spec_helper.rb CHANGED
@@ -21,20 +21,10 @@ def parameter_for(object_type)
21
21
  end
22
22
  end
23
23
 
24
- def create_object_for(object_type)
25
- nb = rand(1000)
26
- api_key = UUID.generate
27
- if object_type == 'app'
28
- {object: {model_name: 'Application',content: {name: 'Axolot'+nb.to_s,api_key: api_key,url: 'http://www.wikimina'+nb.to_s+'.net',user_id: 3 }}}
29
- else
30
- {object: {model_name: 'User',content: {login: 'nana'+nb.to_s,password: 'passeraa',firstname: 'Ndeye Fatou', lastname: 'Dieng',email: 'nana'+nb.to_s+'@gmail.com',gender: 'M'}} }
31
- end
32
- end
33
-
34
24
  def bad_parameter_for(object_type)
35
25
  if object_type == 'user'
36
26
  {object: {login: 'not a login',password: 'not a password'}, option: {user: true,app: false} }
37
27
  else
38
- {object: {api_key: 'not an api_key'}, option: {user: false,app: true} }
28
+ {object: {api_key: 'this is not an api_key'}, option: {user: false,app: true} }
39
29
  end
40
30
  end
data/spec/web_spec.rb CHANGED
@@ -12,52 +12,10 @@ describe Api::Web do
12
12
 
13
13
  before(:all) do
14
14
  AuthManager::Base.redis_del({list: 'applications'})
15
- AuthManager::Base.redis_del({ list: 'users' })
16
- AuthManager::Base.redis_del({ list: 'users_sessions' })
17
15
  AuthManager::Base.redis_del({ list: 'applications_sessions' } )
18
- AuthManager::Base.redis_sadd({list: 'users',object: {login: 'a login',password: 'a password'}})
19
16
  AuthManager::Base.redis_sadd({list: 'applications',object: {api_key: 'an api_key'}})
20
17
  end
21
18
 
22
- context "POST '/apps'" do
23
- app = create_object_for('app')
24
- it "returns 200 when an object is created" do
25
- post '/apps', app
26
- expect(last_response.status).to eq(200)
27
- end
28
-
29
-
30
- it "returns 400 when the creation fails" do
31
- post '/apps', app
32
- expect(last_response.status).to eq(400)
33
- end
34
-
35
- end
36
-
37
- context "POST '/users'" do
38
- user = create_object_for('user')
39
- it "returns 200 when a object is created" do
40
- post '/users', user
41
- expect(last_response.status).to eq(200)
42
- end
43
-
44
-
45
- it "returns 400 when the creation fails" do
46
- post '/users', user
47
- expect(last_response.status).to eq(400)
48
- end
49
- end
50
-
51
- context 'When a user attemps to log in' do
52
- it 'returns 200 code status for success' do
53
- post '/users/connect', parameter_for('user')
54
- expect(last_response.status).to eq(200)
55
- end
56
- it 'returns 400 code status for faillure' do
57
- post '/users/connect', bad_parameter_for('user')
58
- expect(last_response.status).to eq(400)
59
- end
60
- end
61
19
 
62
20
  context 'When an app attemps to log in' do
63
21
  it 'returns 200 code status for success' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recommender_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - binette && atacraft
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-10 00:00:00.000000000 Z
11
+ date: 2014-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler