- Fix vari

This commit is contained in:
Giuseppe Nucifora 2016-02-03 02:01:13 +01:00
parent 07ae0d3b42
commit 41c856b3c9
18 changed files with 794 additions and 681 deletions

View File

@ -71,7 +71,44 @@
ReferencedContainer = "container:PNObject.xcodeproj"> ReferencedContainer = "container:PNObject.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "NSZombieEnabled"
value = "YES"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "NSAutoreleaseFreedObjectCheckEnabled"
value = "YES"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "NSDebugEnabled"
value = "YES"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
<AdditionalOptions> <AdditionalOptions>
<AdditionalOption
key = "DYLD_INSERT_LIBRARIES"
value = "/usr/lib/libgmalloc.dylib"
isEnabled = "YES">
</AdditionalOption>
<AdditionalOption
key = "NSZombieEnabled"
value = "YES"
isEnabled = "YES">
</AdditionalOption>
<AdditionalOption
key = "MallocGuardEdges"
value = ""
isEnabled = "YES">
</AdditionalOption>
<AdditionalOption
key = "MallocScribble"
value = ""
isEnabled = "YES">
</AdditionalOption>
</AdditionalOptions> </AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction

View File

@ -18,15 +18,15 @@
// Override point for customization after application launch. // Override point for customization after application launch.
[PNObjectConfig initSharedInstanceForEnvironments:@{ EnvironmentDevelopment : @"https://development.it/api/v1", [PNObjectConfig initSharedInstanceForEnvironments:@{ EnvironmentDevelopment : @"https://development.it/api/v1",
EnvironmentStage : @"https://stage.it/api/v1", EnvironmentStage : @"https://stage.it/api/v1",
EnvironmentProduction : @"http://pnobjectdemo.giuseppenucifora.com/" EnvironmentProduction : @"https://pnobject.giuseppenucifora.com/"
}]; }];
[[PNObjectConfig sharedInstance] setEnvironment:Production]; [[PNObjectConfig sharedInstance] setEnvironment:Production];
[[[PNObjectConfig sharedInstance] manager] setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]]; //[[[PNObjectConfig sharedInstance] manager] setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]];
[[PNObjectConfig sharedInstance] manager].securityPolicy.allowInvalidCertificates = YES; //[[PNObjectConfig sharedInstance] manager].securityPolicy.allowInvalidCertificates = YES;
//[PNObject get];*/ //[PNObject get];*/
/*
PNUser *user = [PNUser currentUser]; PNUser *user = [PNUser currentUser];
//NSLog(@"user : %@",[user getJSONObject]); //NSLog(@"user : %@",[user getJSONObject]);
@ -49,9 +49,24 @@
[user setFirstName:@"Angela"]; [user setFirstName:@"Angela"];
[user setLastName:@"Sapienza"]; [user setLastName:@"Sapienza"];
[user getJSONObject]; [user getJSONObject];*/
NSLog(@"%@",[PNUser PNObjClassName]);
[[[PNObjectConfig sharedInstance] manager] GET:[[[PNObjectConfig sharedInstance] PNObjEndpoint] stringByAppendingString:[PNAccessToken PNObjClassName]] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
PNAccessToken *accessToken = [[PNAccessToken alloc] initWithJSON:responseObject];
NSLog(@"%@",[accessToken getJSONObject]);
[accessToken saveLocally];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
//NSLog(@"%@",userDictionary); //NSLog(@"%@",userDictionary);
/* /*

View File

@ -28,7 +28,7 @@ PODS:
- NSString-Helper (1.0.2) - NSString-Helper (1.0.2)
- nv-ios-http-status (0.0.1) - nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1) - PEAR-FileManager-iOS (1.3.1)
- PNObject (0.1.0): - PNObject (0.2.3):
- AFNetworking - AFNetworking
- CodFis-Helper - CodFis-Helper
- NSDate_Utils - NSDate_Utils
@ -69,7 +69,7 @@ SPEC CHECKSUMS:
NSString-Helper: 0ee74919829a332f9838fa87b28cb2d1d991e92c NSString-Helper: 0ee74919829a332f9838fa87b28cb2d1d991e92c
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3 PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: b71ba455c15aedd1233cdf02bcf65d348d96da72 PNObject: 7bd9bb008740ecb0d8e5a8ab58606a4eb4d10132
Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2
StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b
UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4 UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4

View File

@ -1,7 +1,7 @@
{ {
"name": "PNObject", "name": "PNObject",
"version": "0.1.0", "version": "0.2.3",
"summary": "PNObject.", "summary": "PNObject is a simple replica of the more complex ParseObject",
"homepage": "https://github.com/giuseppenucifora/PNObject", "homepage": "https://github.com/giuseppenucifora/PNObject",
"license": "MIT", "license": "MIT",
"authors": { "authors": {
@ -9,7 +9,7 @@
}, },
"source": { "source": {
"git": "https://github.com/giuseppenucifora/PNObject.git", "git": "https://github.com/giuseppenucifora/PNObject.git",
"tag": "0.1.0" "tag": "0.2.3"
}, },
"platforms": { "platforms": {
"ios": "7.0" "ios": "7.0"

View File

@ -28,7 +28,7 @@ PODS:
- NSString-Helper (1.0.2) - NSString-Helper (1.0.2)
- nv-ios-http-status (0.0.1) - nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1) - PEAR-FileManager-iOS (1.3.1)
- PNObject (0.1.0): - PNObject (0.2.3):
- AFNetworking - AFNetworking
- CodFis-Helper - CodFis-Helper
- NSDate_Utils - NSDate_Utils
@ -69,7 +69,7 @@ SPEC CHECKSUMS:
NSString-Helper: 0ee74919829a332f9838fa87b28cb2d1d991e92c NSString-Helper: 0ee74919829a332f9838fa87b28cb2d1d991e92c
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3 PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: b71ba455c15aedd1233cdf02bcf65d348d96da72 PNObject: 7bd9bb008740ecb0d8e5a8ab58606a4eb4d10132
Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2
StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b
UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4 UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@
buildForArchiving = "YES"> buildForArchiving = "YES">
<BuildableReference <BuildableReference
BuildableIdentifier = 'primary' BuildableIdentifier = 'primary'
BlueprintIdentifier = '4FB4437C636DCECA1396EC4C' BlueprintIdentifier = 'E35BB1A0261F32B3489855CF'
BlueprintName = 'PNObject' BlueprintName = 'PNObject'
ReferencedContainer = 'container:Pods.xcodeproj' ReferencedContainer = 'container:Pods.xcodeproj'
BuildableName = 'PNObject.framework'> BuildableName = 'PNObject.framework'>

View File

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.1.0</string> <string>0.2.3</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

View File

@ -1,15 +1,16 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "PNAccessToken.h"
#import "PNAddress.h"
#import "PNInstallation.h"
#import "PNLocation.h"
#import "PNUser.h"
#import "PNObject+PNObjectConnection.h" #import "PNObject+PNObjectConnection.h"
#import "PNObject+Protected.h" #import "PNObject+Protected.h"
#import "PNObject.h" #import "PNObject.h"
#import "PNObjectConfig.h" #import "PNObjectConfig.h"
#import "PNObjectConstants.h" #import "PNObjectConstants.h"
#import "PNObjectModel.h" #import "PNObjectModel.h"
#import "PNObjectProperty.h"
#import "PNAddress.h"
#import "PNLocation.h"
#import "PNUser.h"
FOUNDATION_EXPORT double PNObjectVersionNumber; FOUNDATION_EXPORT double PNObjectVersionNumber;
FOUNDATION_EXPORT const unsigned char PNObjectVersionString[]; FOUNDATION_EXPORT const unsigned char PNObjectVersionString[];

View File

@ -13,7 +13,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>BNDL</string> <string>BNDL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.1.0</string> <string>0.2.3</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

View File

@ -8,7 +8,7 @@
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = "PNObject" s.name = "PNObject"
s.version = "0.2.3" s.version = "0.2.4"
s.summary = "PNObject is a simple replica of the more complex ParseObject" s.summary = "PNObject is a simple replica of the more complex ParseObject"
# This description is used to generate tags and improve search results. # This description is used to generate tags and improve search results.

View File

@ -6,7 +6,7 @@
// //
// //
#import <PNObject/PNObject.h> #import "PNObject.h"
@interface PNAccessToken : PNObject @interface PNAccessToken : PNObject
@ -14,6 +14,20 @@ typedef NS_ENUM(NSInteger, TokenType) {
TokenTypeBasic = 1, TokenTypeBasic = 1,
TokenTypeBearer = 2 TokenTypeBearer = 2
}; };
/**
* gets singleton object of current user session.
*
* @return singleton
*/
+ (instancetype _Nonnull) currentUser;
///--------------------------------------
#pragma mark - PNAccessToken Properties
///--------------------------------------
/** /**
* <#Description#> * <#Description#>
*/ */
@ -22,9 +36,18 @@ typedef NS_ENUM(NSInteger, TokenType) {
* <#Description#> * <#Description#>
*/ */
@property (nonatomic, strong, nullable) NSDate *expirationDate; @property (nonatomic, strong, nullable) NSDate *expirationDate;
@property (nonatomic, strong, nullable) NSNumber *expiresIn;
/** /**
* <#Description#> * <#Description#>
*/ */
@property (nonatomic) TokenType tokenType; @property (nonatomic) TokenType tokenType;
@property (nonatomic, strong, nullable) NSString *tokenTypeString;
@property (nonatomic, strong, nullable) NSString *scope;
@property (nonatomic, strong, nullable) NSString *refreshToken;
@end @end

View File

@ -7,6 +7,7 @@
// //
#import "PNAccessToken.h" #import "PNAccessToken.h"
#import <NSDate_Utils/NSDate+NSDate_Util.h>
@interface PNAccessToken() <PNObjectSubclassing> @interface PNAccessToken() <PNObjectSubclassing>
@ -19,13 +20,35 @@
+ (NSDictionary *)objcetMapping { + (NSDictionary *)objcetMapping {
NSDictionary *mapping = @{ NSDictionary *mapping = @{
@"accessToken":@"accessToken", @"accessToken":@"access_token",
@"expirationDate":@"expirationDate", @"expiresIn":@"expires_in",
@"tokenType":@"tokenType", @"tokenTypeString":@"token_type",
@"tokenType":@"scope",
@"refreshToken":@"refresh_token",
}; };
return mapping; return mapping;
} }
- (instancetype) initWithJSON:(NSDictionary *)JSON {
self = [super initWithJSON:JSON];
if (self) {
((void (^)())@{
@"beaer" : ^{
_tokenType = TokenTypeBearer;
},
@"basic" : ^{
_tokenType = TokenTypeBasic;
}
}[_tokenTypeString] ?: ^{
})();
_expirationDate = [[NSDate date] dateByAddingHours:[_expiresIn integerValue]];
}
return self;
}
+ (NSString *)objectClassName { + (NSString *)objectClassName {
return @"AccessToken"; return @"AccessToken";
} }
@ -38,7 +61,4 @@
@end @end

View File

@ -7,7 +7,7 @@
// //
#import "PNObject.h" #import "PNObject.h"
#import "PNAccessToken.h"
@interface PNUser : PNObject @interface PNUser : PNObject
@ -33,7 +33,7 @@
//- (void) setPassword:(NSString * _Nonnull)password inBackGroundWithBlock:(nullable void (^)(BOOL saveStatus, id responseObject, NSError * error)) responseBlock; //- (void) setPassword:(NSString * _Nonnull)password inBackGroundWithBlock:(nullable void (^)(BOOL saveStatus, id responseObject, NSError * error)) responseBlock;
///-------------------------------------- ///--------------------------------------
#pragma mark - PNLocation Properties #pragma mark - PNUser Properties
///-------------------------------------- ///--------------------------------------
/** /**

View File

@ -27,6 +27,9 @@
NSDictionary *properties = [PNObject propertiesForClass:self.class]; NSDictionary *properties = [PNObject propertiesForClass:self.class];
for (NSString *propertyName in properties) { for (NSString *propertyName in properties) {
if ([propertyName isEqualToString:@"description"] || [propertyName isEqualToString:@"debugDescription"]) {
continue;
}
[self addObserver:self forKeyPath:propertyName options:NSKeyValueObservingOptionNew context:nil]; [self addObserver:self forKeyPath:propertyName options:NSKeyValueObservingOptionNew context:nil];
} }
@ -39,8 +42,11 @@
NSString *mappedJSONType; NSString *mappedJSONType;
NSString *propertyType = [properties valueForKey:propertyName]; NSString *propertyType = [properties valueForKey:propertyName];
NSLogDebug(@"%@",self.objectMapping);
id mappingValue = [self.objectMapping valueForKey:propertyName]; NSLogDebug(@"%@",[[self class] objcetMapping]);
id mappingValue = [[[self class] objcetMapping] valueForKey:propertyName];
if([mappingValue isKindOfClass:NSDictionary.class]) { if([mappingValue isKindOfClass:NSDictionary.class]) {
mappedJSONKey = [mappingValue valueForKey:@"key"]; mappedJSONKey = [mappingValue valueForKey:@"key"];
@ -55,7 +61,7 @@
} }
// Get JSON value for the mapped key // Get JSON value for the mapped key
id value = [JSON valueForKeyPath:propertyName]; id value = [JSON valueForKeyPath:mappedJSONKey];
((void (^)())@{ ((void (^)())@{

View File

@ -259,6 +259,7 @@
return _JSON; return _JSON;
} }
- (NSDictionary* _Nonnull) getJSONObject { - (NSDictionary* _Nonnull) getJSONObject {
if (!_JSON) { if (!_JSON) {
return [self reverseMapping]; return [self reverseMapping];
@ -307,7 +308,9 @@
- (id _Nonnull) saveLocally { - (id _Nonnull) saveLocally {
return [_objectModel saveLocally:self]; __weak id weakSelf = self;
return [_objectModel saveLocally:weakSelf];
} }
- (BOOL) autoRemoveLocally { - (BOOL) autoRemoveLocally {
@ -318,20 +321,26 @@
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{ {
[_JSON setObject:[change objectForKey:@"new"] forKey:keyPath]; NSLogDebug(@"%@",[[[self class] objcetMapping] objectForKey:keyPath]);
[_JSON setObject:[change objectForKey:@"new"] forKey:[[[self class] objcetMapping] objectForKey:keyPath]];
} }
/*- (void)dealloc - (void)dealloc
{ {
NSDictionary *properties = [PNObject propertiesForClass:self.class]; NSDictionary *properties = [PNObject propertiesForClass:self.class];
for (NSString *propertyName in properties) { for (NSString *propertyName in properties) {
if ([[PNObject protectedProperties] containsObject:propertyName]) { if ([propertyName isEqualToString:@"description"] || [propertyName isEqualToString:@"debugDescription"]) {
continue; continue;
} }
[self removeObserver:self forKeyPath:propertyName]; [self removeObserver:self forKeyPath:propertyName];
} }
_JSON = nil;
_objectMapping = nil;
_objID = nil;
_createdAt = nil;
} }
*/
@end @end

View File

@ -128,6 +128,8 @@ static bool isFirstAccess = YES;
if (self) { if (self) {
_configuration = [[NSMutableDictionary alloc] init]; _configuration = [[NSMutableDictionary alloc] init];
_minPasswordLenght = minPassLenght; _minPasswordLenght = minPassLenght;
_manager = [AFHTTPSessionManager manager];
} }
return self; return self;
} }