From db7e67c14ca75df7e800cc43254050b8cef43527 Mon Sep 17 00:00:00 2001 From: Daniele Volpi Date: Tue, 12 Jul 2016 10:30:00 +0200 Subject: [PATCH] added vitals methods. heart rate samples method --- .../RCTAppleHealthKit+Methods_Vitals.h | 15 +++++++ .../RCTAppleHealthKit+Methods_Vitals.m | 40 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.h create mode 100644 RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.m diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.h b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.h new file mode 100644 index 0000000..985d3a4 --- /dev/null +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.h @@ -0,0 +1,15 @@ +#import "RCTAppleHealthKit.h" + +@interface RCTAppleHealthKit (Methods_Vitals) + +- (void)vitals_getHeartRateSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +- (void)vitals_getBodyTemperatureSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +- (void)vitals_getBloodPressureSystolicSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +- (void)vitals_getBloodPressureDiastolicSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +- (void)vitals_getRespiratoryRateSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +@end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.m b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.m new file mode 100644 index 0000000..dc815f4 --- /dev/null +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Vitals.m @@ -0,0 +1,40 @@ +#import "RCTAppleHealthKit+Methods_Vitals.h" +#import "RCTAppleHealthKit+Queries.h" +#import "RCTAppleHealthKit+Utils.h" + +@implementation RCTAppleHealthKit (Methods_Vitals) + + +- (void)vitals_getHeartRateSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback +{ + HKQuantityType *heartRateType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate]; + + HKUnit *unit = [RCTAppleHealthKit hkUnitFromOptions:input key:@"unit" withDefault:[HKUnit countUnit]]; + NSUInteger limit = [RCTAppleHealthKit uintFromOptions:input key:@"limit" withDefault:HKObjectQueryNoLimit]; + BOOL ascending = [RCTAppleHealthKit boolFromOptions:input key:@"ascending" withDefault:false]; + NSDate *startDate = [RCTAppleHealthKit dateFromOptions:input key:@"startDate" withDefault:nil]; + NSDate *endDate = [RCTAppleHealthKit dateFromOptions:input key:@"endDate" withDefault:[NSDate date]]; + if(startDate == nil){ + callback(@[RCTMakeError(@"startDate is required in options", nil, nil)]); + return; + } + NSPredicate * predicate = [RCTAppleHealthKit predicateForSamplesBetweenDates:startDate endDate:endDate]; + + [self fetchQuantitySamplesOfType:heartRateType + unit:unit + predicate:predicate + ascending:ascending + limit:limit + completion:^(NSArray *results, NSError *error) { + if(results){ + callback(@[[NSNull null], results]); + return; + } else { + NSLog(@"error getting heart rate samples: %@", error); + callback(@[RCTMakeError(@"error getting heart rate samples", nil, nil)]); + return; + } + }]; +} + +@end -- 2.26.2