recommender_api 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36c955fb73d46e02e901f2c6f4bc9920ec5eae86
4
- data.tar.gz: dde2ce0a3e0246da73eb116cfde9ee592ca625db
3
+ metadata.gz: 2e15f137c185238a94cff4b12d9e2b9d8c14af32
4
+ data.tar.gz: 5dead20d915c2492d0dbf8b35f73b98e665bf365
5
5
  SHA512:
6
- metadata.gz: be62a1890cc045758cada09fdf822b08054b93d51e0e786d2a051d3f039e654f7755ecdb97ab06e645ce64dec34a85125560c27f51d74c367a37329990fb8718
7
- data.tar.gz: f577d22c95567cda3bee2588a8393290134a982e522e37b108342dc8d5e997bd58cb9b543a72494d6b11fbffbbfd1f32b4f82197ac85f7b4dcc6bc525189382a
6
+ metadata.gz: e1007962f79944aff9752e68f9f42bf1c517c9cfe8d447d0a8b68c4d5143c15aefc23103431790913f80d3c73f2ab7c42790cdc18cd5b7395f0fb9b425706418
7
+ data.tar.gz: 1f81396b4706cbfd08ce919c1b0533eae7a349bf6c163ecb4253a5ac5d3281de69773c6ce4425da6acf725e697bc18f0797f91d65a58d80dec134b44c4787f4d
data/api.gemspec CHANGED
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.required_ruby_version = ">= 2.0"
23
23
  spec.add_development_dependency "bundler"
24
24
  spec.add_development_dependency "rake"
25
- spec.add_development_dependency "auth_manager"
25
+ spec.add_development_dependency "auth_manager"
26
+ spec.add_development_dependency "dbAccessor"
26
27
  spec.add_development_dependency "redis"
27
28
  spec.add_development_dependency "uuid"
28
29
  spec.add_development_dependency "session_manager"
@@ -30,4 +31,6 @@ Gem::Specification.new do |spec|
30
31
  spec.add_development_dependency "rack"
31
32
  spec.add_development_dependency "rspec"
32
33
  spec.add_development_dependency "rack-test"
34
+ spec.add_development_dependency "activerecord"
35
+ spec.add_development_dependency "pg"
33
36
  end
data/lib/api/handler.rb CHANGED
@@ -1,13 +1,14 @@
1
1
  require 'auth_manager'
2
2
  require 'session_manager'
3
+ require 'dbAccessor'
3
4
 
4
- class Api::Handler
5
+ module Api
6
+ class Handler
5
7
 
6
- def self.create_account(param, option)
7
- added = AuthManager::Adder.save?(param, option)
8
- session_response = SessionManager::Handler.create_session(param, option) if added
9
- if session_response
10
- (session_response[:code] == 200) && added
8
+ def self.create_account(param)
9
+ added = DbAccessor::Writer.write_object(param)
10
+ if added[:code] == 201
11
+ true
11
12
  else
12
13
  false
13
14
  end
@@ -45,3 +46,4 @@ class Api::Handler
45
46
  end
46
47
 
47
48
  end
49
+ end
data/lib/api/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Api
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/api/web.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  require 'sinatra'
2
2
  require_relative 'handler'
3
3
 
4
- class Api::Web < Sinatra::Application
4
+ module Api
5
+ class Web < Sinatra::Base
5
6
 
6
7
  post '/apps' do
7
8
  if create(params)
@@ -33,6 +34,7 @@ class Api::Web < Sinatra::Application
33
34
  body ['Sorry, an error occured']
34
35
  end
35
36
  end
37
+
36
38
  post '/apps/connect' do
37
39
  if connect(params)
38
40
  status 200
@@ -55,11 +57,30 @@ class Api::Web < Sinatra::Application
55
57
  option
56
58
  end
57
59
 
58
- def create(params)
59
- Api::Handler.create_account(params[:object].to_json, format_option(params))
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}}
75
+ end
76
+ end
77
+
78
+ def create(params)
79
+ Api::Handler.create_account(format_object(params))
60
80
  end
61
81
 
62
82
  def connect(params)
63
83
  Api::Handler.connect(params[:object].to_json, format_option(params))
64
84
  end
65
85
  end
86
+ end
data/spec/handler_spec.rb CHANGED
@@ -6,6 +6,9 @@ describe Api::Handler do
6
6
  let(:opt) { {user: true, app: false} }
7
7
  let(:token) { 'a token' }
8
8
  let(:session_info) { {login: 'login', token: token} }
9
+ nb = rand(1000)
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
+
9
12
  describe '#connect' do
10
13
  before(:each) do
11
14
  AuthManager::Base.redis_del({list: 'users'})
