WANetworkRouting v0.0.3 Release Notes

Release Date: 2016-03-21 // about 8 years ago
  • ๐Ÿš€ This release brings the progress for download and mapping using NSProgress!

    [routingManager getObjectsAtPath:@"posts"
                          parameters:nil
                            progress:^(WAObjectRequest *objectRequest, NSProgress *uploadProgress, NSProgress *downloadProgress, NSProgress *mappingProgress) {
                                NSLog(@"downloadProgress: %f -> %@ โ€” mappingProgress: %f -> %@", downloadProgress.fractionCompleted, downloadProgress.localizedDescription, mappingProgress.fractionCompleted, mappingProgress.localizedDescription);
                            }
                             success:^(WAObjectRequest *objectRequest, WAObjectResponse *response, NSArray *mappedObjects) {
                             }
                             failure:^(WAObjectRequest *objectRequest, WAObjectResponse *response, id<WANRErrorProtocol> error) {
                             }];
    

    ๐Ÿ‘ By adding support of NSProgress, you can easily cancel the request. You have to call [downloadProgress cancel] and/or [mappingProgress cancel] depending on where you are on the task.

    • โž• Added a simple sample
    • You no longer have to create WAMapper or WAReverseMapper. Simply pass the store.

    Was

    WAMemoryStore *memoryStore = [[WAMemoryStore alloc] init];
    
    // Create both a mapper and a reverse mapper
    WAMapper *mapper               = [WAMapper newMapperWithStore:memoryStore];
    WAReverseMapper *reverseMapper = [WAReverseMapper new];
    
    // Create the mapping manager
    WAMappingManager *mappingManager = [WAMappingManager mappingManagerWithMapper:mapper
                                                                    reverseMapper:reverseMapper];
    

    is

    WAMemoryStore *memoryStore = [[WAMemoryStore alloc] init];
    
    // Create the mapping manager
    WAMappingManager *mappingManager = [WAMappingManager mappingManagerWithStore:memoryStore];
    
    • 0๏ธโƒฃ For registering default mapping blocks.

    Was

    // Add a default date formatter on mapper
    id(^toDateMappingBlock)(id ) = ^id(id value) {
        if ([value isKindOfClass:[NSString class]]) {
            return [dateFormatter dateFromString:value];
        }
    
        return value;
    };
    
    [mapper addDefaultMappingBlock:toDateMappingBlock
               forDestinationClass:[NSDate class]];
    

    is

    // Add a default date formatter on mapper
    id(^toDateMappingBlock)(id ) = ^id(id value) {
        if ([value isKindOfClass:[NSString class]]) {
            return [dateFormatter dateFromString:value];
        }
    
        return value;
    };
    
    [mappingManager addDefaultMappingBlock:toDateMappingBlock
                       forDestinationClass:[NSDate class]];