client_api 0.0.5 → 0.0.6

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: 883253d3ae47c4132a521511271f056c2f52e79f
4
- data.tar.gz: aeb25348fd8139ae8e1a464d3e90761bd1d1863b
3
+ metadata.gz: a8e5d87f310ae57ea06b0282a36e015129420b48
4
+ data.tar.gz: 9f20f1165b4c16d1e27b9c64701acb2cc9f10a7f
5
5
  SHA512:
6
- metadata.gz: e44e30edc44430b4f7505b03d09058162d0e1d98bc580a959620a0c5eb6e1c0d3b68937aa22b4fee294ee3440e28867d3c241c2e34c30079fb726bf20222b6b8
7
- data.tar.gz: 8e7189827df613fccbe0c433ed873922af5bf5d014402a6614cfe13d5718226357325b42d1d32cfbedc7a04319e9b0815257f25172765ef031269b3e3055a204
6
+ metadata.gz: 812b9c852a358ffdb8e7ed164320e8b7b6472d03da1f4226f9d446872d2b828feef3a7442f42924387462d5ccc1d9152024fa90de9b4bca9dd2b83e64da6967d
7
+ data.tar.gz: 4c458de28d0639c77c12e48cd6ded1e32e317c482542c6e36846951cc221ff09effbf5c26edf86ebcc87a250a9d6238ab14b70c21cef01f73a282eee96f7a22d
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'redis'
2
3
  require 'rest-client'
3
4
  require_relative '../conf/conf_api'
4
5
 
@@ -10,8 +11,9 @@ class Handler
10
11
  end
11
12
 
12
13
  def self.load_data(params)
13
- waited_keys = [:engine_name,:data]
14
- if valid_reco_parameter(params,waited_keys)
14
+ waited_keys = [:engine_name,:data,:api_key,:token]
15
+ session = get_session_param(params[:api_key],params[:token])
16
+ if valid_reco_parameter(params,waited_keys) && valid_session(session)
15
17
  resp = invoke('/apps/load_data','POST',params)
16
18
  resp.code == 200 ? true : false
17
19
  else
@@ -20,8 +22,9 @@ class Handler
20
22
  end
21
23
 
22
24
  def self.similar_users(params)
23
- waited_keys = [:engine_name,:api_key,:id,:nb_wanted]
24
- if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params)
25
+ waited_keys = [:engine_name,:api_key,:id,:nb_wanted,:token]
26
+ session = get_session_param(params[:api_key],params[:token])
27
+ if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params) && valid_session(session)
25
28
  resp = invoke('/users/similar','POST',params)
26
29
  resp.code == 200 ? resp.body : false
27
30
  else
@@ -30,8 +33,9 @@ class Handler
30
33
  end
31
34
 
32
35
  def self.similar_items(params)
33
- waited_keys = [:engine_name,:api_key,:id,:nb_wanted]
34
- if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params)
36
+ waited_keys = [:engine_name,:api_key,:id,:nb_wanted,:token]
37
+ session = get_session_param(params[:api_key],params[:token])
38
+ if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params) && valid_session(session)
35
39
  resp = invoke('/items/similar','POST',params)
36
40
  resp.code == 200 ? resp.body : false
37
41
  else
@@ -40,8 +44,9 @@ class Handler
40
44
  end
41
45
 
42
46
  def self.recommend(params)
43
- waited_keys = [:engine_name,:api_key,:id,:nb_wanted]
44
- if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params)
47
+ waited_keys = [:engine_name,:api_key,:id,:nb_wanted,:token]
48
+ session = get_session_param(params[:api_key],params[:token])
49
+ if valid_reco_parameter(params,waited_keys) && valid_parameter_type?(params) && valid_session(session)
45
50
  resp = invoke('/users/recommend','POST',params)
46
51
  resp.code == 200 ? resp.body : false
47
52
  else
@@ -49,6 +54,11 @@ class Handler
49
54
  end
50
55
  end
51
56
 
57
+ def self.valid_session(param)
58
+ resp = invoke('/session/valid','GET',param)
59
+ resp.code == 200 ? true : false
60
+ end
61
+
52
62
  private #######################################
53
63
 
54
64
  def self.get_response(request,url,param)
@@ -56,6 +66,10 @@ class Handler
56
66
  response
57
67
  end
58
68
 
69
+ def self.get_session_param(api_key,token)
70
+ {object: {api_key: api_key}.to_json,token: token,option: {user: false,app: true}.to_json }
71
+ end
72
+
59
73
  def self.get_code(response)
60
74
  response.code
61
75
  end
@@ -181,7 +195,7 @@ class Handler
181
195
  def self.call_api(params,short_uri,rest_req,waited_keys)
182
196
  if validate(params,waited_keys)
183
197
  response = invoke(short_uri,rest_req,params)
184
- get_code(response) == 200 ? true : false
198
+ response == 400 ? false : response
185
199
  else
186
200
  false
187
201
  end
