fitgem_oauth2 1.0.2 → 1.0.3

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: 2c0baa9844ef7be0f66170042cec30385ab5d2e5
4
- data.tar.gz: e1ccdc69b6a1763cf642532dab7494655b075b28
3
+ metadata.gz: 1852c3213510047e298bee0f2c887227a4d4b0bc
4
+ data.tar.gz: ca21defb34de418a6449654c5e080deb417174ee
5
5
  SHA512:
6
- metadata.gz: cc2840e23217566f0e460b54d4d4ba4c9c88f4251a8ac387e3403aedb6db10d76298cd7db1e244cacc8e232b1431d434b6dbedef79cce1cca3df17571cc7be1a
7
- data.tar.gz: 5364ff2b8515a6472cc4246397e39451400138d9aea9977d5e17137f96420e4e4e029f25107be69d41627a7dc8f076a3e0462bc46d70d6a8c50575e1b3171ea3
6
+ metadata.gz: 61604a94c8b95c1c38c2b33cf695b5dc1c9e3cd2dc42fc1694f055ed78e5481e13c012ecad21f0b092d6ab84aee31e1ee1d13a82e5460c0ee0c0b8e0a9415244
7
+ data.tar.gz: 78aca4f698224ea58dfe1c43e1a925c7a26d40559c6b2e8ac324c904889f30aa0d9346e0a91f8ae855376cf1ca57620adf7b1caa0216bc25b4a2af1c25c594ab
@@ -5,6 +5,8 @@ module FitgemOauth2
5
5
 
6
6
  ACTIVITY_PERIODS = %w(1d 7d 30d 1w 1m 3m 6m 1y max)
7
7
 
8
+ # retrieves daily activity summary for a date
9
+ # @param date the date for which the summary is retrieved
8
10
  def daily_activity_summary(date)
9
11
  get_call("user/#{user_id}/activities/date/#{format_date(date)}.json")
10
12
  end
@@ -13,6 +15,12 @@ module FitgemOauth2
13
15
  # Activity Time Series
14
16
  # ==================================
15
17
 
18
+ # retrieves activity time series, based on the arguments provided
19
+ # @param resource the resource for which the series needs to be retrieved. one of ALLOWED_RESOURCES
20
+ # @param start_date the start date for the series
21
+ # @param end_date the end date for the series. If specifying end_date, do not specify period
22
+ # @param period the period starting from start_date for which the series needs to be retrieved. If specifying period,
23
+ # do not use end_date
16
24
  def activity_time_series(resource: nil, start_date: nil, end_date: nil, period: nil)
17
25
 
18
26
  unless resource && ACTIVITY_RESOURCES.include?(resource)
@@ -37,8 +45,13 @@ module FitgemOauth2
37
45
  get_call(url + '.json')
38
46
  end
39
47
 
40
-
41
-
48
+ # retrieves intraday activity time series.
49
+ # @param resource (required) for which the intrady series is retrieved. one of 'calories', 'steps', 'distance', 'floors', 'elevation'
50
+ # @param start_date (required) start date for the series
51
+ # @param end_date (optional) end date for the series, if not specified, the series is for 1 day
52
+ # @param detail_level (required) level of detail for the series
53
+ # @param start_time (optional)start time for the series
54
+ # @param end_time the (optional)end time for the series. specify both start_time and end_time, if using either
42
55
  def intraday_activity_time_series(resource: nil, start_date: nil, end_date: nil, detail_level: nil,
43
56
  start_time: nil, end_time: nil)
44
57
 
@@ -82,18 +95,25 @@ module FitgemOauth2
82
95
  # Activity Logging Methods
83
96
  # ======================================
84
97
 
98
+ # logs activity using the params.
99
+ # @param params Hash to be posted. Refer https://dev.fitbit.com/docs/activity/#activity-logging for accepted
100
+ # POST parameters
85
101
  def log_activity(params)
86
102
  post_call("user/#{user_id}/activities.json", params)
87
103
  end
88
104
 
105
+ # deletes a logged activity
106
+ # @param id id of the activity log to be deleted
89
107
  def delete_logged_activity(id)
90
108
  delete_call("user/#{user_id}/activities/#{id}.json")
91
109
  end
92
110
 
111
+ # retrieves activity list for the user
93
112
  def activity_list
94
113
  get_call("user/#{user_id}/activities/list.json")
95
114
  end
96
115
 
116
+ # retrieves activity list in the tcx format
97
117
  def activity_tcx(id)
98
118
  get_call("user/#{user_id}/activities/#{id}.tcx")
99
119
  end
@@ -102,30 +122,43 @@ module FitgemOauth2
102
122
  # ======================================
103
123
  # Activity Types
104
124
  # ======================================
