diff --git a/modules/swagger-codegen/src/main/resources/objc/model-body.mustache b/modules/swagger-codegen/src/main/resources/objc/model-body.mustache index f27d1d67dbc..b728e6bb06c 100644 --- a/modules/swagger-codegen/src/main/resources/objc/model-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/model-body.mustache @@ -9,6 +9,18 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ {{#vars}}@"{{baseName}}": @"{{name}}"{{#hasMore}}, {{/hasMore}}{{/vars}} }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[{{#vars}}{{^required}}@"{{name}}"{{#hasMore}}, {{/hasMore}}{{/required}}{{/vars}}]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + {{/model}} @end {{/models}} diff --git a/modules/swagger-codegen/src/main/resources/objc/model-header.mustache b/modules/swagger-codegen/src/main/resources/objc/model-header.mustache index 9dece961b08..81ac19a0b73 100644 --- a/modules/swagger-codegen/src/main/resources/objc/model-header.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/model-header.mustache @@ -14,7 +14,7 @@ {{#vars}} {{#description}}/* {{{description}}} {{^required}}[optional]{{/required}} */{{/description}} -@property(nonatomic) {{{ baseType }}}{{^required}}{{/required}}* {{name}}; +@property(nonatomic) {{{ datatype }}} {{name}}; {{/vars}} @end diff --git a/samples/client/petstore/objc/client/SWGApiClient.m b/samples/client/petstore/objc/client/SWGApiClient.m index 5b7fd03417d..6942a21c738 100644 --- a/samples/client/petstore/objc/client/SWGApiClient.m +++ b/samples/client/petstore/objc/client/SWGApiClient.m @@ -314,7 +314,7 @@ static bool loggingEnabled = true; NSString * urlString = [[NSURL URLWithString:path relativeToURL:self.baseURL] absoluteString]; // request with multipart form - if(file != nil) { + if([requestContentType isEqualToString:@"multipart/form-data"]) { request = [self.requestSerializer multipartFormRequestWithMethod: @"POST" URLString: urlString parameters: nil @@ -325,15 +325,17 @@ static bool loggingEnabled = true; [formData appendPartWithFormData: data name: key]; } - [formData appendPartWithFileData: [file data] - name: [file paramName] - fileName: [file name] - mimeType: [file mimeType]]; + if (file) { + [formData appendPartWithFileData: [file data] + name: [file paramName] + fileName: [file name] + mimeType: [file mimeType]]; + } } error:nil]; } - // request with form parameters + // request with form parameters or json else { NSString* pathWithQueryParams = [self pathWithQueryParamsToString:path queryParams:queryParams]; NSString* urlString = [[NSURL URLWithString:pathWithQueryParams relativeToURL:self.baseURL] absoluteString]; @@ -470,7 +472,7 @@ static bool loggingEnabled = true; NSString * urlString = [[NSURL URLWithString:path relativeToURL:self.baseURL] absoluteString]; // request with multipart form - if(file != nil) { + if([requestContentType isEqualToString:@"multipart/form-data"]) { request = [self.requestSerializer multipartFormRequestWithMethod: @"POST" URLString: urlString parameters: nil @@ -481,15 +483,17 @@ static bool loggingEnabled = true; [formData appendPartWithFormData: data name: key]; } - [formData appendPartWithFileData: [file data] - name: [file paramName] - fileName: [file name] - mimeType: [file mimeType]]; + if (file) { + [formData appendPartWithFileData: [file data] + name: [file paramName] + fileName: [file name] + mimeType: [file mimeType]]; + } } error:nil]; } - // request with form parameters + // request with form parameters or json else { NSString* pathWithQueryParams = [self pathWithQueryParamsToString:path queryParams:queryParams]; NSString* urlString = [[NSURL URLWithString:pathWithQueryParams relativeToURL:self.baseURL] absoluteString]; @@ -576,3 +580,11 @@ static bool loggingEnabled = true; } @end + + + + + + + + diff --git a/samples/client/petstore/objc/client/SWGCategory.h b/samples/client/petstore/objc/client/SWGCategory.h index 9c8387e8823..a2fed79b4a3 100644 --- a/samples/client/petstore/objc/client/SWGCategory.h +++ b/samples/client/petstore/objc/client/SWGCategory.h @@ -8,8 +8,8 @@ @interface SWGCategory : SWGObject -@property(nonatomic) NSNumber* _id; +@property(nonatomic) NSNumber* _id; -@property(nonatomic) NSString* name; +@property(nonatomic) NSString* name; @end diff --git a/samples/client/petstore/objc/client/SWGCategory.m b/samples/client/petstore/objc/client/SWGCategory.m index 7ad8e2d82e0..c41f76a5247 100644 --- a/samples/client/petstore/objc/client/SWGCategory.m +++ b/samples/client/petstore/objc/client/SWGCategory.m @@ -7,4 +7,16 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ @"id": @"_id", @"name": @"name" }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[@"_id", @"name"]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + @end diff --git a/samples/client/petstore/objc/client/SWGOrder.h b/samples/client/petstore/objc/client/SWGOrder.h index 49fb13574c2..2e71906cd53 100644 --- a/samples/client/petstore/objc/client/SWGOrder.h +++ b/samples/client/petstore/objc/client/SWGOrder.h @@ -8,17 +8,17 @@ @interface SWGOrder : SWGObject -@property(nonatomic) NSNumber* _id; +@property(nonatomic) NSNumber* _id; -@property(nonatomic) NSNumber* petId; +@property(nonatomic) NSNumber* petId; -@property(nonatomic) NSNumber* quantity; +@property(nonatomic) NSNumber* quantity; -@property(nonatomic) NSDate* shipDate; +@property(nonatomic) NSDate* shipDate; /* Order Status [optional] */ -@property(nonatomic) NSString* status; +@property(nonatomic) NSString* status; -@property(nonatomic) NSNumber* complete; +@property(nonatomic) NSNumber* complete; @end diff --git a/samples/client/petstore/objc/client/SWGOrder.m b/samples/client/petstore/objc/client/SWGOrder.m index 3a0c17aacaa..5d3179446ed 100644 --- a/samples/client/petstore/objc/client/SWGOrder.m +++ b/samples/client/petstore/objc/client/SWGOrder.m @@ -7,4 +7,16 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ @"id": @"_id", @"petId": @"petId", @"quantity": @"quantity", @"shipDate": @"shipDate", @"status": @"status", @"complete": @"complete" }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[@"_id", @"petId", @"quantity", @"shipDate", @"status", @"complete"]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + @end diff --git a/samples/client/petstore/objc/client/SWGPet.h b/samples/client/petstore/objc/client/SWGPet.h index c06fa0b4b5c..edd54e9f31a 100644 --- a/samples/client/petstore/objc/client/SWGPet.h +++ b/samples/client/petstore/objc/client/SWGPet.h @@ -10,17 +10,17 @@ @interface SWGPet : SWGObject -@property(nonatomic) NSNumber* _id; +@property(nonatomic) NSNumber* _id; -@property(nonatomic) SWGCategory* category; +@property(nonatomic) SWGCategory* category; @property(nonatomic) NSString* name; @property(nonatomic) NSArray* photoUrls; -@property(nonatomic) NSArray* tags; +@property(nonatomic) NSArray* tags; /* pet status in the store [optional] */ -@property(nonatomic) NSString* status; +@property(nonatomic) NSString* status; @end diff --git a/samples/client/petstore/objc/client/SWGPet.m b/samples/client/petstore/objc/client/SWGPet.m index 5d61ea4016d..e1d4ed2eccd 100644 --- a/samples/client/petstore/objc/client/SWGPet.m +++ b/samples/client/petstore/objc/client/SWGPet.m @@ -7,4 +7,16 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ @"id": @"_id", @"category": @"category", @"name": @"name", @"photoUrls": @"photoUrls", @"tags": @"tags", @"status": @"status" }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[@"category", @"tags", @"status", @"photoUrls", @"_id"]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + @end diff --git a/samples/client/petstore/objc/client/SWGTag.h b/samples/client/petstore/objc/client/SWGTag.h index a6628a3977d..d9cc84be270 100644 --- a/samples/client/petstore/objc/client/SWGTag.h +++ b/samples/client/petstore/objc/client/SWGTag.h @@ -8,8 +8,8 @@ @interface SWGTag : SWGObject -@property(nonatomic) NSNumber* _id; +@property(nonatomic) NSNumber* _id; -@property(nonatomic) NSString* name; +@property(nonatomic) NSString* name; @end diff --git a/samples/client/petstore/objc/client/SWGTag.m b/samples/client/petstore/objc/client/SWGTag.m index dbdb6031707..5d48a099070 100644 --- a/samples/client/petstore/objc/client/SWGTag.m +++ b/samples/client/petstore/objc/client/SWGTag.m @@ -7,4 +7,16 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ @"id": @"_id", @"name": @"name" }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[@"_id", @"name"]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + @end diff --git a/samples/client/petstore/objc/client/SWGUser.h b/samples/client/petstore/objc/client/SWGUser.h index 1e5e2580b0b..f505ca2c041 100644 --- a/samples/client/petstore/objc/client/SWGUser.h +++ b/samples/client/petstore/objc/client/SWGUser.h @@ -8,21 +8,21 @@ @interface SWGUser : SWGObject -@property(nonatomic) NSNumber* _id; +@property(nonatomic) NSNumber* _id; -@property(nonatomic) NSString* username; +@property(nonatomic) NSString* username; -@property(nonatomic) NSString* firstName; +@property(nonatomic) NSString* firstName; -@property(nonatomic) NSString* lastName; +@property(nonatomic) NSString* lastName; -@property(nonatomic) NSString* email; +@property(nonatomic) NSString* email; -@property(nonatomic) NSString* password; +@property(nonatomic) NSString* password; -@property(nonatomic) NSString* phone; +@property(nonatomic) NSString* phone; /* User Status [optional] */ -@property(nonatomic) NSNumber* userStatus; +@property(nonatomic) NSNumber* userStatus; @end diff --git a/samples/client/petstore/objc/client/SWGUser.m b/samples/client/petstore/objc/client/SWGUser.m index 5eb2ce04572..060b65ffa12 100644 --- a/samples/client/petstore/objc/client/SWGUser.m +++ b/samples/client/petstore/objc/client/SWGUser.m @@ -7,4 +7,16 @@ return [[JSONKeyMapper alloc] initWithDictionary:@{ @"id": @"_id", @"username": @"username", @"firstName": @"firstName", @"lastName": @"lastName", @"email": @"email", @"password": @"password", @"phone": @"phone", @"userStatus": @"userStatus" }]; } ++ (BOOL)propertyIsOptional:(NSString *)propertyName +{ + NSArray *optionalProperties = @[@"_id", @"username", @"firstName", @"lastName", @"email", @"password", @"phone", @"userStatus"]; + + if ([optionalProperties containsObject:propertyName]) { + return YES; + } + else { + return NO; + } +} + @end