@@ -1,3 +1,3 @@
1
1
  module ClientApi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/spec/handler_spec.rb CHANGED
@@ -3,12 +3,17 @@ require_relative 'spec_helper'
3
3
 
4
4
  describe Handler do
5
5
  let(:app) {{ object: {api_key: 'an api_key'}.to_json, option: {user: false,app: true}.to_json }}
6
+ let(:app_session) {{object: {api_key: 'an api_key'}.to_json,token: "ncidjdojdojfdocv6777",option: {user: false,app: true}.to_json} }
6
7
  let(:redis) { Redis.current}
7
8
  let(:user) {{ object: {login: 'login',password: 'password'}, option: {user: true,app: false} }}
9
+ let(:fake_app_session) {{api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',token: 'token1'} }
10
+ let(:fake_app_session2) {{api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',token: 'token2'} }
8
11
 
9
12
  before (:each) do
10
13
  redis.del('applications')
11
14
  redis.del('users')
15
+ redis.sadd('applications',{api_key: 'an api_key'}.to_json)
16
+ redis.sadd('applications',{api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b'}.to_json)
12
17
  end
13
18
 
14
19
 
@@ -17,10 +22,13 @@ describe Handler do
17
22
  before (:each) do
18
23
  redis.sadd('applications',app[:object])
19
24
  redis.sadd('users',user[:object].to_json)
25
+ redis.sadd('applications_sessions',{api_key: 'an api_key',token: "ncidjdojdojfdocv6777"}.to_json)
26
+ redis.sadd('applications_sessions',fake_app_session.to_json)
27
+ redis.sadd('applications_sessions',fake_app_session2.to_json)
20
28
  end
21
29
 
22
30
  context "When an application attempts to log in" do
23
- it { expect(Handler.connect_app(app)).to eq true }
31
+ it { expect(Handler.connect_app(app)).to be_a String }
24
32
  end
25
33
 
26
34
  context "When a inexistant app attemps to log in" do
@@ -32,7 +40,7 @@ describe Handler do
32
40
  it { expect(Handler.connect_app("coucou")).to eq false }
33
41
  end
34
42
 
35
- context "When the parameter has not valid keys" do
43
+ context "When the parmeter has not valid keys" do
36
44
  invalid_param = {obj: {api_key: 'ap'}.to_json,opti: {user: false,app: true}.to_json}
37
45
  it { expect(Handler.connect_app(invalid_param)).to eq false }
38
46
  end
@@ -46,7 +54,7 @@ describe Handler do
46
54
  invalid_param = {object: {}.to_json,option: {user: false,app: true}.to_json}
47
55
  it { expect(Handler.connect_app(invalid_param)).to eq false }
48
56
 
49
- invalid_param = {object: nil,option: nil}
57
+ invalid_param = {oject: nil,option: nil}
50
58
  it { expect(Handler.connect_app(invalid_param)).to eq false }
51
59
  end
52
60
 
@@ -85,7 +93,7 @@ describe Handler do
85
93
 
86
94
  describe '.load_data' do
87
95
  context "When data are successfully load" do
88
- it {expect(Handler.load_data(params_to_load)).to eq true }
96
+ # it {expect(Handler.load_data(params_to_load)).to eq true }
89
97
  end
90
98
  end
91
99
 
@@ -137,4 +145,10 @@ describe Handler do
137
145
  it {expect(Handler.recommend(param)).to eq false }
138
146
  end
139
147
  end
148
+
149
+ describe '.valid_session' do
150
+ context "when app's session is found" do
151
+ it{expect(Handler.valid_session(app_session)).to eq true}
152
+ end
153
+ end
140
154
  end
data/spec/spec_helper.rb CHANGED
@@ -7,22 +7,22 @@ require 'json'
7
7
  def engine_data_sample
8
8
  engine_data = []
9
9
  engine_data << {customer_id: 1,item_id: 1,preference: 1}
10
- 100.times do
10
+ 10.times do
11
11
  engine_data << {customer_id: rand(1..5),item_id: rand(1..10),preference: rand(1..5)}
12
12
  end
13
13
  engine_data
14
14
  end
15
15
 
16
16
  def params_user_based
17
- {engine_name: 'eng869',api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',id: 1,nb_wanted: 2}
17
+ {engine_name: 'eng869',api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',token: 'token1',id: 1,nb_wanted: 2}
18
18
  end
19
19
 
20
20
  def params_item_based
21
- {engine_name: 'eng111',api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',id: 1,nb_wanted: 2}
21
+ {engine_name: 'eng111',api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',token: 'token2',id: 1,nb_wanted: 2}
22
22
  end
23
23
 
24
24
 
25
25
  def params_to_load
26
- {engine_name: 'eng111',data: engine_data_sample.to_json}
26
+ {engine_name: 'eng111',data: engine_data_sample.to_json,api_key: '926eb0b0-e99d-0131-7e06-080027ab4d7b',token: 'token2'}
27
27
  end
28
28
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: client_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'fabira && atakem '
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler