lib/dexcom/blood_glucose/class_methods.rb in dexcom-0.2.2 vs lib/dexcom/blood_glucose/class_methods.rb in dexcom-0.3.0

- old
+ new

@@ -1,7 +1,10 @@ # frozen_string_literal +require 'active_support' +require 'active_support/core_ext' + module Dexcom module BloodGlucoseUtils module ClassMethods DEFAULT_NUMBER_OF_VALUES = 1 MINUTES_PER_DATAPOINT = 5 @@ -12,22 +15,26 @@ def get_last(max_count: nil, minutes: nil) number_of_values = calculate_number_of_values(max_count, minutes) response = make_api_request(number_of_values) - process_api_response(response) + blood_glucose_values = process_api_response(response) + + if minutes.present? + blood_glucose_values.select! { |bg| bg.timestamp >= minutes.minutes.ago } + end + + blood_glucose_values end private def calculate_number_of_values(max_count, minutes) - if minutes.nil? - max_count || DEFAULT_NUMBER_OF_VALUES - elsif max_count.nil? - minutes / MINUTES_PER_DATAPOINT - else - [max_count, minutes / MINUTES_PER_DATAPOINT].min - end + return DEFAULT_NUMBER_OF_VALUES if (minutes.nil? && max_count.nil?) + return max_count if minutes.nil? + return (minutes / MINUTES_PER_DATAPOINT) if max_count.nil? + + [max_count, minutes / MINUTES_PER_DATAPOINT].min end end end end