validic 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/.rspec +3 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +80 -0
- data/LICENSE.txt +22 -0
- data/README.md +61 -0
- data/Rakefile +7 -0
- data/lib/validic.rb +32 -0
- data/lib/validic/activity.rb +73 -0
- data/lib/validic/client.rb +74 -0
- data/lib/validic/diabetes.rb +81 -0
- data/lib/validic/fitness.rb +75 -0
- data/lib/validic/general_measurement.rb +113 -0
- data/lib/validic/nutrition.rb +81 -0
- data/lib/validic/organization.rb +46 -0
- data/lib/validic/profile.rb +43 -0
- data/lib/validic/request.rb +36 -0
- data/lib/validic/routine.rb +73 -0
- data/lib/validic/sleep.rb +77 -0
- data/lib/validic/third_party_app.rb +37 -0
- data/lib/validic/tobacco_cessation.rb +73 -0
- data/lib/validic/user.rb +71 -0
- data/lib/validic/version.rb +3 -0
- data/lib/validic/weight.rb +74 -0
- data/spec/.DS_Store +0 -0
- data/spec/spec_helper.rb +43 -0
- data/spec/validic/activity_spec.rb +97 -0
- data/spec/validic/client_spec.rb +11 -0
- data/spec/validic/diabetes_spec.rb +88 -0
- data/spec/validic/fitness_spec.rb +84 -0
- data/spec/validic/general_measurement_spec.rb +120 -0
- data/spec/validic/nutrition_spec.rb +90 -0
- data/spec/validic/organization_spec.rb +46 -0
- data/spec/validic/profile_spec.rb +46 -0
- data/spec/validic/routine_spec.rb +81 -0
- data/spec/validic/sleep_spec.rb +85 -0
- data/spec/validic/third_party_app_spec.rb +32 -0
- data/spec/validic/tobacco_cessation_spec.rb +80 -0
- data/spec/validic/user_spec.rb +49 -0
- data/spec/validic/weight_spec.rb +87 -0
- data/spec/validic_spec.rb +38 -0
- data/validic.gemspec +37 -0
- metadata +353 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Routine do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_routines" do
|
9
|
+
before do
|
10
|
+
@routine = client.get_routines({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Routine", vcr: true do
|
14
|
+
@routine.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@routine.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@routine.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_routine" do
|
27
|
+
it "should create new routine record" do
|
28
|
+
@new_routine = client.create_routine({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
31
|
+
steps: 10000,
|
32
|
+
stairs_climbed: 50,
|
33
|
+
calories_burned: 2500,
|
34
|
+
calories_consumed: 3000,
|
35
|
+
source: "Sample App"})
|
36
|
+
@new_routine.should_not be_nil
|
37
|
+
@new_routine.routine.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
38
|
+
@new_routine.routine.steps.should eq 10000.0
|
39
|
+
@new_routine.routine.stairs_climbed.should eq 50.0
|
40
|
+
@new_routine.routine.calories_burned.should eq 2500.0
|
41
|
+
@new_routine.routine.calories_consumed.should eq 3000.0
|
42
|
+
@new_routine.routine.source.should eq "Sample App"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "#get_routines by organization" do
|
47
|
+
before do
|
48
|
+
@routine = client.get_routines({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns JSON response of Validic::Routine", vcr: true do
|
52
|
+
@routine.should_not be_nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it "status 200" do
|
56
|
+
@routine.summary.status.should == 200
|
57
|
+
end
|
58
|
+
|
59
|
+
it "has summary node" do
|
60
|
+
@routine.summary.should_not be_nil
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "#get_routines by user" do
|
65
|
+
before do
|
66
|
+
@routine = client.get_routines({user_id: "519e24e16a7e0cc7ef00002c"})
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns JSON response of Validic::Routine", vcr: true do
|
70
|
+
@routine.should_not be_nil
|
71
|
+
end
|
72
|
+
|
73
|
+
it "status 200" do
|
74
|
+
@routine.summary.status.should == 200
|
75
|
+
end
|
76
|
+
|
77
|
+
it "has summary node" do
|
78
|
+
@routine.summary.should_not be_nil
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Sleep do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_sleeps" do
|
9
|
+
before do
|
10
|
+
@sleep = client.get_sleeps({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Sleep", vcr: true do
|
14
|
+
@sleep.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@sleep.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@sleep.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_sleep" do
|
27
|
+
it "should create new sleep record" do
|
28
|
+
@new_sleep = client.create_sleep({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
total_sleep: 210,
|
31
|
+
awake: 10,
|
32
|
+
deep: 120,
|
33
|
+
light: 50,
|
34
|
+
rem: 30,
|
35
|
+
times_woken: 3,
|
36
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
37
|
+
source: "Sample App"})
|
38
|
+
@new_sleep.should_not be_nil
|
39
|
+
@new_sleep.sleep.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
40
|
+
@new_sleep.sleep.total_sleep.should eq 210.0
|
41
|
+
@new_sleep.sleep.awake.should eq 10.0
|
42
|
+
@new_sleep.sleep.deep.should eq 120.0
|
43
|
+
@new_sleep.sleep.light.should eq 50.0
|
44
|
+
@new_sleep.sleep.rem.should eq 30.0
|
45
|
+
@new_sleep.sleep.times_woken.should eq 3.0
|
46
|
+
@new_sleep.sleep.source.should eq "Sample App"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "#get_sleeps by organization" do
|
51
|
+
before do
|
52
|
+
@sleep = client.get_sleeps({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns JSON response of Validic::Sleep", vcr: true do
|
56
|
+
@sleep.should_not be_nil
|
57
|
+
end
|
58
|
+
|
59
|
+
it "status 200" do
|
60
|
+
@sleep.summary.status.should == 200
|
61
|
+
end
|
62
|
+
|
63
|
+
it "has summary node" do
|
64
|
+
@sleep.summary.should_not be_nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context "#get_sleeps by user" do
|
69
|
+
before do
|
70
|
+
@sleep = client.get_sleeps({user_id: "519e24e16a7e0cc7ef00002c"})
|
71
|
+
end
|
72
|
+
|
73
|
+
it "returns JSON response of Validic::Sleep", vcr: true do
|
74
|
+
@sleep.should_not be_nil
|
75
|
+
end
|
76
|
+
|
77
|
+
it "status 200" do
|
78
|
+
@sleep.summary.status.should == 200
|
79
|
+
end
|
80
|
+
|
81
|
+
it "has summary node" do
|
82
|
+
@sleep.summary.should_not be_nil
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::ThirdPartyApp do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_apps" do
|
9
|
+
before do
|
10
|
+
@app_response = client.get_apps({organization_id: "519e24df6a7e0cc7ef000001", authentication_token: "mqwpDx8RYcmSFBJDmy3J"})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::ThirdPartyApp", vcr: true do
|
14
|
+
@app_response.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "has apps node" do
|
18
|
+
@app_response.apps.should_not be_nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#get_synced_apps" do
|
23
|
+
before do
|
24
|
+
@synced_app_response = client.get_synced_apps({authentication_token: "mqwpDx8RYcmSFBJDmy3J"})
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns JSON response of Validic::ThirdPartyApp", vcr: true do
|
28
|
+
@synced_app_response.should_not be_nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::TobaccoCessation do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_tobacco_cessation" do
|
9
|
+
before do
|
10
|
+
@tobacco_cessation = client.get_tobacco_cessations({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::TobaccoCessation", vcr: true do
|
14
|
+
@tobacco_cessation.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@tobacco_cessation.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@tobacco_cessation.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_tobacco_cessation" do
|
27
|
+
it "should create new tobacco_cessation record" do
|
28
|
+
@new_tobacco_cessation = client.create_tobacco_cessation({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
timestamp: "2013-05-01 07:12:16 -05:00",
|
31
|
+
cigarettes_allowed: 10,
|
32
|
+
cigarettes_smoked: 11,
|
33
|
+
cravings: 15,
|
34
|
+
last_smoked: "2013-05-16 07:12:16 -05:00",
|
35
|
+
source: "Sample App"})
|
36
|
+
@new_tobacco_cessation.should_not be_nil
|
37
|
+
@new_tobacco_cessation.tobacco_cessation.timestamp.should eq "2013-05-01 07:12:16 -05:00"
|
38
|
+
@new_tobacco_cessation.tobacco_cessation.cigarettes_allowed.should eq 10.0
|
39
|
+
@new_tobacco_cessation.tobacco_cessation.cigarettes_smoked.should eq 11.0
|
40
|
+
@new_tobacco_cessation.tobacco_cessation.cravings.should eq 15.0
|
41
|
+
@new_tobacco_cessation.tobacco_cessation.last_smoked.should eq "2013-05-16 07:12:16 -05:00"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "#get_tobacco_cessations by organization" do
|
46
|
+
before do
|
47
|
+
@tobacco_cessation = client.get_tobacco_cessations({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
48
|
+
end
|
49
|
+
|
50
|
+
it "returns JSON response of Validic::TobaccoCessation", vcr: true do
|
51
|
+
@tobacco_cessation.should_not be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it "status 200" do
|
55
|
+
@tobacco_cessation.summary.status.should == 200
|
56
|
+
end
|
57
|
+
|
58
|
+
it "has summary node" do
|
59
|
+
@tobacco_cessation.summary.should_not be_nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context "#get_tobacco_cessations by user" do
|
64
|
+
before do
|
65
|
+
@tobacco_cessation = client.get_tobacco_cessations({user_id: "519e24e16a7e0cc7ef00002c"})
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns JSON response of Validic::TobaccoCessation", vcr: true do
|
69
|
+
@tobacco_cessation.should_not be_nil
|
70
|
+
end
|
71
|
+
|
72
|
+
it "status 200" do
|
73
|
+
@tobacco_cessation.summary.status.should == 200
|
74
|
+
end
|
75
|
+
|
76
|
+
it "has summary node" do
|
77
|
+
@tobacco_cessation.summary.should_not be_nil
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::User do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#me" do
|
9
|
+
before do
|
10
|
+
@me = client.me({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::User", vcr: true do
|
14
|
+
@me.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return the user id" do
|
18
|
+
@me.user._id.should_not be_nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#user_provisioning" do
|
23
|
+
it "should create a new user under an organization" do
|
24
|
+
@new_user = client.user_provision(organization_id: "51964ba56a7e0c2417000029",
|
25
|
+
access_token: "ENTERPRISE_KEY",
|
26
|
+
uid: "123asdfg",
|
27
|
+
height: 167,
|
28
|
+
weight: 69,
|
29
|
+
location: "TX",
|
30
|
+
gender: "M")
|
31
|
+
@new_user.users.access_token.should_not be_nil
|
32
|
+
@new_user.users.profile.height.should eq "167"
|
33
|
+
@new_user.users.profile.weight.should eq 69
|
34
|
+
@new_user.users.profile.location.should eq 'TX'
|
35
|
+
@new_user.users.profile.gender.should eq 'M'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "#user_suspend" do
|
40
|
+
it "should suspend a user" do
|
41
|
+
@suspend_user = client.user_suspend(organization_id: "51c30eab6a7e0c1797000002",
|
42
|
+
user_id: "51c32e4d6a7e0c89cf000005",
|
43
|
+
access_token: "9c03ad2bcb022425944e4686d398ef8398f537c2f7c113495ffa7bc9cfa49286",
|
44
|
+
suspend: 1)
|
45
|
+
@suspend_user.message.should eq "The user has been suspended successfully"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Weight do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_weights" do
|
9
|
+
before do
|
10
|
+
@weight = client.get_weights({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Weight", vcr: true do
|
14
|
+
@weight.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@weight.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@weight.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_weight" do
|
27
|
+
it "should create new weight record" do
|
28
|
+
@new_weight = client.create_weight({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
31
|
+
bmi: 133.26,
|
32
|
+
fat_percent: 130.5,
|
33
|
+
mass_weight: 139.45,
|
34
|
+
free_mass: 140.50,
|
35
|
+
weight: 69.76,
|
36
|
+
height: 167.75,
|
37
|
+
source: "Sample App"})
|
38
|
+
|
39
|
+
@new_weight.should_not be_nil
|
40
|
+
@new_weight.weight.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
41
|
+
@new_weight.weight.bmi.should eq 133.26
|
42
|
+
@new_weight.weight.fat_percent.should eq 130.5
|
43
|
+
@new_weight.weight.mass_weight.should eq 139.45
|
44
|
+
@new_weight.weight.height.should eq "167.75"
|
45
|
+
@new_weight.weight.free_mass.should eq 140.50
|
46
|
+
@new_weight.weight.weight.should eq 69.76
|
47
|
+
@new_weight.weight.source.should eq "Sample App"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "#get_weights by organization" do
|
52
|
+
before do
|
53
|
+
@weight = client.get_weights({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns JSON response of Validic::Weight", vcr: true do
|
57
|
+
@weight.should_not be_nil
|
58
|
+
end
|
59
|
+
|
60
|
+
it "status 200" do
|
61
|
+
@weight.summary.status.should == 200
|
62
|
+
end
|
63
|
+
|
64
|
+
it "has summary node" do
|
65
|
+
@weight.summary.should_not be_nil
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context "#get_weights by user" do
|
70
|
+
before do
|
71
|
+
@weight = client.get_weights({user_id: "519e24e16a7e0cc7ef00002c"})
|
72
|
+
end
|
73
|
+
|
74
|
+
it "returns JSON response of Validic::Weight", vcr: true do
|
75
|
+
@weight.should_not be_nil
|
76
|
+
end
|
77
|
+
|
78
|
+
it "status 200" do
|
79
|
+
@weight.summary.status.should == 200
|
80
|
+
end
|
81
|
+
|
82
|
+
it "has summary node" do
|
83
|
+
@weight.summary.should_not be_nil
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "configure defaults" do
|
9
|
+
|
10
|
+
it "uses default API URL" do
|
11
|
+
# client.api_url.should eq 'https://api.validic.com'
|
12
|
+
client.api_url.should eq 'http://api.validic.dev' # Development URL for local testing
|
13
|
+
end
|
14
|
+
|
15
|
+
it "uses default API VERSION" do
|
16
|
+
client.api_version.should eq 'v1'
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
context "handles custom configuration" do
|
22
|
+
let(:new_client) { Validic::Client.new(api_url: 'https://api.validic.net', api_version: 'v2')}#, access_token: 'MYTOKEN')}
|
23
|
+
|
24
|
+
it "::Client API_URL configuration" do
|
25
|
+
new_client.api_url.should eq 'https://api.validic.net'
|
26
|
+
end
|
27
|
+
|
28
|
+
# it "::Client ACCESS_TOKEN configuration" do
|
29
|
+
# new_client.access_token.should eq 'MYTOKEN'
|
30
|
+
# end
|
31
|
+
|
32
|
+
it "::Client API_VERSION configuration" do
|
33
|
+
new_client.api_version.should eq 'v2'
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|