Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[objc] Let the developer specify the timezone to be used for date serialisation #6628

Merged
merged 3 commits into from
Oct 7, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@
*/
@property (nonatomic) NSString *sslCaCert;

/**
* The time zone to use for date serialization
*/
@property (nonatomic) NSTimeZone *serializationTimeZone;

/**
* Sets API key
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#import <ISO8601/NSDate+ISO8601.h>
#import "JSONValueTransformer+ISO8601.h"
#import "{{classPrefix}}Sanitizer.h"

@implementation JSONValueTransformer (ISO8601)

Expand All @@ -8,4 +9,9 @@
return [NSDate dateWithISO8601String:string];
}

- (NSString *)JSONObjectFromNSDate:(NSDate *)date
{
return [{{classPrefix}}Sanitizer dateToString:date];
}

@end
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#import "{{classPrefix}}Sanitizer.h"
#import "{{classPrefix}}Object.h"
#import "{{classPrefix}}QueryParamCollection.h"
#import "{{classPrefix}}DefaultConfiguration.h"
#import <ISO8601/ISO8601.h>

NSString * const k{{classPrefix}}ApplicationJSONType = @"application/json";
Expand Down Expand Up @@ -63,7 +64,7 @@ NSString * {{classPrefix}}PercentEscapedStringFromString(NSString *string) {
return object;
}
else if ([object isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:object];
return [{{classPrefix}}Sanitizer dateToString:object];
}
else if ([object isKindOfClass:[NSArray class]]) {
NSArray *objectArray = object;
Expand Down Expand Up @@ -107,7 +108,7 @@ NSString * {{classPrefix}}PercentEscapedStringFromString(NSString *string) {
return [param stringValue];
}
else if ([param isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:param];
return [{{classPrefix}}Sanitizer dateToString:param];
}
else if ([param isKindOfClass:[NSArray class]]) {
NSMutableArray *mutableParam = [NSMutableArray array];
Expand All @@ -125,8 +126,9 @@ NSString * {{classPrefix}}PercentEscapedStringFromString(NSString *string) {
}
}

- (NSString *)dateParameterToString:(id)param {
return [param ISO8601String];
+ (NSString *)dateToString:(id)date {
NSTimeZone* timeZone = [{{classPrefix}}DefaultConfiguration sharedConfig].serializationTimeZone;
return [date ISO8601StringWithTimeZone:timeZone usingCalendar:nil];
}

#pragma mark - Utility Methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ extern NSString * const k{{classPrefix}}ApplicationJSONType;
*/
- (NSString *) parameterToString: (id) param;

/**
* Convert date to NSString
*/
+ (NSString *)dateToString:(id)date;

/**
* Detects Accept header from accepts NSArray
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.3.0-SNAPSHOT
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ extern NSInteger kSWGFakeApiMissingParamErrorCode;
///
/// code:400 message:"To test code injection *_/ ' \" =end -- \\r\\n \\n \\r"
///
/// @return
/// @return void
-(NSURLSessionTask*) testCodeInjectEndRnNRWithTestCodeInjectEndRnNR: (NSString*) testCodeInjectEndRnNR
completionHandler: (void (^)(NSError* error)) handler;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#import <ISO8601/NSDate+ISO8601.h>
#import "JSONValueTransformer+ISO8601.h"
#import "SWGSanitizer.h"

@implementation JSONValueTransformer (ISO8601)

Expand All @@ -8,4 +9,9 @@ - (NSDate *) NSDateFromNSString:(NSString *)string
return [NSDate dateWithISO8601String:string];
}

- (NSString *)JSONObjectFromNSDate:(NSDate *)date
{
return [SWGSanitizer dateToString:date];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,27 @@ extern NSString *const SWGResponseObjectErrorKey;

@property(nonatomic, strong) id<SWGSanitizer> sanitizer;

/**
* Gets if the client is unreachable
*
* @return The client offline state
*/
+(BOOL) getOfflineState;

/**
* Sets the client reachability, this may be overridden by the reachability manager if reachability changes
*
* @param status The client reachability status.
*/
+(void) setReachabilityStatus:(AFNetworkReachabilityStatus) status;

/**
* Gets the client reachability
*
* @return The client reachability.
*/
+(AFNetworkReachabilityStatus) getReachabilityStatus;

@property (nonatomic, strong) NSDictionary< NSString *, AFHTTPRequestSerializer <AFURLRequestSerialization> *>* requestSerializerForContentType;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,4 @@ static NSString * const kSWGAPIVersion = @"1.0.0";
*/
@property (readonly, nonatomic, strong) NSDictionary *defaultHeaders;

@end
@end
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@
*/
@property (nonatomic) NSString *sslCaCert;

/**
* The time zone to use for date serialization
*/
@property (nonatomic) NSTimeZone *serializationTimeZone;

/**
* Sets API key
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ extern NSString * const kSWGApplicationJSONType;
*/
- (NSString *) parameterToString: (id) param;

/**
* Convert date to NSString
*/
+ (NSString *)dateToString:(id)date;

