Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//
// HCPPluginConfig.m
//
// Created by Nikolay Demyankov on 10.08.15.
//
#import "HCPPluginInternalPreferences.h"
#import "NSBundle+HCPExtension.h"
#import "HCPApplicationConfig.h"
#import "HCPFilesStructure.h"
#pragma mark JSON keys for plugin options
static NSString *const APPLICATION_BUILD_VERSION = @"app_build_version";
static NSString *const WWW_FOLDER_INSTALLED_FLAG = @"www_folder_installed";
static NSString *const PREVIOUS_RELEASE_VERSION_NAME = @"previous_release_version_name";
static NSString *const CURRENT_RELEASE_VERSION_NAME = @"current_release_version_name";
static NSString *const READY_FOR_INSTALLATION_RELEASE_VERSION_NAME = @"ready_for_installation_release_version_name";
@implementation HCPPluginInternalPreferences
#pragma mark Public API
+ (HCPPluginInternalPreferences *)defaultConfig {
HCPPluginInternalPreferences *pluginConfig = [[HCPPluginInternalPreferences alloc] init];
pluginConfig.appBuildVersion = [NSBundle applicationBuildVersion];
pluginConfig.wwwFolderInstalled = NO;
pluginConfig.previousReleaseVersionName = @"";
pluginConfig.readyForInstallationReleaseVersionName = @"";
HCPApplicationConfig *config = [HCPApplicationConfig configFromBundle:[HCPFilesStructure defaultConfigFileName]];
pluginConfig.currentReleaseVersionName = config.contentConfig.releaseVersion;
return pluginConfig;
}
#pragma mark HCPJsonConvertable implementation
+ (instancetype)instanceFromJsonObject:(id)json {
if (![json isKindOfClass:[NSDictionary class]]) {
return nil;
}
NSDictionary *jsonObject = json;
HCPPluginInternalPreferences *pluginConfig = [[HCPPluginInternalPreferences alloc] init];
pluginConfig.appBuildVersion = (NSString *)jsonObject[APPLICATION_BUILD_VERSION];
pluginConfig.wwwFolderInstalled = [(NSNumber *)jsonObject[WWW_FOLDER_INSTALLED_FLAG] boolValue];
pluginConfig.currentReleaseVersionName = (NSString *)jsonObject[CURRENT_RELEASE_VERSION_NAME];
pluginConfig.previousReleaseVersionName = (NSString *)jsonObject[PREVIOUS_RELEASE_VERSION_NAME];
pluginConfig.readyForInstallationReleaseVersionName = (NSString *)jsonObject[READY_FOR_INSTALLATION_RELEASE_VERSION_NAME];
return pluginConfig;
}
- (id)toJson {
NSMutableDictionary *jsonObject = [[NSMutableDictionary alloc] init];
jsonObject[APPLICATION_BUILD_VERSION] = self.appBuildVersion;
jsonObject[WWW_FOLDER_INSTALLED_FLAG] = [NSNumber numberWithBool:self.isWwwFolderInstalled];
jsonObject[PREVIOUS_RELEASE_VERSION_NAME] = self.previousReleaseVersionName;
jsonObject[CURRENT_RELEASE_VERSION_NAME] = self.currentReleaseVersionName;
jsonObject[READY_FOR_INSTALLATION_RELEASE_VERSION_NAME] = self.readyForInstallationReleaseVersionName;
return jsonObject;
}
@end