125
+
126
+ # Get a tree of all valid Fitbit public activities from the activities catalog as well
127
+ # as private custom activities the user created in the format requested. If the activity
128
+ # has levels, also get a list of activity level details
105
129
  def activities
106
- get_call("activities.json")
130
+ get_call('activities.json')
107
131
  end
108
132
 
133
+ # Returns the details of a specific activity in the Fitbit activities database in the format requested.
134
+ # @param id id of the activity for which the details need to be retrieved
109
135
  def activity(id)
110
136
  get_call("activities/#{id}.json")
111
137
  end
112
138
 
139
+ # gets frequent activities
113
140
  def frequent_activities
114
141
  get_call("user/#{user_id}/activities/frequent.json")
115
142
  end
116
143
 
144
+ # gets recent activities
117
145
  def recent_activities
118
146
  get_call("user/#{user_id}/activities/recent.json")
119
147
  end
120
148
 
149
+ # gets favorite activities
121
150
  def favorite_activities
122
151
  get_call("user/#{user_id}/activities/favorite.json")
123
152
  end
124
153
 
154
+ # adds the activity with the given ID to user's list of favorite activities.
155
+ # @param activity_id ID of the activity to be added to the list of favorite activities
125
156
  def add_favorite_activity(activity_id)
126
157
  post_call("user/#{user_id}/activities/log/favorite/#{activity_id}.json")
127
158
  end
128
159
 
160
+ # removes the activity with given ID from list of favorite activities.
161
+ # @param activity_id ID of the activity to be removed from favorite activity
129
162
  def remove_favorite_activity(activity_id)
130
163
  delete_call("user/#{user_id}/activities/log/favorite/#{activity_id}.json")
131
164
  end
@@ -134,6 +167,8 @@ module FitgemOauth2
134
167
  # Activity Goals
135
168
  # ======================================
136
169
 
170
+ # retrieve activity goals for a period
171
+ # @period the period for which the goals need to be retrieved. either 'weekly' or 'daily'
137
172
  def goals(period)
138
173
  unless period && %w(daily weekly).include?(period)
139
174
  raise FitgemOauth2::InvalidArgumentError, "Goal period should either be 'daily' or 'weekly'"
@@ -141,6 +176,9 @@ module FitgemOauth2
141
176
  get_call("user/#{user_id}/activities/goals/#{period}.json")
142
177
  end
143
178
 
179
+ # update activity goals
180
+ # @param period period for the goal ('weekly' or 'daily')
181
+ # @param params the POST params for the request. Refer to Fitbit documentation for accepted format
144
182
  def update_activity_goals(period, params)
145
183
  unless period && %w(daily weekly).include?(period)
146
184
  raise FitgemOauth2::InvalidArgumentError, "Goal period should either be 'daily' or 'weekly'"
@@ -148,6 +186,7 @@ module FitgemOauth2
148
186
  post_call("user/#{user_id}/activities/goals/#{period}.json", params)
149
187
  end
150
188
 
189
+ # retrieves lifetime statistics for the user
151
190
  def lifetime_stats
152
191
  get_call("user/#{user_id}/activities.json")
153
192
  end
@@ -9,6 +9,11 @@ module FitgemOauth2
9
9
  # Boday Fat
10
10
  # ======================================
11
11
 
12
+ # retrieves a list of all user's body fat log entries
13
+ # note: provide either end_date or period
14
+ # @param start_date start date for the logs
15
+ # @param end_date (optional)end date for the logs
16
+ # @param period (optional) period for the logs
12
17
  def body_fat_logs(start_date: nil, end_date: nil, period: nil)
13
18
  unless start_date
14
19
  raise FitgemOauth2::InvalidArgumentError, 'must specify start_date'
@@ -31,10 +36,14 @@ module FitgemOauth2
31
36
  get_call(url)
32
37
  end
33
38
 
39
+ # logs body fat
40
+ # @param params POST parameters for logging body fat
34
41
  def log_body_fat(params)
35
42
  post_call("user/#{user_id}/body/log/fat.json", params)
36
43
  end
37
44
 
45
+ # delete logged body fat
46
+ # @param id ID of the log to be deleted.
38
47
  def delete_logged_body_fat(id)
39
48
  delete_call("user/#{user_id}/body/log/fat/#{id}.json")
40
49
  end
@@ -44,6 +53,11 @@ module FitgemOauth2
44
53
  # Body Time Series
45
54
  # ==================================
46
55
 
56
+ # retrieve body time series for the user; provide at least one of end_date and period
57
+ # @param resource (required)the resource requested ['bmi', 'fat', or 'weight']
58
+ # @param start_date (required)the start date for the series
59
+ # @param end_date (optional)the end date for the series
60
+ # @param period (optional)period for the time series. valid periods are BODY_TIME_SERIES_PERIODS
47
61
  def body_time_series(resource: nil, start_date: nil, end_date: nil, period: nil)
