forked from loafle/openapi-generator-original
Additional UnknownResponseObjectErrorCode if response object expected type is an unknown type
This commit is contained in:
@@ -8,6 +8,9 @@ NSInteger const {{classPrefix}}TypeMismatchErrorCode = 143553;
|
||||
|
||||
NSInteger const {{classPrefix}}EmptyValueOccurredErrorCode = 143509;
|
||||
|
||||
NSInteger const {{classPrefix}}UnknownResponseObjectErrorCode = 143528;
|
||||
|
||||
|
||||
@interface {{classPrefix}}ResponseDeserializer ()
|
||||
|
||||
@property (nonatomic, strong) NSNumberFormatter* numberFormatter;
|
||||
@@ -70,33 +73,31 @@ NSInteger const {{classPrefix}}EmptyValueOccurredErrorCode = 143509;
|
||||
}
|
||||
|
||||
NSTextCheckingResult *match = nil;
|
||||
|
||||
NSRange range = NSMakeRange(0, [className length]);
|
||||
// list of models
|
||||
match = [self.arrayOfModelsPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.arrayOfModelsPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *innerType = [className substringWithRange:[match rangeAtIndex:1]];
|
||||
return [self deserializeArrayValue:data innerType:innerType error:error];
|
||||
}
|
||||
|
||||
// list of primitives
|
||||
match = [self.arrayOfPrimitivesPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.arrayOfPrimitivesPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *innerType = [className substringWithRange:[match rangeAtIndex:1]];
|
||||
return [self deserializeArrayValue:data innerType:innerType error:error];
|
||||
}
|
||||
|
||||
// map
|
||||
match = [self.dictPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.dictPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *valueType = [className substringWithRange:[match rangeAtIndex:2]];
|
||||
return [self deserializeDictionaryValue:data valueType:valueType error:error];
|
||||
}
|
||||
|
||||
match = [self.dictModelsPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.dictModelsPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSRange range =[match rangeAtIndex:2];
|
||||
range = NSMakeRange(range.location, [className length] - range.location -1);
|
||||
NSString *valueType = [className substringWithRange:range];
|
||||
NSString *valueType = [className substringWithRange:[match rangeAtIndex:2]];
|
||||
return [self deserializeDictionaryValue:data valueType:valueType error:error];
|
||||
}
|
||||
|
||||
@@ -106,6 +107,9 @@ NSInteger const {{classPrefix}}EmptyValueOccurredErrorCode = 143509;
|
||||
return [(JSONModel *) [ModelClass alloc] initWithDictionary:data error:error];
|
||||
}
|
||||
|
||||
if(error) {
|
||||
*error = [self unknownResponseErrorWithExpectedType:className data:data];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -218,4 +222,10 @@ NSInteger const {{classPrefix}}EmptyValueOccurredErrorCode = 143509;
|
||||
return [NSError errorWithDomain:{{classPrefix}}DeserializationErrorDomainKey code:{{classPrefix}}EmptyValueOccurredErrorCode userInfo:userInfo];
|
||||
}
|
||||
|
||||
-(NSError *)unknownResponseErrorWithExpectedType:(NSString *)expected data:(id)data {
|
||||
NSString * message = [NSString stringWithFormat:NSLocalizedString(@"Unknown response expected type %@ [reponse: %@]",nil),expected,data];
|
||||
NSDictionary * userInfo = @{NSLocalizedDescriptionKey : message};
|
||||
return [NSError errorWithDomain:{{classPrefix}}DeserializationErrorDomainKey code:{{classPrefix}}UnknownResponseObjectErrorCode userInfo:userInfo];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -21,6 +21,11 @@ extern NSInteger const {{classPrefix}}TypeMismatchErrorCode;
|
||||
*/
|
||||
extern NSInteger const {{classPrefix}}EmptyValueOccurredErrorCode;
|
||||
|
||||
/**
|
||||
* Error code for unknown response
|
||||
*/
|
||||
extern NSInteger const {{classPrefix}}UnknownResponseObjectErrorCode;
|
||||
|
||||
@protocol {{classPrefix}}ResponseDeserializer <NSObject>
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,7 @@ This ObjC package is automatically generated by the [Swagger Codegen](https://gi
|
||||
|
||||
- API version: 1.0.0
|
||||
- Package version:
|
||||
- Build date: 2016-05-06T10:30:53.676+02:00
|
||||
- Build date: 2016-05-06T11:35:18.146+02:00
|
||||
- Build package: class io.swagger.codegen.languages.ObjcClientCodegen
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -21,6 +21,11 @@ extern NSInteger const SWGTypeMismatchErrorCode;
|
||||
*/
|
||||
extern NSInteger const SWGEmptyValueOccurredErrorCode;
|
||||
|
||||
/**
|
||||
* Error code for unknown response
|
||||
*/
|
||||
extern NSInteger const SWGUnknownResponseObjectErrorCode;
|
||||
|
||||
@protocol SWGResponseDeserializer <NSObject>
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,6 +8,9 @@ NSInteger const SWGTypeMismatchErrorCode = 143553;
|
||||
|
||||
NSInteger const SWGEmptyValueOccurredErrorCode = 143509;
|
||||
|
||||
NSInteger const SWGUnknownResponseObjectErrorCode = 143528;
|
||||
|
||||
|
||||
@interface SWGResponseDeserializer ()
|
||||
|
||||
@property (nonatomic, strong) NSNumberFormatter* numberFormatter;
|
||||
@@ -70,33 +73,31 @@ NSInteger const SWGEmptyValueOccurredErrorCode = 143509;
|
||||
}
|
||||
|
||||
NSTextCheckingResult *match = nil;
|
||||
|
||||
NSRange range = NSMakeRange(0, [className length]);
|
||||
// list of models
|
||||
match = [self.arrayOfModelsPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.arrayOfModelsPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *innerType = [className substringWithRange:[match rangeAtIndex:1]];
|
||||
return [self deserializeArrayValue:data innerType:innerType error:error];
|
||||
}
|
||||
|
||||
// list of primitives
|
||||
match = [self.arrayOfPrimitivesPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.arrayOfPrimitivesPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *innerType = [className substringWithRange:[match rangeAtIndex:1]];
|
||||
return [self deserializeArrayValue:data innerType:innerType error:error];
|
||||
}
|
||||
|
||||
// map
|
||||
match = [self.dictPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.dictPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSString *valueType = [className substringWithRange:[match rangeAtIndex:2]];
|
||||
return [self deserializeDictionaryValue:data valueType:valueType error:error];
|
||||
}
|
||||
|
||||
match = [self.dictModelsPatExpression firstMatchInString:className options:0 range:NSMakeRange(0, [className length])];
|
||||
match = [self.dictModelsPatExpression firstMatchInString:className options:0 range:range];
|
||||
if (match) {
|
||||
NSRange range =[match rangeAtIndex:2];
|
||||
range = NSMakeRange(range.location, [className length] - range.location -1);
|
||||
NSString *valueType = [className substringWithRange:range];
|
||||
NSString *valueType = [className substringWithRange:[match rangeAtIndex:2]];
|
||||
return [self deserializeDictionaryValue:data valueType:valueType error:error];
|
||||
}
|
||||
|
||||
@@ -106,6 +107,9 @@ NSInteger const SWGEmptyValueOccurredErrorCode = 143509;
|
||||
return [(JSONModel *) [ModelClass alloc] initWithDictionary:data error:error];
|
||||
}
|
||||
|
||||
if(error) {
|
||||
*error = [self unknownResponseErrorWithExpectedType:className data:data];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
@@ -218,4 +222,10 @@ NSInteger const SWGEmptyValueOccurredErrorCode = 143509;
|
||||
return [NSError errorWithDomain:SWGDeserializationErrorDomainKey code:SWGEmptyValueOccurredErrorCode userInfo:userInfo];
|
||||
}
|
||||
|
||||
-(NSError *)unknownResponseErrorWithExpectedType:(NSString *)expected data:(id)data {
|
||||
NSString * message = [NSString stringWithFormat:NSLocalizedString(@"Unknown response expected type %@ [reponse: %@]",nil),expected,data];
|
||||
NSDictionary * userInfo = @{NSLocalizedDescriptionKey : message};
|
||||
return [NSError errorWithDomain:SWGDeserializationErrorDomainKey code:SWGUnknownResponseObjectErrorCode userInfo:userInfo];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -61,6 +61,14 @@
|
||||
XCTAssertEqualWithAccuracy([dateTime timeIntervalSinceReferenceDate], [deserializedDateTime timeIntervalSinceReferenceDate], 0.001);
|
||||
}
|
||||
|
||||
- (void)testDeserializeUnknownObject {
|
||||
NSString *data = @"random string";
|
||||
NSError* error;
|
||||
NSNumber *result = [apiClient.responseDeserializer deserialize:data class:@"DeserializationTest*" error:&error];
|
||||
XCTAssertNotNil(error);
|
||||
XCTAssertNil(result);
|
||||
}
|
||||
|
||||
- (void)testDeserializeObject {
|
||||
NSNumber *data = @1;
|
||||
NSError* error;
|
||||
|
||||
Reference in New Issue
Block a user