Skip to content

Commit 34d988e

Browse files
committed
- Added delete insulin sample feature
1 parent eaa34b5 commit 34d988e

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

RCTAppleHealthKit/RCTAppleHealthKit+Methods_Results.h

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- (void)results_deleteBloodGlucoseSample:(NSString *)oid callback:(RCTResponseSenderBlock)callback;
1818
- (void)results_deleteCarbohydratesSample:(NSString *)oid callback:(RCTResponseSenderBlock)callback;
1919
- (void)results_saveInsulinDeliverySample:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;
20+
- (void)results_deleteInsulinDeliverySample:(NSString *)oid callback:(RCTResponseSenderBlock)callback;
2021
- (void)results_registerObservers:(RCTBridge *)bridge hasListeners:(bool)hasListeners;
2122

2223
@end

RCTAppleHealthKit/RCTAppleHealthKit+Methods_Results.m

+15
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,21 @@ - (void)results_deleteCarbohydratesSample:(NSString *)oid callback:(RCTResponseS
226226
}];
227227
}
228228

229+
- (void)results_deleteInsulinDeliverySample:(NSString *)oid callback:(RCTResponseSenderBlock)callback
230+
{
231+
HKQuantityType *insulinDeliveryType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierInsulinDelivery];
232+
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:oid];
233+
NSPredicate *uuidPredicate = [HKQuery predicateForObjectWithUUID:uuid];
234+
[self.healthStore deleteObjectsOfType:insulinDeliveryType predicate:uuidPredicate withCompletion:^(BOOL success, NSUInteger deletedObjectCount, NSError * _Nullable error) {
235+
if (!success) {
236+
NSLog(@"An error occured while deleting the insulin delivery sample %@. The error was: ", error);
237+
callback(@[RCTMakeError(@"An error occured while deleting the insulin delivery sample", error, nil)]);
238+
return;
239+
}
240+
callback(@[[NSNull null], @(deletedObjectCount)]);
241+
}];
242+
}
243+
229244
- (void)results_registerObservers:(RCTBridge *)bridge hasListeners:(bool)hasListeners
230245
{
231246
if (@available(iOS 11.0, *)) {

RCTAppleHealthKit/RCTAppleHealthKit.m

+6
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,12 @@ + (BOOL)requiresMainQueueSetup
484484
[self results_saveInsulinDeliverySample:input callback:callback];
485485
}
486486

487+
RCT_EXPORT_METHOD(deleteInsulinDeliverySample:(NSString *)oid callback:(RCTResponseSenderBlock)callback)
488+
{
489+
[self _initializeHealthStore];
490+
[self results_deleteInsulinDeliverySample:oid callback:callback];
491+
}
492+
487493
RCT_EXPORT_METHOD(saveCarbohydratesSample:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback)
488494
{
489495
[self _initializeHealthStore];

index.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,11 @@ declare module 'react-native-health' {
447447
callback: (err: string, results: HealthValue) => void,
448448
): void
449449

450+
deleteInsulinDeliverySample(
451+
id: string,
452+
callback: (error: string, result: HealthValue) => void,
453+
): void
454+
450455

451456
Constants: Constants
452457
}

0 commit comments

Comments
 (0)