48
62
  unless resource && start_date
49
63
  raise FitgemOauth2::InvalidArgumentError, 'resource and start_date are required parameters. Please specify both.'
@@ -78,6 +92,8 @@ module FitgemOauth2
78
92
  # Body Goals
79
93
  # ======================================
80
94
 
95
+ # retrieves body goals based on the type specified
96
+ # @param type 'fat' or 'weight'
81
97
  def body_goals(type)
82
98
  if type && BODY_GOALS.include?(type)
83
99
  get_call("user/#{user_id}/body/log/#{type}/goal.json")
@@ -86,10 +102,14 @@ module FitgemOauth2
86
102
  end
87
103
  end
88
104
 
105
+ # update body fat goal
106
+ # @param params POST params for updating body fat goal
89
107
  def update_body_fat_goal(params)
90
108
  post_call("user/#{user_id}/body/log/fat/goal.json", params)
91
109
  end
92
110
 
111
+ # update weight goal
112
+ # @param params POST params for updating weight goal
93
113
  def update_weight_goal(params)
94
114
  post_call("user/#{user_id}/body/log/weight/goal.json", params)
95
115
  end
@@ -98,6 +118,10 @@ module FitgemOauth2
98
118
  # Body Weight
99
119
  # ======================================
100
120
 
121
+ # retrieve weight logs; specify either the end_date or period
122
+ # @param start_date start date for the logs
123
+ # @param end_date (optional)end_date for the logs
124
+ # @param period (optional)period for the logs
101
125
  def weight_logs(start_date: nil, end_date: nil, period: nil)
102
126
  unless start_date
103
127
  raise FitgemOauth2::InvalidArgumentError, 'start_date not specified.'
@@ -123,11 +147,14 @@ module FitgemOauth2
123
147
  get_call(url + '.json')
124
148
  end
125
149
 
126
-
150
+ # logs weight for the user
151
+ # @param params POST message for logging weight
127
152
  def log_weight(params)
128
153
  post_call("user/#{user_id}/body/log/weight.json", params)
129
154
  end
130
155
 
156
+ # delete logged weight
157
+ # @param id ID of the weight log to be deleted
131
158
  def delete_logged_weight(id)
132
159
  delete_call("user/#{user_id}/body/log/weight/#{id}.json")
133
160
  end
@@ -4,6 +4,8 @@ module FitgemOauth2
4
4
  # ==================================
5
5
  # Devices
6
6
  # ==================================
7
+
8
+ # return list of Fitbit devices linked to the account
7
9
  def devices
8
10
  get_call("user/#{user_id}/devices.json")
9
11
  end
@@ -11,18 +13,31 @@ module FitgemOauth2
11
13
  # ==================================
12
14
  # Alarams
13
15
  # ==================================
16
+
17
+ # returns list of alarams for the tracker ID
18
+ # @param tracker_id ID for the tracker for which alarams need to be retrieved
14
19
  def alarms(tracker_id)
15
20
  get_call("user/#{user_id}/devices/tracker/#{tracker_id}/alarms.json")
16
21
  end
17
22
 
23
+ # adds an alaram
24
+ # @param tracker_id ID of the tracker to which the alaram needs to be added
25
+ # @param params POST parameters for adding the alarm
18
26
  def add_alarm(tracker_id, params)
19
27
  post_call("user/#{user_id}/devices/tracker/#{tracker_id}/alarms.json", params)
20
28
  end
21
29
 
30
+ # update an existing alarm
31
+ # @param tracker_id ID of the tracker to which alaram needs to be added.
32
+ # @param alarm_id ID of the alarm that needs to be updated
33
+ # @param params POST parameters for updating the alarm
22
34
  def update_alarm(tracker_id, alarm_id, params)
23
35
  post_call("user/#{user_id}/devices/tracker/#{tracker_id}/alarms/#{alarm_id}.json", params)
24
36
  end
25
37
 
38
+ # removes an existing alaram
39
+ # @param tracker_id ID of the tracker from which alaram needs to be removed
40
+ # @params alarm_id ID of the alaram that needs to be removed
26
41
  def remove_alarm(tracker_id, alarm_id)
27
42
  delete_call("user/#{user_id}/devices/tracker/#{tracker_id}/alarms/#{alarm_id}.json")
28
43
  end
@@ -1,9 +1,11 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
+ # retrieves list of friends for the current user
3
4
  def friends
4
5
  get_call("user/#{user_id}/friends.json")
5
6
  end
6
7
 
