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 +4 -4
- data/lib/client_api/handler.rb +23 -9
- data/lib/client_api/version.rb +1 -1
- data/spec/handler_spec.rb +18 -4
- data/spec/spec_helper.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8e5d87f310ae57ea06b0282a36e015129420b48
|
4
|
+
data.tar.gz: 9f20f1165b4c16d1e27b9c64701acb2cc9f10a7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 812b9c852a358ffdb8e7ed164320e8b7b6472d03da1f4226f9d446872d2b828feef3a7442f42924387462d5ccc1d9152024fa90de9b4bca9dd2b83e64da6967d
|
7
|
+
data.tar.gz: 4c458de28d0639c77c12e48cd6ded1e32e317c482542c6e36846951cc221ff09effbf5c26edf86ebcc87a250a9d6238ab14b70c21cef01f73a282eee96f7a22d
|
data/lib/client_api/handler.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
198
|
+
response == 400 ? false : response
|
185
199
|
else
|
186
200
|
false
|
187
201
|
end
|
data/lib/client_api/version.rb
CHANGED
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
|
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
|
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 = {
|
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
|
-
|
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
|
-
|
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.
|
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-
|
11
|
+
date: 2014-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|