validic 0.2.1
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.
- 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,88 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Diabetes do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_diabetes" do
|
9
|
+
before do
|
10
|
+
@user_diabetes = client.get_diabetes({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Diabetes", vcr: true do
|
14
|
+
@user_diabetes.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@user_diabetes.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@user_diabetes.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_diabetes" do
|
27
|
+
it "should create new diabetes record" do
|
28
|
+
@new_diabetes = client.create_diabetes({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
c_peptide: 1,
|
31
|
+
fasting_plasma_glucose_test: 50,
|
32
|
+
hba1c: 100,
|
33
|
+
insulin: 350,
|
34
|
+
oral_glucose_tolerance_test: 100,
|
35
|
+
random_plasma_glucose_test: 200,
|
36
|
+
triglyceride: 100,
|
37
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
38
|
+
source: "Sample App"})
|
39
|
+
@new_diabetes.should_not be_nil
|
40
|
+
@new_diabetes.diabetes.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
41
|
+
@new_diabetes.diabetes.c_peptide.should eq 1.0
|
42
|
+
@new_diabetes.diabetes.fasting_plasma_glucose_test.should eq 50.0
|
43
|
+
@new_diabetes.diabetes.hba1c.should eq 100.0
|
44
|
+
@new_diabetes.diabetes.insulin.should eq 350.0
|
45
|
+
@new_diabetes.diabetes.oral_glucose_tolerance_test.should eq 100.0
|
46
|
+
@new_diabetes.diabetes.random_plasma_glucose_test.should eq 200.0
|
47
|
+
@new_diabetes.diabetes.triglyceride 100.0
|
48
|
+
@new_diabetes.diabetes.source.should eq "Sample App"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context "#get_diabetes by organization" do
|
53
|
+
before do
|
54
|
+
@org_diabetes = client.get_diabetes({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
55
|
+
end
|
56
|
+
|
57
|
+
it "returns JSON response of Validic::Diabetes", vcr: true do
|
58
|
+
@org_diabetes.should_not be_nil
|
59
|
+
end
|
60
|
+
|
61
|
+
it "status 200" do
|
62
|
+
@org_diabetes.summary.status.should == 200
|
63
|
+
end
|
64
|
+
|
65
|
+
it "has summary node" do
|
66
|
+
@org_diabetes.summary.should_not be_nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "#get_diabetes by user" do
|
71
|
+
before do
|
72
|
+
@user_diabetes = client.get_diabetes({user_id: "519e24e16a7e0cc7ef00002c"})
|
73
|
+
end
|
74
|
+
|
75
|
+
it "returns JSON response of Validic::Diabetes", vcr: true do
|
76
|
+
@user_diabetes.should_not be_nil
|
77
|
+
end
|
78
|
+
|
79
|
+
it "status 200" do
|
80
|
+
@user_diabetes.summary.status.should == 200
|
81
|
+
end
|
82
|
+
|
83
|
+
it "has summary node" do
|
84
|
+
@user_diabetes.summary.should_not be_nil
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Fitness do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_fitnesses" do
|
9
|
+
before do
|
10
|
+
@fitness = client.get_fitnesses({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Fitness", vcr: true do
|
14
|
+
@fitness.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@fitness.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@fitness.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_fitness" do
|
27
|
+
it "should create new fitness record" do
|
28
|
+
@new_fitness = client.create_fitness({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
timestamp: "2013-03-10 07:12:16 -05:00",
|
31
|
+
primary_type: "Running",
|
32
|
+
intensity: "medium",
|
33
|
+
start_time: "2013-03-09 13:55:36 -05:00",
|
34
|
+
total_distance: 5149.9,
|
35
|
+
duration: 1959.90,
|
36
|
+
source: "Sample App"})
|
37
|
+
|
38
|
+
@new_fitness.fitness.timestamp.should eq "2013-03-10 07:12:16 -05:00"
|
39
|
+
@new_fitness.fitness.type.should eq "Running"
|
40
|
+
@new_fitness.fitness.intensity.should eq "medium"
|
41
|
+
@new_fitness.fitness.start_time.should eq "2013-03-09 13:55:36 -05:00"
|
42
|
+
@new_fitness.fitness.total_distance.should eq 5149.9
|
43
|
+
@new_fitness.fitness.duration.should eq 1959.90
|
44
|
+
@new_fitness.fitness.source.should eq "Sample App"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "#get_fitnesses by organization" do
|
49
|
+
before do
|
50
|
+
@fitness = client.get_fitnesses({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns JSON response of Validic::Fitness", vcr: true do
|
54
|
+
@fitness.should_not be_nil
|
55
|
+
end
|
56
|
+
|
57
|
+
it "status 200" do
|
58
|
+
@fitness.summary.status.should == 200
|
59
|
+
end
|
60
|
+
|
61
|
+
it "has summary node" do
|
62
|
+
@fitness.summary.should_not be_nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "#get_fitnesses by user" do
|
67
|
+
before do
|
68
|
+
@fitness = client.get_fitnesses({user_id: "519e24e16a7e0cc7ef00002c"})
|
69
|
+
end
|
70
|
+
|
71
|
+
it "returns JSON response of Validic::Fitness", vcr: true do
|
72
|
+
@fitness.should_not be_nil
|
73
|
+
end
|
74
|
+
|
75
|
+
it "status 200" do
|
76
|
+
@fitness.summary.status.should == 200
|
77
|
+
end
|
78
|
+
|
79
|
+
it "has summary node" do
|
80
|
+
@fitness.summary.should_not be_nil
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::GeneralMeasurement do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_general_measurements" do
|
9
|
+
before do
|
10
|
+
@general_measurement = client.get_general_measurements({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::GeneralMeasurement", vcr: true do
|
14
|
+
@general_measurement.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@general_measurement.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@general_measurement.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_general_measurement" do
|
27
|
+
it "should create new general_measurement record" do
|
28
|
+
@new_general_measurement = client.create_general_measurement({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
31
|
+
blood_calcium: 7.6,
|
32
|
+
blood_chromium: 1.75,
|
33
|
+
blood_folic_acid: 4.4,
|
34
|
+
blood_magnesium: 1.24,
|
35
|
+
blood_potassium: 1.9,
|
36
|
+
blood_sodium: 122.1,
|
37
|
+
blood_vitamin_b12: 600,
|
38
|
+
blood_zinc: 120,
|
39
|
+
creatine_kinase: 75,
|
40
|
+
crp: 1,
|
41
|
+
diastolic: 72,
|
42
|
+
ferritin: 175,
|
43
|
+
hdl: 41,
|
44
|
+
hscrp: 0.91,
|
45
|
+
il6: 0.94,
|
46
|
+
resting_heartrate: 75,
|
47
|
+
systolic: 115,
|
48
|
+
testosterone: 255,
|
49
|
+
total_cholesterol: 150,
|
50
|
+
tsh: 0.8,
|
51
|
+
uric_acid: 7.4,
|
52
|
+
vitamin_d: 55.3,
|
53
|
+
white_cell_count: 7685.34,
|
54
|
+
source: "Sample App"})
|
55
|
+
@new_general_measurement.should_not be_nil
|
56
|
+
@new_general_measurement.general_measurement.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
57
|
+
@new_general_measurement.general_measurement.blood_calcium.should eq 7.6
|
58
|
+
@new_general_measurement.general_measurement.blood_chromium.should eq 1.75
|
59
|
+
@new_general_measurement.general_measurement.blood_folic_acid.should eq 4.4
|
60
|
+
@new_general_measurement.general_measurement.blood_magnesium.should eq 1.24
|
61
|
+
@new_general_measurement.general_measurement.blood_potassium.should eq 1.9
|
62
|
+
@new_general_measurement.general_measurement.blood_sodium.should eq 122.1
|
63
|
+
@new_general_measurement.general_measurement.blood_vitamin_b12.should eq 600.0
|
64
|
+
@new_general_measurement.general_measurement.blood_zinc.should eq 120.0
|
65
|
+
@new_general_measurement.general_measurement.creatine_kinase.should eq 75.0
|
66
|
+
@new_general_measurement.general_measurement.crp.should eq 1.0
|
67
|
+
@new_general_measurement.general_measurement.diastolic.should eq 72.0
|
68
|
+
@new_general_measurement.general_measurement.ferritin.should eq 175.0
|
69
|
+
@new_general_measurement.general_measurement.hdl.should eq 41.0
|
70
|
+
@new_general_measurement.general_measurement.hscrp.should eq 0.91
|
71
|
+
@new_general_measurement.general_measurement.il6.should eq 0.94
|
72
|
+
@new_general_measurement.general_measurement.resting_heartrate.should eq 75.0
|
73
|
+
@new_general_measurement.general_measurement.systolic.should eq 115.0
|
74
|
+
@new_general_measurement.general_measurement.testosterone.should eq 255.0
|
75
|
+
@new_general_measurement.general_measurement.total_cholesterol.should eq 150.0
|
76
|
+
@new_general_measurement.general_measurement.tsh.should eq 0.8
|
77
|
+
@new_general_measurement.general_measurement.uric_acid.should eq 7.4
|
78
|
+
@new_general_measurement.general_measurement.vitamin_d.should eq 55.3
|
79
|
+
@new_general_measurement.general_measurement.white_cell_count.should eq 7685.34
|
80
|
+
@new_general_measurement.general_measurement.source.should eq "Sample App"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "#get_general_measurements by organization" do
|
85
|
+
before do
|
86
|
+
@general_measurement = client.get_general_measurements({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
87
|
+
end
|
88
|
+
|
89
|
+
it "returns JSON response of Validic::GeneralMeasurement", vcr: true do
|
90
|
+
@general_measurement.should_not be_nil
|
91
|
+
end
|
92
|
+
|
93
|
+
it "status 200" do
|
94
|
+
@general_measurement.summary.status.should == 200
|
95
|
+
end
|
96
|
+
|
97
|
+
it "has summary node" do
|
98
|
+
@general_measurement.summary.should_not be_nil
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context "#get_general_measurements by user" do
|
103
|
+
before do
|
104
|
+
@general_measurement = client.get_general_measurements({user_id: "519e24e16a7e0cc7ef00002c"})
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns JSON response of Validic::GeneralMeasurement", vcr: true do
|
108
|
+
@general_measurement.should_not be_nil
|
109
|
+
end
|
110
|
+
|
111
|
+
it "status 200" do
|
112
|
+
@general_measurement.summary.status.should == 200
|
113
|
+
end
|
114
|
+
|
115
|
+
it "has summary node" do
|
116
|
+
@general_measurement.summary.should_not be_nil
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Nutrition do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_nutritions" do
|
9
|
+
before do
|
10
|
+
@nutrition = client.get_nutritions({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Nutrition", vcr: true do
|
14
|
+
@nutrition.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@nutrition.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@nutrition.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#create_nutrition" do
|
27
|
+
it "should create new nutrition record" do
|
28
|
+
@new_nutrition = client.create_nutrition({authentication_token: "mqwpDx8RYcmSFBJDmy3J",
|
29
|
+
access_token: "DEMO_KEY",
|
30
|
+
calories: 850,
|
31
|
+
carbohydrates: 351,
|
32
|
+
fat: 52,
|
33
|
+
fiber: 35,
|
34
|
+
protein: 54,
|
35
|
+
sodium: 855,
|
36
|
+
water: 36,
|
37
|
+
timestamp: "2013-05-16 07:12:16 -05:00",
|
38
|
+
meal: "Dinner",
|
39
|
+
source: "Sample App"})
|
40
|
+
@new_nutrition.should_not be_nil
|
41
|
+
@new_nutrition.nutrition.timestamp.should eq "2013-05-16 07:12:16 -05:00"
|
42
|
+
@new_nutrition.nutrition.calories.should eq 850.0
|
43
|
+
@new_nutrition.nutrition.carbohydrates.should eq 351.0
|
44
|
+
@new_nutrition.nutrition.fat.should eq 52.0
|
45
|
+
@new_nutrition.nutrition.fiber.should eq 35.0
|
46
|
+
@new_nutrition.nutrition.protein.should eq 54.0
|
47
|
+
@new_nutrition.nutrition.sodium.should eq 855.0
|
48
|
+
@new_nutrition.nutrition.water.should eq 36.0
|
49
|
+
@new_nutrition.nutrition.meal.should eq "Dinner"
|
50
|
+
@new_nutrition.nutrition.source.should eq "Sample App"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context "#get_nutritions by organization" do
|
55
|
+
before do
|
56
|
+
@nutrition = client.get_nutritions({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns JSON response of Validic::Nutrition", vcr: true do
|
60
|
+
@nutrition.should_not be_nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it "status 200" do
|
64
|
+
@nutrition.summary.status.should == 200
|
65
|
+
end
|
66
|
+
|
67
|
+
it "has summary node" do
|
68
|
+
@nutrition.summary.should_not be_nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "#get_nutritions by user" do
|
73
|
+
before do
|
74
|
+
@nutrition = client.get_nutritions({user_id: "519e24e16a7e0cc7ef00002c"})
|
75
|
+
end
|
76
|
+
|
77
|
+
it "returns JSON response of Validic::Nutrition", vcr: true do
|
78
|
+
@nutrition.should_not be_nil
|
79
|
+
end
|
80
|
+
|
81
|
+
it "status 200" do
|
82
|
+
@nutrition.summary.status.should == 200
|
83
|
+
end
|
84
|
+
|
85
|
+
it "has summary node" do
|
86
|
+
@nutrition.summary.should_not be_nil
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Organization do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_organization" do
|
9
|
+
before do
|
10
|
+
@organization_response = client.get_organization({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Organization", vcr: true do
|
14
|
+
@organization_response.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "status 200" do
|
18
|
+
@organization_response.summary.status.should == 200
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has summary node" do
|
22
|
+
@organization_response.summary.should_not be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "#get_users" do
|
27
|
+
before do
|
28
|
+
@users_response = client.get_users({organization_id: "519e24e16a7e0cc7ef00002b", access_token: "ENTERPRISE_KEY"})
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns JSON response of Validic::Organization", vcr: true do
|
32
|
+
@users_response.should_not be_nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it "status 200" do
|
36
|
+
@users_response.summary.status.should == 200
|
37
|
+
end
|
38
|
+
|
39
|
+
it "has summary node" do
|
40
|
+
@users_response.summary.should_not be_nil
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Validic::Profile do
|
5
|
+
|
6
|
+
let(:client) { Validic::Client.new }
|
7
|
+
|
8
|
+
context "#get_profile" do
|
9
|
+
before do
|
10
|
+
@profile = client.get_profile({})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns JSON response of Validic::Profile", vcr: true do
|
14
|
+
@profile.should_not be_nil
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# context "#update_profile" do
|
19
|
+
# before do
|
20
|
+
# @updated_profile = client.update_profile({gender: "M",
|
21
|
+
# location: "TX",
|
22
|
+
# birth_year: "1985",
|
23
|
+
# height: 168.75,
|
24
|
+
# weight: 69,
|
25
|
+
# first_name: "Demo",
|
26
|
+
# last_name: "User"})
|
27
|
+
# end
|
28
|
+
|
29
|
+
# it "should return gender" do
|
30
|
+
# @updated_profile.profile.gender.should eq 'M'
|
31
|
+
# end
|
32
|
+
|
33
|
+
# it "should return location" do
|
34
|
+
# @updated_profile.profile.location.should eq 'TX'
|
35
|
+
# end
|
36
|
+
|
37
|
+
# it "should return height" do
|
38
|
+
# @updated_profile.profile.height.should eq "168.75"
|
39
|
+
# end
|
40
|
+
|
41
|
+
# it "should return weight" do
|
42
|
+
# @updated_profile.profile.weight.should eq 69
|
43
|
+
# end
|
44
|
+
# end
|
45
|
+
|
46
|
+
end
|