8
+ # retrieves leaderboard for the user
7
9
  def friends_leaderboard
8
10
  get_call("user/#{user_id}/friends/leaderboard.json")
9
11
  end
@@ -12,14 +14,20 @@ module FitgemOauth2
12
14
  # Friend Invitations
13
15
  # ==================================
14
16
 
17
+ # send an invitation to a friend
18
+ # @param params POST parameters for sending friend invite.
15
19
  def invite_friend(params)
16
20
  post_call("user/#{user_id}/friends/invitations.json", params)
17
21
  end
18
22
 
23
+ # retrieve list of friend invitations
19
24
  def friend_invitations
20
25
  get_call("user/#{user_id}/friends/invitations.json")
21
26
  end
22
27
 
28
+ # respond to a friend invite
29
+ # @param from_user_id the ID of the friend
30
+ # @param params POST parameters for responding to the invite.
23
31
  def respond_to_invitation(from_user_id, params)
24
32
  post_call("user/#{user_id}/friends/invitations/#{from_user_id}.json", params)
25
33
  end
@@ -28,6 +36,7 @@ module FitgemOauth2
28
36
  # Badges
29
37
  # ==================================
30
38
 
39
+ # retrieve badges for the user
31
40
  def badges
32
41
  get_call("user/#{user_id}/badges.json")
33
42
  end
@@ -4,6 +4,7 @@ module FitgemOauth2
4
4
  HR_PERIODS = %w(1d 7d 30d 1w 1m)
5
5
  HR_DETAIL_LEVELS = %w(1sec 1min)
6
6
 
7
+ # retrieve heartrate time series
7
8
  def heartrate_time_series(start_date: nil, end_date: nil, period: nil)
8
9
  unless start_date
9
10
  raise FitgemOauth2::InvalidArgumentError, 'Start date not provided.'
@@ -28,6 +29,7 @@ module FitgemOauth2
28
29
  get_call(url + '.json')
29
30
  end
30
31
 
32
+ # retrieve intraday series for heartrate
31
33
  def intraday_heartrate_time_series(start_date: nil, end_date: nil, detail_level: nil, start_time: nil, end_time: nil)
32
34
  unless start_date
33
35
  raise FitgemOauth2::InvalidArgumentError, 'Start date not provided.'
@@ -5,18 +5,28 @@ module FitgemOauth2
5
5
  SLEEP_RESOURCES = %w(startTime timeInBed minutesAsleep awakeningsCount minutesAwake minutesToFallAsleep minutesAfterWakeup efficiency)
6
6
  SLEEP_PERIODS = %w(1d 7d 30d 1w 1m 3m 6m 1y max)
7
7
 
8
+ # retrieve sleep logs for a date
9
+ # @param date date for which sleep logs needs to be accessed
8
10
  def sleep_logs(date)
9
11
  get_call("user/#{user_id}/sleep/date/#{format_date(date)}.json")
10
12
  end
11
13
 
14
+ # retrieve sleep goal for the user
12
15
  def sleep_goal
13
16
  get_call("user/#{user_id}/sleep/goal.json")
14
17
  end
15
18
 
19
+ # update sleep goal
20
+ # @param params POST parameters for updating sleep goal
16
21
  def update_sleep_goal(params)
17
22
  post_call("user/#{user_id}/sleep/goal.json", params)
18
23
  end
19
24
 
25
+ # retrieve time series data for sleep
26
+ # @param resource sleep resource to be requested
27
+ # @param start_date starting date for sleep time series
28
+ # @param end_date ending date for sleep time series
29
+ # @param period period for sleep time series
20
30
  def sleep_time_series(resource: nil, start_date: nil, end_date: nil, period: nil)
21
31
  unless start_date
22
32
  raise FitgemOauth2::InvalidArgumentError, 'Start date not provided.'
@@ -41,10 +51,14 @@ module FitgemOauth2
41
51
  get_call(url + '.json')
42
52
  end
43
53
 
54
+ # log sleep
55
+ # @param params POST params for creating sleep log
44
56
  def log_sleep(params)
45
57
  post_call("user/#{user_id}/sleep.json", params)
46
58
  end
47
59
 
60
+ # deleted sleep log
61
+ # @param log_id ID of the sleep log that needs to be removed.
48
62
  def delete_logged_sleep(log_id)
49
63
  delete_call("user/#{user_id}/sleep/#{log_id}.json")
50
64
  end
@@ -1,3 +1,3 @@
1
1
  module FitgemOauth2
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fitgem_oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ankit Gupta
@@ -112,3 +112,4 @@ signing_key:
112
112
  specification_version: 4
113
113
  summary: Fitbit API client library
114
114
  test_files: []
115
+ has_rdoc: