- (void) fetchResultsForSearch:(HNEquipmentSearch*) search then:(void (^)(NSArray* results, NSError * error))completionHandler {
if ([search.results count] > 0) {
completionHandler([search.results array], nil);
} else {
NSMutableDictionary *queryParams = [NSMutableDictionary dictionaryWithDictionary:
@{ @"within" : search.within,
@"lat" : search.latitude,
@"long" : search.longitude,
@"keyword" : (search.keyword ?: @"") }];
[[RKObjectManager sharedManager] getObjectsAtPath:@"equipment" parameters:queryParams
success: ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
//equipment has been saved in core data by now
for (HNEquipmentSearchResult *eqSR in mappingResult.array) {
// [eqSR setSearch:search]; // CRASHED
// [eqSR setValue:search forKey:@"search"]; // CRASHED
[search addResultsObject:eqSR]; // CRASHED
}
if (completionHandler)
completionHandler(mappingResult.array, nil);
}
failure: ^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Load failed with error: %@", error);
if (completionHandler)
completionHandler(nil, error);
}];
}