117 lines
2.9 KiB
Markdown
117 lines
2.9 KiB
Markdown
# PNObject
|
|
|
|
[](https://travis-ci.org/Giuseppe Nucifora/PNObject)
|
|
[](http://cocoapods.org/pods/PNObject)
|
|
[](http://cocoapods.org/pods/PNObject)
|
|
[](http://cocoapods.org/pods/PNObject)
|
|
|
|
## Usage
|
|
|
|
To run the example project, clone the repo, and run `pod install` from the Example directory first.
|
|
|
|
## Requirements
|
|
|
|
## Installation
|
|
|
|
PNObject is available through [CocoaPods](http://cocoapods.org). To install
|
|
it, simply add the following line to your Podfile:
|
|
|
|
```ruby
|
|
pod "PNObject"
|
|
```
|
|
|
|
#Usage Example
|
|
|
|
##PNObject Subclass
|
|
|
|
```
|
|
//Customer.h
|
|
|
|
|
|
#import <PNObject/PNObject.h>
|
|
|
|
@interface Customer : PNObject <PNObjectSubclassing>
|
|
|
|
@property (nonatomic, strong) NSString *name;
|
|
@property (nonatomic, strong) NSString *lastName;
|
|
@property (nonatomic, strong) NSString *email;
|
|
@property (nonatomic, strong) NSDate *birthDate;
|
|
@property (nonatomic, strong) PNAddress *address;
|
|
|
|
@end
|
|
```
|
|
|
|
```
|
|
#import "Customer.h"
|
|
|
|
@implementation Customer
|
|
|
|
+ (NSString *) objectClassName {
|
|
return @"Customer";
|
|
}
|
|
|
|
|
|
+ (NSDictionary *) objcetMapping {
|
|
|
|
NSDictionary *mapping = @{
|
|
@"name":@"first_name",
|
|
@"surname":@"last_name",
|
|
@"email":@"email",
|
|
@"birthDate":@"birth_date",
|
|
@"address":@{
|
|
@"key":@"address",
|
|
@"type":@"PNAddress"
|
|
},
|
|
};
|
|
|
|
return mapping;
|
|
}
|
|
```
|
|
|
|
##Configure endpoints
|
|
|
|
|
|
```
|
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
|
{
|
|
[PNObjectConfig initSharedInstanceForEnvironments:
|
|
@{
|
|
EnvironmentDevelopment : @"http://domain.local/api/v1/",
|
|
EnvironmentStage : @"https://domain.stage/api/v1/",
|
|
EnvironmentProduction : @"http://domain.prod/api/v1/"
|
|
}
|
|
userSubclass:[PNUser class]
|
|
withOauth:YES
|
|
];
|
|
|
|
...
|
|
}
|
|
```
|
|
###Set custom header
|
|
```
|
|
[[PNObjectConfig sharedInstance] setHTTPHeaderValue:@"application/x-www-form-urlencoded" forKey:@"Content-Type"];
|
|
```
|
|
|
|
###Set clients ID e client Secret for environments
|
|
```
|
|
[[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentProduction];
|
|
[[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentStage];
|
|
[[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentDevelopment];
|
|
```
|
|
|
|
###Enable specific Environment
|
|
```
|
|
#ifdef DEBUG
|
|
[[PNObjectConfig sharedInstance] setEnvironment:EnvironmentStage];
|
|
#endif
|
|
```
|
|
|
|
|
|
## Author
|
|
|
|
Giuseppe Nucifora, me@giuseppenucifora.com
|
|
|
|
## License
|
|
|
|
PNObject is available under the MIT license. See the LICENSE file for more info.
|