Skip to content

Commit

Permalink
Merge pull request #3 from AFGhazy/refactor
Browse files Browse the repository at this point in the history
Remove dependencies over literals and change method names
  • Loading branch information
AFGhazy committed Apr 27, 2018
2 parents 12fa893 + 9bbe1cc commit aa077aa
Show file tree
Hide file tree
Showing 9 changed files with 265 additions and 111 deletions.
1 change: 0 additions & 1 deletion RCTAppleHealthKit/RCTAppleHealthKit+Methods_Fitness.h
Expand Up @@ -18,6 +18,5 @@
- (void)fitness_getDistanceWalkingRunningOnDay:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;
- (void)fitness_getDistanceCyclingOnDay:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;
- (void)fitness_getFlightsClimbedOnDay:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;
- (void)fitness_getSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;

@end
29 changes: 0 additions & 29 deletions RCTAppleHealthKit/RCTAppleHealthKit+Methods_Fitness.m
Expand Up @@ -212,33 +212,4 @@ - (void)fitness_getFlightsClimbedOnDay:(NSDictionary *)input callback:(RCTRespon
}];
}

- (void)fitness_getSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback
{
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:[NSDate date]];
NSDate *endDate = [RCTAppleHealthKit dateFromOptions:input key:@"endDate" withDefault:[NSDate date]];

NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:startDate endDate:endDate options:HKQueryOptionStrictStartDate];

void (^completion)(NSArray *results, NSError *error);

completion = ^(NSArray *results, NSError *error) {
if(results){
callback(@[[NSNull null], results]);
return;
} else {
NSString *errMsg = [NSString stringWithFormat:@"Error getting samples: %@", error];
NSLog(errMsg);
callback(@[RCTMakeError(errMsg, nil, nil)]);
return;
}
};

[self fetchSamplesForPredicate: predicate
ascending:ascending
limit:limit
completion:completion];
}

@end
1 change: 1 addition & 0 deletions RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.h
Expand Up @@ -10,6 +10,7 @@

@interface RCTAppleHealthKit (Methods_Workout)

-(void)workout_get:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback;
-(void)workout_save: (NSDictionary *)input callback: (RCTResponseSenderBlock)callback;

@end
31 changes: 31 additions & 0 deletions RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m
Expand Up @@ -8,8 +8,39 @@

#import "RCTAppleHealthKit+Methods_Workout.h"
#import "RCTAppleHealthKit+Utils.h"
#import "RCTAppleHealthKit+Queries.h"

@implementation RCTAppleHealthKit (Methods_Workout)

- (void)workout_get:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback
{
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:[NSDate date]];
NSDate *endDate = [RCTAppleHealthKit dateFromOptions:input key:@"endDate" withDefault:[NSDate date]];

NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:startDate endDate:endDate options:HKQueryOptionStrictStartDate];

void (^completion)(NSArray *results, NSError *error);

completion = ^(NSArray *results, NSError *error) {
if(results){
callback(@[[NSNull null], results]);
return;
} else {
NSString *errMsg = [NSString stringWithFormat:@"Error getting samples: %@", error];
NSLog(errMsg);
callback(@[RCTMakeError(errMsg, nil, nil)]);
return;
}
};

[self fetchWorkoutForPredicate: predicate
ascending:ascending
limit:limit
completion:completion];
}

-(void)workout_save: (NSDictionary *)input callback: (RCTResponseSenderBlock)callback {
HKWorkoutActivityType type = [RCTAppleHealthKit hkWorkoutActivityTypeFromOptions:input key:@"type" withDefault:HKWorkoutActivityTypeAmericanFootball];
NSDate *startDate = [RCTAppleHealthKit dateFromOptions:input key:@"startDate" withDefault:nil];
Expand Down
2 changes: 1 addition & 1 deletion RCTAppleHealthKit/RCTAppleHealthKit+Queries.h
Expand Up @@ -45,7 +45,7 @@
limit:(NSUInteger)lim
completion:(void (^)(NSArray *, NSError *))completion;

- (void)fetchSamplesForPredicate: (NSPredicate *)predicate
- (void)fetchWorkoutForPredicate: (NSPredicate *)predicate
ascending: (BOOL)ascending
limit:(NSUInteger)limit
completion:(void (^)(NSArray *, NSError *))completion;
Expand Down
10 changes: 7 additions & 3 deletions RCTAppleHealthKit/RCTAppleHealthKit+Queries.m
Expand Up @@ -9,6 +9,7 @@

#import "RCTAppleHealthKit+Queries.h"
#import "RCTAppleHealthKit+Utils.h"
#import "RCTAppleHealthKit+TypesAndPermissions.h"

@implementation RCTAppleHealthKit (Queries)

Expand Down Expand Up @@ -437,7 +438,7 @@ - (void)fetchCumulativeSumStatisticsCollection:(HKQuantityType *)quantityType
[self.healthStore executeQuery:query];
}

- (void)fetchSamplesForPredicate: (NSPredicate *)predicate
- (void)fetchWorkoutForPredicate: (NSPredicate *)predicate
ascending: (BOOL)ascending
limit:(NSUInteger)limit
completion:(void (^)(NSArray *, NSError *))completion {
Expand All @@ -454,12 +455,16 @@ - (void)fetchSamplesForPredicate: (NSPredicate *)predicate

if(completion) {
NSMutableArray *data = [NSMutableArray arrayWithCapacity:1];
NSDictionary *numberToWorkoutNameDictionary = [RCTAppleHealthKit getNumberToWorkoutNameDictionary];

dispatch_async(dispatch_get_main_queue(), ^{
for (HKWorkout * sample in results) {
double energy = [[sample totalEnergyBurned] doubleValueForUnit:[HKUnit kilocalorieUnit]];
double distance = [[sample totalDistance] doubleValueForUnit:[HKUnit mileUnit]];
NSNumber *activityNumber = [NSNumber numberWithInt: [sample workoutActivityType]];

NSDictionary *elem = @{
@"activityName" : [NSNumber numberWithInt:[sample workoutActivityType]],
@"activityName" : [numberToWorkoutNameDictionary objectForKey: activityNumber],
@"calories" : @(energy),
@"distance" : @(distance),
@"start" : [RCTAppleHealthKit buildISO8601StringFromDate:sample.startDate],
Expand Down Expand Up @@ -497,7 +502,6 @@ - (void)fetchCholesterolForPredicate: (NSPredicate *)predicate
if(completion) {
NSMutableArray *data = [NSMutableArray arrayWithCapacity:1];
dispatch_async(dispatch_get_main_queue(), ^{
RCTLog([results componentsJoinedByString:@"\n"]);
for (HKQuantitySample *sample in results) {
double value = [[sample quantity] doubleValueForUnit:[HKUnit gramUnit]];
NSDictionary *elem = @{
Expand Down
1 change: 1 addition & 0 deletions RCTAppleHealthKit/RCTAppleHealthKit+TypesAndPermissions.h
Expand Up @@ -14,5 +14,6 @@
- (NSSet *)getReadPermsFromOptions:(NSArray *)options;
- (NSSet *)getWritePermsFromOptions:(NSArray *)options;
+ (NSDictionary *)getStringToWorkoutActivityTypeDictionary;
+ (NSDictionary *)getNumberToWorkoutNameDictionary;

@end

0 comments on commit aa077aa

Please sign in to comment.