@@ -42,23 +45,14 @@ describe Api::Handler do
42
45
  end
43
46
  end
44
47
  describe '#create_account' do
45
- before(:each) do
46
- AuthManager::Base.redis_del({list: 'users'})
47
- AuthManager::Base.redis_del({list: 'applications'})
48
- end
49
48
  context 'When user account created' do
50
- it {
51
- swap_option_to('user')
52
- user[:login] = 'login'
53
- expect(Api::Handler.create_account(user.to_json, opt)).to be_true
49
+ it {
50
+ expect(Api::Handler.create_account(a_user)).to be_true
54
51
  }
55
52
  end
56
53
  context 'When user account not created' do
57
54
  it {
58
- user[:login] = 'login'
59
- swap_option_to('user')
60
- expect(Api::Handler.create_account(user.to_json, opt)).to be_true
61
- expect(Api::Handler.create_account(user.to_json, opt)).to be_false
55
+ expect(Api::Handler.create_account(a_user)).to be_false
62
56
  }
63
57
  end
64
58
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  require 'api'
2
+ require 'uuid'
3
+
4
+
2
5
 
3
6
  def swap_option_to(list)
4
7
  if list == 'user'
@@ -18,6 +21,16 @@ def parameter_for(object_type)
18
21
  end
19
22
  end
20
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
+
21
34
  def bad_parameter_for(object_type)
22
35
  if object_type == 'user'
23
36
  {object: {login: 'not a login',password: 'not a password'}, option: {user: true,app: false} }
@@ -0,0 +1,2 @@
1
+ require_relative '../lib/api/web'
2
+ Api::Web.run!
data/spec/web_spec.rb CHANGED
@@ -15,32 +15,35 @@ describe Api::Web do
15
15
  AuthManager::Base.redis_del({ list: 'users' })
16
16
  AuthManager::Base.redis_del({ list: 'users_sessions' })
17
17
  AuthManager::Base.redis_del({ list: 'applications_sessions' } )
18
+ AuthManager::Base.redis_sadd({list: 'users',object: {login: 'a login',password: 'a password'}})
19
+ AuthManager::Base.redis_sadd({list: 'applications',object: {api_key: 'an api_key'}})
18
20
  end
19
21
 
20
22
  context "POST '/apps'" do
23
+ app = create_object_for('app')
21
24
  it "returns 200 when an object is created" do
22
- post '/apps', parameter_for('app')
25
+ post '/apps', app
23
26
  expect(last_response.status).to eq(200)
24
27
  end
25
28
 
26
29
 
27
30
  it "returns 400 when the creation fails" do
28
- post '/apps', parameter_for('app')
31
+ post '/apps', app
29
32
  expect(last_response.status).to eq(400)
30
33
  end
31
34
 
32
35
  end
33
36
 
34
37
  context "POST '/users'" do
35
-
38
+ user = create_object_for('user')
36
39
  it "returns 200 when a object is created" do
37
- post '/users', parameter_for('user')
40
+ post '/users', user
38
41
  expect(last_response.status).to eq(200)
39
42
  end
40
43
 
41
44
 
42
45
  it "returns 400 when the creation fails" do
43
- post '/users', parameter_for('user')
46
+ post '/users', user
44
47
  expect(last_response.status).to eq(400)
45
48
  end
46
49
  end
@@ -61,6 +64,7 @@ describe Api::Web do
61
64
  post '/apps/connect', parameter_for('app')
62
65
  expect(last_response.status).to eq(200)
63
66
  end
67
+
64
68
  it 'returns 400 code status for faillure' do
65
69
  post '/apps/connect', bad_parameter_for('app')
66
70
  expect(last_response.status).to eq(400)
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.1
4
+ version: 0.0.2
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-05-28 00:00:00.000000000 Z
11
+ date: 2014-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dbAccessor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: redis
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,34 @@ dependencies:
150
164
  - - ">="
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: activerecord
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: pg
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
153
195
  description: Entry point of the as a service plateform
154
196
  email:
155
197
  - atacraft@gmail.com, fabira90@gmail.com
@@ -171,6 +213,7 @@ files:
171
213
  - lib/api/web.rb
172
214
  - spec/handler_spec.rb
173
215
  - spec/spec_helper.rb
216
+ - spec/test_sinatra.rb
174
217
  - spec/web_spec.rb
175
218
  homepage: ''
176
219
  licenses:
@@ -199,4 +242,5 @@ summary: Api for the recommender plateform
199
242
  test_files:
200
243
  - spec/handler_spec.rb
201
244
  - spec/spec_helper.rb
245
+ - spec/test_sinatra.rb
202
246
  - spec/web_spec.rb