Add error handling

This commit is contained in:
Jonathan Carter
2016-04-16 11:21:41 -07:00
parent 4bea6847e8
commit 3026c86556

View File

@@ -10,6 +10,7 @@ static NSString *const DownloadFileName = @"download.zip";
static NSString *const RelativeBundlePathKey = @"bundlePath";
static NSString *const StatusFile = @"codepush.json";
static NSString *const UpdateBundleFileName = @"app.jsbundle";
static NSString *const UpdateMetadataFileName = @"app.json";
static NSString *const UnzippedFolderName = @"unzipped";
#pragma mark - Public methods
@@ -46,7 +47,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
{
NSString *newUpdateHash = updatePackage[@"packageHash"];
NSString *newUpdateFolderPath = [self getPackageFolderPath:newUpdateHash];
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:@"app.json"];
NSString *newUpdateMetadataPath = [newUpdateFolderPath stringByAppendingPathComponent:UpdateMetadataFileName];
NSError *error;
if ([[NSFileManager defaultManager] fileExistsAtPath:newUpdateFolderPath]) {
@@ -290,6 +291,11 @@ static NSString *const UnzippedFolderName = @"unzipped";
+ (NSDictionary *)getCurrentPackage:(NSError **)error
{
NSString *packageHash = [CodePushPackage getCurrentPackageHash:error];
if (*error || !packageHash) {
return nil;
}
return [CodePushPackage getPackage:packageHash error:error];
}
@@ -318,8 +324,8 @@ static NSString *const UnzippedFolderName = @"unzipped";
+ (NSString *)getCurrentPackageHash:(NSError **)error
{
NSDictionary *info = [self getCurrentPackageInfo:error];
if (*error) {
return NULL;
if (*error || !info) {
return nil;
}
return info[@"currentPackage"];
@@ -353,7 +359,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
encoding:NSUTF8StringEncoding
error:error];
if (*error) {
return NULL;
return nil;
}
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
@@ -361,7 +367,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
options:kNilOptions
error:error];
if (*error) {
return NULL;
return nil;
}
return [json mutableCopy];
@@ -375,27 +381,25 @@ static NSString *const UnzippedFolderName = @"unzipped";
+ (NSDictionary *)getPackage:(NSString *)packageHash
error:(NSError **)error
{
NSString *folderPath = [self getPackageFolderPath:packageHash];
NSString *updateDirectoryPath = [self getPackageFolderPath:packageHash];
NSString *updateMetadataFilePath = [updateDirectoryPath stringByAppendingPathComponent:UpdateMetadataFileName];
if (!folderPath) {
return [NSDictionary dictionary];
if (![[NSFileManager defaultManager] fileExistsAtPath:updateMetadataFilePath]) {
return nil;
}
NSString *packageFilePath = [folderPath stringByAppendingPathComponent:@"app.json"];
NSString *updateMetadataString = [NSString stringWithContentsOfFile:updateMetadataFilePath
encoding:NSUTF8StringEncoding
error:error];
NSString *content = [NSString stringWithContentsOfFile:packageFilePath
encoding:NSUTF8StringEncoding
error:error];
if (!*error) {
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* jsonDict = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:error];
return jsonDict;
if (*error) {
return nil;
}
return NULL;
NSData *updateMetadata = [updateMetadataString dataUsingEncoding:NSUTF8StringEncoding];
return [NSJSONSerialization JSONObjectWithData:updateMetadata
options:kNilOptions
error:error];
}
+ (NSString *)getPackageFolderPath:(NSString *)packageHash
@@ -405,7 +409,12 @@ static NSString *const UnzippedFolderName = @"unzipped";
+ (NSDictionary *)getPreviousPackage:(NSError **)error
{
NSString *packageHash = [CodePushPackage getPreviousPackageHash:error];
NSString *packageHash = [self getPreviousPackageHash:error];
if (*error || !packageHash) {
return nil;
}
return [CodePushPackage getPackage:packageHash error:error];
}
@@ -413,7 +422,7 @@ static NSString *const UnzippedFolderName = @"unzipped";
{
NSDictionary *info = [self getCurrentPackageInfo:error];
if (*error) {
return NULL;
return nil;
}
return info[@"previousPackage"];