recommender_api 0.0.1 → 0.0.2

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: 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