From 806ec3ceb9f29b591f0bdb8938dae3351b8c5ab8 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Wed, 29 Jun 2016 18:27:14 -0400 Subject: [PATCH] added utility functions to Utils --- RCTAppleHealthKit/RCTAppleHealthKit+Utils.h | 7 ++ RCTAppleHealthKit/RCTAppleHealthKit+Utils.m | 102 ++++++++++++++++++++ 2 files changed, 109 insertions(+) diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h index 3c44029..c4aa7eb 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.h @@ -24,4 +24,11 @@ + (NSDate *)endDateFromOptionsDefaultNow:(NSDictionary *)options; + (HKUnit *)hkUnitFromOptions:(NSDictionary *)options; ++ (HKUnit *)hkUnitFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(HKUnit *)defaultValue; ++ (NSUInteger)uintFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSUInteger)defaultValue; ++ (double)doubleFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(double)defaultValue; ++ (NSDate *)dateFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSDate *)defaultValue; ++ (NSString *)stringFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSString *)defaultValue; ++ (bool)boolFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(bool)defaultValue; + @end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m index 8191f96..01005e7 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Utils.m @@ -60,6 +60,7 @@ + + (double)doubleValueFromOptions:(NSDictionary *)options { double value = [[options objectForKey:@"value"] doubleValue]; return value; @@ -174,6 +175,107 @@ } ++ (HKUnit *)hkUnitFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(HKUnit *)defaultValue { + NSString *unitString = [options objectForKey:key]; + HKUnit *theUnit; + + if([unitString isEqualToString:@"gram"]){ + theUnit = [HKUnit gramUnit]; + } + if([unitString isEqualToString:@"pound"]){ + theUnit = [HKUnit poundUnit]; + } + if([unitString isEqualToString:@"meter"]){ + theUnit = [HKUnit meterUnit]; + } + if([unitString isEqualToString:@"inch"]){ + theUnit = [HKUnit inchUnit]; + } + if([unitString isEqualToString:@"foot"]){ + theUnit = [HKUnit footUnit]; + } + if([unitString isEqualToString:@"second"]){ + theUnit = [HKUnit secondUnit]; + } + if([unitString isEqualToString:@"minute"]){ + theUnit = [HKUnit minuteUnit]; + } + if([unitString isEqualToString:@"hour"]){ + theUnit = [HKUnit hourUnit]; + } + if([unitString isEqualToString:@"day"]){ + theUnit = [HKUnit dayUnit]; + } + if([unitString isEqualToString:@"joule"]){ + theUnit = [HKUnit jouleUnit]; + } + if([unitString isEqualToString:@"calorie"]){ + theUnit = [HKUnit calorieUnit]; + } + if([unitString isEqualToString:@"count"]){ + theUnit = [HKUnit countUnit]; + } + if([unitString isEqualToString:@"percent"]){ + theUnit = [HKUnit percentUnit]; + } + + if(theUnit == nil){ + theUnit = defaultValue; + } + + return theUnit; +} + + ++ (NSUInteger)uintFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSUInteger)defaultValue { + NSUInteger val; + NSNumber *num = [options objectForKey:key]; + if(num != nil){ + val = [num unsignedIntValue]; + } else { + val = defaultValue; + } + return val; +} + ++ (double)doubleFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(double)defaultValue { + double val; + NSNumber *num = [options objectForKey:key]; + if(num != nil){ + val = [num doubleValue]; + } else { + val = defaultValue; + } + return val; +} + ++ (NSDate *)dateFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSDate *)defaultValue { + NSString *dateString = [options objectForKey:key]; + NSDate *date; + if(dateString != nil){ + date = [RCTAppleHealthKit parseISO8601DateFromString:dateString]; + } else { + date = defaultValue; + } + return date; +} + ++ (NSString *)stringFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(NSString *)defaultValue { + NSString *str = [options objectForKey:key]; + if(str == nil){ + str = defaultValue; + } + return str; +} + ++ (bool)boolFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(bool)defaultValue { + NSNumber *num = [options objectForKey:key]; + if(num == nil){ + return defaultValue; + } + return [num boolValue]; +} + @end -- 2.26.2