client_api 0.0.5 → 0.0.6

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