/**
* Detects Accept header from accepts NSArray
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#import "SWGSanitizer.h"
#import "SWGObject.h"
#import "SWGQueryParamCollection.h"
#import "SWGDefaultConfiguration.h"
#import <ISO8601/ISO8601.h>

NSString * const kSWGApplicationJSONType = @"application/json";
Expand Down Expand Up @@ -63,7 +64,7 @@ - (id) sanitizeForSerialization:(id) object {
return object;
}
else if ([object isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:object];
return [SWGSanitizer dateToString:object];
}
else if ([object isKindOfClass:[NSArray class]]) {
NSArray *objectArray = object;
Expand Down Expand Up @@ -107,7 +108,7 @@ - (NSString *) parameterToString:(id)param {
return [param stringValue];
}
else if ([param isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:param];
return [SWGSanitizer dateToString:param];
}
else if ([param isKindOfClass:[NSArray class]]) {
NSMutableArray *mutableParam = [NSMutableArray array];
Expand All @@ -125,8 +126,9 @@ - (NSString *) parameterToString:(id)param {
}
}

- (NSString *)dateParameterToString:(id)param {
return [param ISO8601String];
+ (NSString *)dateToString:(id)date {
NSTimeZone* timeZone = [SWGDefaultConfiguration sharedConfig].serializationTimeZone;
return [date ISO8601StringWithTimeZone:timeZone usingCalendar:nil];
}

#pragma mark - Utility Methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@




@protocol SWGReturn
@end

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#import <ISO8601/NSDate+ISO8601.h>
#import "JSONValueTransformer+ISO8601.h"
#import "SWGSanitizer.h"

@implementation JSONValueTransformer (ISO8601)

Expand All @@ -8,4 +9,9 @@ - (NSDate *) NSDateFromNSString:(NSString *)string
return [NSDate dateWithISO8601String:string];
}

- (NSString *)JSONObjectFromNSDate:(NSDate *)date
{
return [SWGSanitizer dateToString:date];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@
*/
@property (nonatomic) NSString *sslCaCert;

/**
* The time zone to use for date serialization
*/
@property (nonatomic) NSTimeZone *serializationTimeZone;

/**
* Sets API key
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ extern NSString * const kSWGApplicationJSONType;
*/
- (NSString *) parameterToString: (id) param;

/**
* Convert date to NSString
*/
+ (NSString *)dateToString:(id)date;

/**
* Detects Accept header from accepts NSArray
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#import "SWGSanitizer.h"
#import "SWGObject.h"
#import "SWGQueryParamCollection.h"
#import "SWGDefaultConfiguration.h"
#import <ISO8601/ISO8601.h>

NSString * const kSWGApplicationJSONType = @"application/json";
Expand Down Expand Up @@ -63,7 +64,7 @@ - (id) sanitizeForSerialization:(id) object {
return object;
}
else if ([object isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:object];
return [SWGSanitizer dateToString:object];
}
else if ([object isKindOfClass:[NSArray class]]) {
NSArray *objectArray = object;
Expand Down Expand Up @@ -107,7 +108,7 @@ - (NSString *) parameterToString:(id)param {
return [param stringValue];
}
else if ([param isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:param];
return [SWGSanitizer dateToString:param];
}
else if ([param isKindOfClass:[NSArray class]]) {
NSMutableArray *mutableParam = [NSMutableArray array];
Expand All @@ -125,8 +126,9 @@ - (NSString *) parameterToString:(id)param {
}
}

- (NSString *)dateParameterToString:(id)param {
return [param ISO8601String];
+ (NSString *)dateToString:(id)date {
NSTimeZone* timeZone = [SWGDefaultConfiguration sharedConfig].serializationTimeZone;
return [date ISO8601StringWithTimeZone:timeZone usingCalendar:nil];
}

#pragma mark - Utility Methods
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#import <ISO8601/NSDate+ISO8601.h>
#import "JSONValueTransformer+ISO8601.h"
#import "SWGSanitizer.h"

@implementation JSONValueTransformer (ISO8601)

Expand All @@ -8,4 +9,9 @@ - (NSDate *) NSDateFromNSString:(NSString *)string
return [NSDate dateWithISO8601String:string];
}

- (NSString *)JSONObjectFromNSDate:(NSDate *)date
{
return [SWGSanitizer dateToString:date];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@
*/
@property (nonatomic) NSString *sslCaCert;

/**
* The time zone to use for date serialization
*/
@property (nonatomic) NSTimeZone *serializationTimeZone;

/**
* Sets API key
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ extern NSString * const kSWGApplicationJSONType;
*/
- (NSString *) parameterToString: (id) param;

/**
* Convert date to NSString
*/
+ (NSString *)dateToString:(id)date;

/**
* Detects Accept header from accepts NSArray
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#import "SWGSanitizer.h"
#import "SWGObject.h"
#import "SWGQueryParamCollection.h"
#import "SWGDefaultConfiguration.h"
#import <ISO8601/ISO8601.h>

NSString * const kSWGApplicationJSONType = @"application/json";
Expand Down Expand Up @@ -63,7 +64,7 @@ - (id) sanitizeForSerialization:(id) object {
return object;
}
else if ([object isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:object];
return [SWGSanitizer dateToString:object];
}
else if ([object isKindOfClass:[NSArray class]]) {
NSArray *objectArray = object;
Expand Down Expand Up @@ -107,7 +108,7 @@ - (NSString *) parameterToString:(id)param {
return [param stringValue];
}
else if ([param isKindOfClass:[NSDate class]]) {
return [self dateParameterToString:param];
return [SWGSanitizer dateToString:param];
}
else if ([param isKindOfClass:[NSArray class]]) {
NSMutableArray *mutableParam = [NSMutableArray array];
Expand All @@ -125,8 +126,9 @@ - (NSString *) parameterToString:(id)param {
}
}

- (NSString *)dateParameterToString:(id)param {
return [param ISO8601String];
+ (NSString *)dateToString:(id)date {
NSTimeZone* timeZone = [SWGDefaultConfiguration sharedConfig].serializationTimeZone;
return [date ISO8601StringWithTimeZone:timeZone usingCalendar:nil];
}

#pragma mark - Utility Methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
Expand Down Expand Up @@ -567,7 +567,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
Expand Down
Loading