From 7d69de13afccd82891a28ffc215f3a960088c59b Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 28 Jun 2016 22:16:09 -0400 Subject: [PATCH] added TEMPORARY startDateFromOptions, endDateFromOptions, and endDateFromOptionsDefaultNow methods --- RCTAppleHealthKit/RCTAppleHealthKit+Utils.h | 4 ++ RCTAppleHealthKit/RCTAppleHealthKit+Utils.m | 48 ++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h index b2bfcaf..3c44029 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h @@ -14,10 +14,14 @@ + (NSString *)buildISO8601StringFromDate:(NSDate *)date; + (NSPredicate *)predicateForSamplesToday; + (NSPredicate *)predicateForSamplesOnDay:(NSDate *)date; ++ (NSPredicate *)predicateForSamplesBetweenDates:(NSDate *)startDate endDate:(NSDate *)endDate; + (NSPredicate *)predicateForSamplesOnDayFromTimestamp:(NSString *)timestamp; + (double)doubleValueFromOptions:(NSDictionary *)options; + (NSDate *)dateFromOptions:(NSDictionary *)options; + (NSDate *)dateFromOptionsDefaultNow:(NSDictionary *)options; ++ (NSDate *)startDateFromOptions:(NSDictionary *)options; ++ (NSDate *)endDateFromOptions:(NSDictionary *)options; ++ (NSDate *)endDateFromOptionsDefaultNow:(NSDictionary *)options; + (HKUnit *)hkUnitFromOptions:(NSDictionary *)options; @end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m index 58bef7c..8191f96 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m @@ -49,6 +49,15 @@ return [HKQuery predicateForSamplesWithStartDate:startDate endDate:endDate options:HKQueryOptionStrictStartDate]; } ++ (NSPredicate *)predicateForSamplesBetweenDates:(NSDate *)startDate endDate:(NSDate *)endDate { + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDate *start = [calendar startOfDayForDate:startDate]; + NSDate *end = endDate; +// NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:1 toDate:startDate options:0]; + return [HKQuery predicateForSamplesWithStartDate:startDate endDate:endDate options:HKQueryOptionStrictStartDate]; +} + + + (double)doubleValueFromOptions:(NSDictionary *)options { @@ -66,7 +75,6 @@ return date; } - + (NSDate *)dateFromOptionsDefaultNow:(NSDictionary *)options { NSString *dateString = [options objectForKey:@"date"]; if(dateString != nil){ @@ -81,6 +89,44 @@ return now; } + +//TODO: make a generic function that can return NSDate by key... have 'default now' as option + + ++ (NSDate *)startDateFromOptions:(NSDictionary *)options { + NSString *dateString = [options objectForKey:@"startDate"]; + NSDate *date; + if(dateString != nil){ + date = [RCTAppleHealthKit parseISO8601DateFromString:dateString]; + return date; + } + return date; +} + ++ (NSDate *)endDateFromOptions:(NSDictionary *)options { + NSString *dateString = [options objectForKey:@"endDate"]; + NSDate *date; + if(dateString != nil){ + date = [RCTAppleHealthKit parseISO8601DateFromString:dateString]; + } + return date; +} + ++ (NSDate *)endDateFromOptionsDefaultNow:(NSDictionary *)options { + NSString *dateString = [options objectForKey:@"endDate"]; + NSDate *date; + if(dateString != nil){ + date = [RCTAppleHealthKit parseISO8601DateFromString:dateString]; + return date; + } + if(date == nil){ + date = [NSDate date]; + } + return date; +} + + + + (HKUnit *)hkUnitFromOptions:(NSDictionary *)options { NSString *unitString = [options objectForKey:@"unit"]; HKUnit *theUnit; -- 2.26.2