// // RCTAppleHealthKit+Methods_Sleep.m // RCTAppleHealthKit // // Created by Greg Wilson on 2016-11-06. // Copyright © 2016 Greg Wilson. All rights reserved. // #import "RCTAppleHealthKit+Methods_Sleep.h" #import "RCTAppleHealthKit+Queries.h" #import "RCTAppleHealthKit+Utils.h" @implementation RCTAppleHealthKit (Methods_Sleep) - (void)sleep_getSleepSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback { 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]; NSUInteger limit = [RCTAppleHealthKit uintFromOptions:input key:@"limit" withDefault:HKObjectQueryNoLimit]; [self fetchSleepCategorySamplesForPredicate:predicate limit:limit completion:^(NSArray *results, NSError *error) { if(results){ callback(@[[NSNull null], results]); return; } else { NSLog(@"error getting sleep samples: %@", error); callback(@[RCTMakeError(@"error getting sleep samples", nil, nil)]); return; } }]; } - (void)sleep_getSleepSamplesByAnchor:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback { NSUInteger limit = [RCTAppleHealthKit uintFromOptions:input key:@"limit" withDefault:HKObjectQueryNoLimit]; [self fetchSleepCategorySamplesForPredicateByAnchor:nil limit:limit completion:^(NSDictionary *results, NSError *error) { if(results){ callback(@[[NSNull null], results]); return; } else { NSLog(@"error getting sleep samples by anchor: %@", error); callback(@[RCTMakeError(@"error getting sleep samples by anchor", nil, nil)]); return; } }]; } @end