forked from loafle/openapi-generator-original
[Objc] Basic Core data support
This commit is contained in:
parent
81b6ccfe1c
commit
ceda86b9c3
@ -26,6 +26,6 @@ fi
|
||||
|
||||
# if you've executed sbt assembly previously it will use that instead.
|
||||
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
|
||||
ags="$@ generate -t modules/swagger-codegen/src/main/resources/objc -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l objc -o samples/client/petstore/objc"
|
||||
ags="$@ generate -t modules/swagger-codegen/src/main/resources/objc -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l objc -o samples/client/petstore/objc --additional-properties coreData=y"
|
||||
|
||||
java -DappName=PetstoreClient $JAVA_OPTS -jar $executable $ags
|
||||
|
@ -1,14 +1,7 @@
|
||||
package io.swagger.codegen.languages;
|
||||
|
||||
import io.swagger.codegen.CliOption;
|
||||
import io.swagger.codegen.CodegenConfig;
|
||||
import io.swagger.codegen.CodegenConstants;
|
||||
import io.swagger.codegen.CodegenOperation;
|
||||
import io.swagger.codegen.CodegenParameter;
|
||||
import io.swagger.codegen.CodegenProperty;
|
||||
import io.swagger.codegen.CodegenType;
|
||||
import io.swagger.codegen.DefaultCodegen;
|
||||
import io.swagger.codegen.SupportingFile;
|
||||
import io.swagger.codegen.*;
|
||||
import io.swagger.models.Model;
|
||||
import io.swagger.models.properties.*;
|
||||
|
||||
import java.io.File;
|
||||
@ -28,9 +21,8 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
public static final String AUTHOR_EMAIL = "authorEmail";
|
||||
public static final String LICENSE = "license";
|
||||
public static final String GIT_REPO_URL = "gitRepoURL";
|
||||
|
||||
public static final String DEFAULT_LICENSE = "Apache License, Version 2.0";
|
||||
|
||||
public static final String CORE_DATA = "coreData";
|
||||
public static final String BinaryDataType = "ObjcClientCodegenBinaryData";
|
||||
|
||||
protected Set<String> foundationClasses = new HashSet<String>();
|
||||
@ -47,6 +39,8 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
protected String modelFilesPath = "Model/";
|
||||
protected String coreFilesPath = "Core/";
|
||||
protected String apiFilesPath = "Api/";
|
||||
|
||||
protected boolean generateCoreData = false;
|
||||
|
||||
protected Set<String> advancedMapingTypes = new HashSet<String>();
|
||||
|
||||
@ -75,6 +69,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
defaultIncludes.add("NSDictionary");
|
||||
defaultIncludes.add("NSMutableArray");
|
||||
defaultIncludes.add("NSMutableDictionary");
|
||||
defaultIncludes.add("NSManagedObject");
|
||||
|
||||
defaultIncludes.add(BinaryDataType);
|
||||
|
||||
@ -156,6 +151,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
instantiationTypes.put("map", "NSMutableDictionary");
|
||||
|
||||
cliOptions.clear();
|
||||
cliOptions.add(new CliOption(CORE_DATA, "Should generate core data models").defaultValue("n"));
|
||||
cliOptions.add(new CliOption(CLASS_PREFIX, "prefix for generated classes (convention: Abbreviation of pod name e.g. `HN` for `HackerNews`).`")
|
||||
.defaultValue("SWG"));
|
||||
cliOptions.add(new CliOption(POD_NAME, "cocoapods package name (convention: CameCase).")
|
||||
@ -195,6 +191,12 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
setPodVersion((String) additionalProperties.get(CodegenConstants.POD_VERSION));
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CORE_DATA)) {
|
||||
Object coreData = additionalProperties.get(CORE_DATA);
|
||||
if(((String)coreData).equalsIgnoreCase("y")) {
|
||||
generateCoreData = true;
|
||||
}
|
||||
}
|
||||
if (additionalProperties.containsKey(CLASS_PREFIX)) {
|
||||
setClassPrefix((String) additionalProperties.get(CLASS_PREFIX));
|
||||
}
|
||||
@ -211,6 +213,13 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
setGitRepoURL((String) additionalProperties.get(GIT_REPO_URL));
|
||||
}
|
||||
|
||||
if(generateCoreData) {
|
||||
modelTemplateFiles.put("NSManagedObject-header.mustache", "ManagedObject.h");
|
||||
modelTemplateFiles.put("NSManagedObject-body.mustache", "ManagedObject.m");
|
||||
modelTemplateFiles.put("NSManagedObjectBuilder-header.mustache", "ManagedObjectBuilder.h");
|
||||
modelTemplateFiles.put("NSManagedObjectBuilder-body.mustache", "ManagedObjectBuilder.m");
|
||||
}
|
||||
|
||||
additionalProperties.put(POD_NAME, podName);
|
||||
additionalProperties.put(CodegenConstants.POD_VERSION, podVersion);
|
||||
additionalProperties.put(CLASS_PREFIX, classPrefix);
|
||||
@ -222,6 +231,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
// make api and model doc path available in mustache template
|
||||
additionalProperties.put("apiDocPath", apiDocPath);
|
||||
additionalProperties.put("modelDocPath", modelDocPath);
|
||||
additionalProperties.put("useCoreData", generateCoreData);
|
||||
|
||||
modelPackage = podName;
|
||||
apiPackage = podName;
|
||||
@ -251,6 +261,11 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
||||
supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh"));
|
||||
supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore"));
|
||||
|
||||
if(generateCoreData) {
|
||||
supportingFiles.add(new SupportingFile("xccurrentversion.mustache", (modelPackage() + "/" + modelFilesPath + "/").replace("/", File.separator) + classPrefix + "Model.xcdatamodeld", ".xccurrentversion"));
|
||||
supportingFiles.add(new SupportingFile("Model.xcdatamodel.mustache",(modelPackage() + "/" + modelFilesPath + "/").replace("/", File.separator) + classPrefix + "Model.xcdatamodeld" + File.separator + classPrefix + "Model.xcdatamodel", "contents"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -288,6 +303,15 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
return toModelNameWithoutReservedWordCheck(type);
|
||||
}
|
||||
|
||||
public CodegenProperty coreDatafromProperty(String name, Property p) {
|
||||
CodegenProperty property = fromProperty(name, p);
|
||||
if(!generateCoreData) {
|
||||
return property;
|
||||
}
|
||||
property.baseType = getTypeCoreDataDeclaration(p);
|
||||
return property;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeDeclaration(Property p) {
|
||||
if (p instanceof ArrayProperty) {
|
||||
@ -359,6 +383,77 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String getTypeCoreDataDeclaration(Property p) {
|
||||
if (p instanceof ArrayProperty) {
|
||||
ArrayProperty ap = (ArrayProperty) p;
|
||||
Property inner = ap.getItems();
|
||||
String innerType = getSwaggerType(inner);
|
||||
|
||||
String innerTypeDeclaration = getTypeDeclaration(inner);
|
||||
if (innerTypeDeclaration.endsWith("*")) {
|
||||
innerTypeDeclaration = innerTypeDeclaration.substring(0, innerTypeDeclaration.length() - 1);
|
||||
}
|
||||
|
||||
if(innerTypeDeclaration.equalsIgnoreCase(BinaryDataType)) {
|
||||
return "NSData*";
|
||||
}
|
||||
// In this codition, type of property p is array of primitive,
|
||||
// return container type with pointer, e.g. `NSArray*<NSString*>*'
|
||||
if (languageSpecificPrimitives.contains(innerTypeDeclaration)) {
|
||||
return getSwaggerType(p) + "<" + innerTypeDeclaration + "*>*";
|
||||
}
|
||||
// In this codition, type of property p is array of model,
|
||||
// return container type combine inner type with pointer, e.g. `NSArray<SWGTag>*'
|
||||
else {
|
||||
for (String sd : advancedMapingTypes) {
|
||||
if(innerTypeDeclaration.startsWith(sd)) {
|
||||
return getSwaggerType(p) + "<" + innerTypeDeclaration + "*>*";
|
||||
}
|
||||
}
|
||||
return getSwaggerType(p) + "<" + innerTypeDeclaration + ">*";
|
||||
}
|
||||
} else if (p instanceof MapProperty) {
|
||||
MapProperty mp = (MapProperty) p;
|
||||
Property inner = mp.getAdditionalProperties();
|
||||
|
||||
String innerTypeDeclaration = getTypeDeclaration(inner);
|
||||
|
||||
if (innerTypeDeclaration.endsWith("*")) {
|
||||
innerTypeDeclaration = innerTypeDeclaration.substring(0, innerTypeDeclaration.length() - 1);
|
||||
}
|
||||
if (languageSpecificPrimitives.contains(innerTypeDeclaration)) {
|
||||
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + "*>*";
|
||||
} else {
|
||||
for (String s : advancedMapingTypes) {
|
||||
if(innerTypeDeclaration.startsWith(s)) {
|
||||
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + "*>*";
|
||||
}
|
||||
}
|
||||
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + ">*";
|
||||
}
|
||||
} else {
|
||||
String swaggerType = getSwaggerType(p);
|
||||
|
||||
// In this codition, type of p is objective-c primitive type, e.g. `NSSNumber',
|
||||
// return type of p with pointer, e.g. `NSNumber*'
|
||||
if (languageSpecificPrimitives.contains(swaggerType) &&
|
||||
foundationClasses.contains(swaggerType)) {
|
||||
return swaggerType + "*";
|
||||
}
|
||||
// In this codition, type of p is c primitive type, e.g. `bool',
|
||||
// return type of p, e.g. `bool'
|
||||
else if (languageSpecificPrimitives.contains(swaggerType)) {
|
||||
return swaggerType;
|
||||
}
|
||||
// In this codition, type of p is objective-c object type, e.g. `SWGPet',
|
||||
// return type of p with pointer, e.g. `SWGPet*'
|
||||
else {
|
||||
return swaggerType + "*";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toModelName(String type) {
|
||||
// model name cannot use reserved keyword
|
||||
@ -579,6 +674,12 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
return objs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcessModelProperty(CodegenModel model, CodegenProperty property){
|
||||
super.postProcessModelProperty(model,property);
|
||||
property.vendorExtensions.put("x-uppercaseName", camelize(property.name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the default value of the property
|
||||
*
|
||||
|
@ -1,13 +1,5 @@
|
||||
#import "{{classPrefix}}JSONResponseSerializer.h"
|
||||
|
||||
static BOOL JSONParseError(NSError *error) {
|
||||
if ([error.domain isEqualToString:NSCocoaErrorDomain] && error.code == 3840) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
@implementation {{classPrefix}}JSONResponseSerializer
|
||||
|
||||
///
|
||||
@ -17,7 +9,7 @@ static BOOL JSONParseError(NSError *error) {
|
||||
///
|
||||
/// @param response The response to be processed.
|
||||
/// @param data The response data to be decoded.
|
||||
/// @param error The error that occurred while attempting to decode the respnse data.
|
||||
/// @param error The error that occurred while attempting to decode the response data.
|
||||
///
|
||||
/// @return The object decoded from the specified response data.
|
||||
///
|
||||
@ -27,7 +19,7 @@ static BOOL JSONParseError(NSError *error) {
|
||||
NSDictionary *responseJson = [super responseObjectForResponse:response data:data error:error];
|
||||
|
||||
// if response data is not a valid json, return string of data.
|
||||
if (JSONParseError(*error)) {
|
||||
if ([self isParseError:*error]) {
|
||||
*error = nil;
|
||||
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||
return responseString;
|
||||
@ -36,4 +28,12 @@ static BOOL JSONParseError(NSError *error) {
|
||||
return responseJson;
|
||||
}
|
||||
|
||||
-(BOOL)isParseError:(NSError *)error {
|
||||
return [error.domain isEqualToString:NSCocoaErrorDomain] && error.code == 3840;
|
||||
}
|
||||
|
||||
+ (instancetype)serializer {
|
||||
return [self serializerWithReadingOptions:NSJSONReadingAllowFragments];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9525" systemVersion="15D21" minimumToolsVersion="Xcode 7.0">
|
||||
|
||||
{{#models}}{{#model}}<entity name="{{{classname}}}ManagedObject" representedClassName="{{{classname}}}ManagedObject" syncable="YES">
|
||||
{{#vars}}{{#complexType}} <relationship name="{{name}}" {{^required}}optional="YES"{{/required}} {{#isListContainer}}toMany="YES"{{/isListContainer}}{{^isListContainer}}maxCount="1"{{/isListContainer}} deletionRule="Cascade" destinationEntity="{{{complexType}}}ManagedObject" syncable="YES"/>{{/complexType}}{{^complexType}} <attribute name="{{name}}" {{^required}}optional="YES"{{/required}} attributeType="{{#isString}}String{{/isString}}{{#isInteger}}Integer 16{{/isInteger}}{{#isLong}}Double{{/isLong}}{{#isDouble}}Double{{/isDouble}}{{#isFloat}}Float{{/isFloat}}{{#isByteArray}}Binary{{/isByteArray}}{{#isBinary}}Binary{{/isBinary}}{{#isListContainer}}Transformable{{/isListContainer}}{{#isMapContainer}}Transformable{{/isMapContainer}}{{#isBoolean}}Boolean{{/isBoolean}}{{#isDate}}Date{{/isDate}}{{#isDateTime}}Date{{/isDateTime}}" syncable="YES"/>{{/complexType}}
|
||||
{{/vars}}
|
||||
</entity>
|
||||
{{/model}}{{/models}}
|
||||
</model>
|
@ -0,0 +1,18 @@
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
#import "{{classname}}ManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation {{classname}}ManagedObject
|
||||
|
||||
{{#vars}}
|
||||
@dynamic {{name}};
|
||||
{{/vars}}
|
||||
|
||||
{{/model}}
|
||||
@end
|
||||
{{/models}}
|
@ -0,0 +1,31 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
{{#imports}}#import "{{import}}ManagedObject.h"
|
||||
{{/imports}}
|
||||
{{newline}}
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
|
||||
@interface {{classname}}ManagedObject : {{#parent}}{{{parent}}}{{/parent}}{{^parent}}NSManagedObject{{/parent}}
|
||||
|
||||
{{#vars}}
|
||||
{{#description}}/* {{{description}}} {{^required}}[optional]{{/required}}
|
||||
*/{{/description}}
|
||||
@property (nullable, nonatomic, retain) {{^complexType}}{{{ datatype }}}{{/complexType}}{{#complexType}}{{#isListContainer}}NSSet*{{/isListContainer}}{{^isListContainer}}{{{complexType}}}ManagedObject*{{/isListContainer}}{{/complexType}} {{name}};
|
||||
{{/vars}}
|
||||
|
||||
{{#vars}}{{#isListContainer}}{{#complexType}}- (void)add{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
|
||||
- (void)remove{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
|
||||
- (void)add{{vendorExtensions.x-uppercaseName}}:(NSSet *)values;
|
||||
- (void)remove{{vendorExtensions.x-uppercaseName}}:(NSSet *)values;
|
||||
{{/complexType}}{{/isListContainer}}{{/vars}}
|
||||
@end
|
||||
{{/model}}
|
||||
{{/models}}
|
@ -0,0 +1,76 @@
|
||||
|
||||
{{#models}}{{#model}}
|
||||
#import "{{classname}}ManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation {{classname}}ManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
{{#vars}}{{#complexType}} _{{name}}Builder = [[{{complexType}}ManagedObjectBuilder alloc] init];
|
||||
{{/complexType}}{{/vars}} }
|
||||
return self;
|
||||
}
|
||||
|
||||
-({{classname}}ManagedObject*)createNew{{classname}}ManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
{{classname}}ManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([{{classname}}ManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*){{name}} context:(NSManagedObjectContext*)context {
|
||||
{{classname}}ManagedObject* new{{classname}} = [self createNew{{{classname}}}ManagedObjectInContext:context];
|
||||
[self update{{classname}}ManagedObject:new{{classname}} with{{classname}}:{{name}}];
|
||||
return new{{classname}};
|
||||
}
|
||||
|
||||
-(void)update{{classname}}ManagedObject:({{classname}}ManagedObject*)managedObject with{{classname}}:({{classname}}*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
{{#vars}}{{^complexType}} managedObject.{{name}} = [object.{{name}} copy];{{/complexType}}{{#complexType}}{{#isListContainer}} if(object.{{name}}) {
|
||||
NSMutableSet * convertedObjs = [NSMutableSet set];
|
||||
for (id innerObject in object.{{name}}) {
|
||||
id convertedObj = [self.{{name}}Builder {{complexType}}ManagedObjectFrom{{complexType}}:innerObject context:managedObject.managedObjectContext];
|
||||
[convertedObjs addObject:convertedObj];
|
||||
}
|
||||
managedObject.{{name}} = convertedObjs;
|
||||
}{{/isListContainer}}{{^isListContainer}}
|
||||
if(!managedObject.{{name}}) {
|
||||
managedObject.{{name}} = [self.{{name}}Builder {{complexType}}ManagedObjectFrom{{complexType}}:object.{{name}} context:managedObject.managedObjectContext];
|
||||
} else {
|
||||
[self.{{name}}Builder update{{complexType}}ManagedObject:managedObject.{{name}} with{{complexType}}:object.{{name}}];
|
||||
}{{/isListContainer}}{{/complexType}}
|
||||
{{/vars}}
|
||||
}
|
||||
|
||||
-({{classname}}*){{classname}}From{{classname}}ManagedObject:({{classname}}ManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
{{classname}}* new{{classname}} = [[{{classname}} alloc] init];
|
||||
[self update{{classname}}:new{{classname}} with{{classname}}ManagedObject:obj];
|
||||
return new{{classname}};
|
||||
}
|
||||
|
||||
-(void)update{{classname}}:({{classname}}*)new{{classname}} with{{classname}}ManagedObject:({{classname}}ManagedObject*)obj {
|
||||
{{#vars}}{{^complexType}} new{{classname}}.{{name}} = [obj.{{name}} copy];{{/complexType}}{{#complexType}}{{#isListContainer}} if(obj.{{name}} != nil) {
|
||||
NSMutableArray* convertedObjs = [NSMutableArray array];
|
||||
for (id innerObject in obj.{{name}}) {
|
||||
id convertedObj = [self.{{name}}Builder {{complexType}}From{{complexType}}ManagedObject:innerObject];
|
||||
[convertedObjs addObject:convertedObj];
|
||||
}
|
||||
new{{classname}}.{{name}} = ({{{ datatype }}})convertedObjs;
|
||||
}
|
||||
{{/isListContainer}}{{^isListContainer}} new{{classname}}.{{name}} = [self.{{name}}Builder {{complexType}}From{{complexType}}ManagedObject:obj.{{name}}];{{/isListContainer}}{{/complexType}}
|
||||
{{/vars}}
|
||||
}
|
||||
|
||||
@end
|
||||
{{/model}}
|
||||
{{/models}}
|
@ -0,0 +1,35 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
{{#imports}}#import "{{import}}ManagedObjectBuilder.h"
|
||||
{{/imports}}
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
|
||||
#import "{{classPrefix}}{{name}}ManagedObject.h"
|
||||
#import "{{classPrefix}}{{name}}.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface {{classname}}ManagedObjectBuilder : NSObject
|
||||
|
||||
{{#vars}}{{#complexType}}@property (nonatomic, strong) {{complexType}}ManagedObjectBuilder * {{name}}Builder;
|
||||
{{/complexType}}{{/vars}}
|
||||
|
||||
-({{classname}}ManagedObject*)createNew{{classname}}ManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*){{name}} context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)update{{classname}}ManagedObject:({{classname}}ManagedObject*){{name}} with{{classname}}:({{classname}}*){{name}}2;
|
||||
|
||||
-({{classname}}*){{classname}}From{{classname}}ManagedObject:({{classname}}ManagedObject*)obj;
|
||||
|
||||
-(void)update{{classname}}:({{classname}}*){{name}} with{{classname}}ManagedObject:({{classname}}ManagedObject*){{name}}2;
|
||||
|
||||
@end
|
||||
{{/model}}
|
||||
{{/models}}
|
@ -16,25 +16,18 @@
|
||||
|
||||
{{#discriminator}}
|
||||
/**
|
||||
Maps "discriminator" value to the sub-class name, so that inheritance is supported.
|
||||
* Maps "discriminator" value to the sub-class name, so that inheritance is supported.
|
||||
*/
|
||||
- (id)initWithDictionary:(NSDictionary *)dict error:(NSError *__autoreleasing *)err {
|
||||
|
||||
NSString * discriminatedClassName = [dict valueForKey:@"{{discriminator}}"];
|
||||
|
||||
if(discriminatedClassName == nil ){
|
||||
return [super initWithDictionary:dict error:err];
|
||||
}
|
||||
|
||||
Class class = NSClassFromString([@"{{classPrefix}}" stringByAppendingString:discriminatedClassName]);
|
||||
|
||||
if([self class ] == class) {
|
||||
return [super initWithDictionary:dict error:err];
|
||||
}
|
||||
|
||||
|
||||
return [[class alloc] initWithDictionary:dict error: err];
|
||||
|
||||
}
|
||||
{{/discriminator}}
|
||||
|
||||
@ -55,7 +48,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[{{#vars}}{{^required}}@"{{name}}"{{#hasMore}}, {{/hasMore}}{{/required}}{{/vars}}];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
{{/model}}
|
||||
|
@ -19,15 +19,16 @@ Pod::Spec.new do |s|
|
||||
s.platform = :ios, '7.0'
|
||||
s.requires_arc = true
|
||||
|
||||
s.framework = 'SystemConfiguration'
|
||||
|
||||
{{^useCoreData}}s.framework = 'SystemConfiguration'{{/useCoreData}}{{#useCoreData}}s.frameworks = 'SystemConfiguration', 'CoreData'{{/useCoreData}}
|
||||
|
||||
s.homepage = "{{gitRepoURL}}"
|
||||
s.license = "{{#license}}{{license}}{{/license}}{{^license}}Apache License, Version 2.0{{/license}}"
|
||||
s.source = { :git => "{{gitRepoURL}}.git", :tag => "#{s.version}" }
|
||||
s.author = { "{{authorName}}" => "{{authorEmail}}" }
|
||||
|
||||
s.source_files = '{{podName}}/**/*'
|
||||
s.source_files = '{{podName}}/**/*.{m,h}'
|
||||
s.public_header_files = '{{podName}}/**/*.h'
|
||||
s.resources = '{{podName}}/**/*.{xcdatamodeld,xcdatamodel}'
|
||||
|
||||
s.dependency 'AFNetworking', '~> 3'
|
||||
s.dependency 'JSONModel', '~> 1.2'
|
||||
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>_XCCurrentVersionName</key>
|
||||
<string>{{classPrefix}}Model.xcdatamodel</string>
|
||||
</dict>
|
||||
</plist>
|
@ -9,6 +9,7 @@ import java.util.Map;
|
||||
|
||||
public class ObjcClientOptionsProvider implements OptionsProvider {
|
||||
public static final String CLASS_PREFIX_VALUE = "SWGObjc";
|
||||
public static final String CORE_DATA_VALUE = "n";
|
||||
public static final String POD_NAME_VALUE = "SwaggerClientObjc";
|
||||
public static final String POD_VERSION_VALUE = "1.0.0-SNAPSHOT";
|
||||
public static final String AUTHOR_NAME_VALUE = "SwaggerObjc";
|
||||
@ -29,6 +30,7 @@ public class ObjcClientOptionsProvider implements OptionsProvider {
|
||||
.put(ObjcClientCodegen.AUTHOR_NAME, AUTHOR_NAME_VALUE)
|
||||
.put(ObjcClientCodegen.AUTHOR_EMAIL, AUTHOR_EMAIL_VALUE)
|
||||
.put(ObjcClientCodegen.GIT_REPO_URL, GIT_REPO_URL_VALUE)
|
||||
.put(ObjcClientCodegen.CORE_DATA, CORE_DATA_VALUE)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -19,15 +19,16 @@ Pod::Spec.new do |s|
|
||||
s.platform = :ios, '7.0'
|
||||
s.requires_arc = true
|
||||
|
||||
s.framework = 'SystemConfiguration'
|
||||
|
||||
s.frameworks = 'SystemConfiguration', 'CoreData'
|
||||
|
||||
s.homepage = "https://github.com/swagger-api/swagger-codegen"
|
||||
s.license = "Apache License, Version 2.0"
|
||||
s.source = { :git => "https://github.com/swagger-api/swagger-codegen.git", :tag => "#{s.version}" }
|
||||
s.author = { "Swagger" => "apiteam@swagger.io" }
|
||||
|
||||
s.source_files = 'SwaggerClient/**/*'
|
||||
s.source_files = 'SwaggerClient/**/*.{m,h}'
|
||||
s.public_header_files = 'SwaggerClient/**/*.h'
|
||||
s.resources = 'SwaggerClient/**/*.{xcdatamodeld,xcdatamodel}'
|
||||
|
||||
s.dependency 'AFNetworking', '~> 3'
|
||||
s.dependency 'JSONModel', '~> 1.2'
|
||||
|
@ -1,13 +1,5 @@
|
||||
#import "SWGJSONResponseSerializer.h"
|
||||
|
||||
static BOOL JSONParseError(NSError *error) {
|
||||
if ([error.domain isEqualToString:NSCocoaErrorDomain] && error.code == 3840) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
@implementation SWGJSONResponseSerializer
|
||||
|
||||
///
|
||||
@ -17,7 +9,7 @@ static BOOL JSONParseError(NSError *error) {
|
||||
///
|
||||
/// @param response The response to be processed.
|
||||
/// @param data The response data to be decoded.
|
||||
/// @param error The error that occurred while attempting to decode the respnse data.
|
||||
/// @param error The error that occurred while attempting to decode the response data.
|
||||
///
|
||||
/// @return The object decoded from the specified response data.
|
||||
///
|
||||
@ -27,7 +19,7 @@ static BOOL JSONParseError(NSError *error) {
|
||||
NSDictionary *responseJson = [super responseObjectForResponse:response data:data error:error];
|
||||
|
||||
// if response data is not a valid json, return string of data.
|
||||
if (JSONParseError(*error)) {
|
||||
if ([self isParseError:*error]) {
|
||||
*error = nil;
|
||||
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||
return responseString;
|
||||
@ -36,4 +28,12 @@ static BOOL JSONParseError(NSError *error) {
|
||||
return responseJson;
|
||||
}
|
||||
|
||||
-(BOOL)isParseError:(NSError *)error {
|
||||
return [error.domain isEqualToString:NSCocoaErrorDomain] && error.code == 3840;
|
||||
}
|
||||
|
||||
+ (instancetype)serializer {
|
||||
return [self serializerWithReadingOptions:NSJSONReadingAllowFragments];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[@"_id", @"name"];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,20 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@interface SWGCategoryManagedObject : NSManagedObject
|
||||
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* _id;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* name;
|
||||
|
||||
|
||||
@end
|
@ -0,0 +1,13 @@
|
||||
#import "SWGCategoryManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation SWGCategoryManagedObject
|
||||
|
||||
@dynamic _id;
|
||||
@dynamic name;
|
||||
|
||||
@end
|
@ -0,0 +1,28 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
|
||||
#import "SWGCategoryManagedObject.h"
|
||||
#import "SWGCategory.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface SWGCategoryManagedObjectBuilder : NSObject
|
||||
|
||||
|
||||
|
||||
-(SWGCategoryManagedObject*)createNewSWGCategoryManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)Category context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)updateSWGCategoryManagedObject:(SWGCategoryManagedObject*)Category withSWGCategory:(SWGCategory*)Category2;
|
||||
|
||||
-(SWGCategory*)SWGCategoryFromSWGCategoryManagedObject:(SWGCategoryManagedObject*)obj;
|
||||
|
||||
-(void)updateSWGCategory:(SWGCategory*)Category withSWGCategoryManagedObject:(SWGCategoryManagedObject*)Category2;
|
||||
|
||||
@end
|
@ -0,0 +1,53 @@
|
||||
|
||||
|
||||
#import "SWGCategoryManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation SWGCategoryManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(SWGCategoryManagedObject*)createNewSWGCategoryManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
SWGCategoryManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SWGCategoryManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)Category context:(NSManagedObjectContext*)context {
|
||||
SWGCategoryManagedObject* newSWGCategory = [self createNewSWGCategoryManagedObjectInContext:context];
|
||||
[self updateSWGCategoryManagedObject:newSWGCategory withSWGCategory:Category];
|
||||
return newSWGCategory;
|
||||
}
|
||||
|
||||
-(void)updateSWGCategoryManagedObject:(SWGCategoryManagedObject*)managedObject withSWGCategory:(SWGCategory*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
managedObject._id = [object._id copy];
|
||||
managedObject.name = [object.name copy];
|
||||
}
|
||||
|
||||
-(SWGCategory*)SWGCategoryFromSWGCategoryManagedObject:(SWGCategoryManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
SWGCategory* newSWGCategory = [[SWGCategory alloc] init];
|
||||
[self updateSWGCategory:newSWGCategory withSWGCategoryManagedObject:obj];
|
||||
return newSWGCategory;
|
||||
}
|
||||
|
||||
-(void)updateSWGCategory:(SWGCategory*)newSWGCategory withSWGCategoryManagedObject:(SWGCategoryManagedObject*)obj {
|
||||
newSWGCategory._id = [obj._id copy];
|
||||
newSWGCategory.name = [obj.name copy];
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>_XCCurrentVersionName</key>
|
||||
<string>SWGModel.xcdatamodel</string>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9525" systemVersion="15D21" minimumToolsVersion="Xcode 7.0">
|
||||
|
||||
<entity name="SWGCategoryManagedObject" representedClassName="SWGCategoryManagedObject" syncable="YES">
|
||||
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="SWGOrderManagedObject" representedClassName="SWGOrderManagedObject" syncable="YES">
|
||||
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<attribute name="petId" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<attribute name="quantity" optional="YES" attributeType="Integer 16" syncable="YES"/>
|
||||
<attribute name="shipDate" optional="YES" attributeType="Date" syncable="YES"/>
|
||||
<attribute name="status" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="complete" optional="YES" attributeType="Boolean" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="SWGPetManagedObject" representedClassName="SWGPetManagedObject" syncable="YES">
|
||||
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<relationship name="category" optional="YES" maxCount="1" deletionRule="Cascade" destinationEntity="SWGCategoryManagedObject" syncable="YES"/>
|
||||
<attribute name="name" attributeType="String" syncable="YES"/>
|
||||
<attribute name="photoUrls" attributeType="Transformable" syncable="YES"/>
|
||||
<relationship name="tags" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="SWGTagManagedObject" syncable="YES"/>
|
||||
<attribute name="status" optional="YES" attributeType="String" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="SWGTagManagedObject" representedClassName="SWGTagManagedObject" syncable="YES">
|
||||
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="SWGUserManagedObject" representedClassName="SWGUserManagedObject" syncable="YES">
|
||||
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
|
||||
<attribute name="username" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="firstName" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="lastName" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="email" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="password" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="phone" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="userStatus" optional="YES" attributeType="Integer 16" syncable="YES"/>
|
||||
</entity>
|
||||
|
||||
</model>
|
@ -29,7 +29,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[@"_id", @"petId", @"quantity", @"shipDate", @"status", @"complete"];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,29 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@interface SWGOrderManagedObject : NSManagedObject
|
||||
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* _id;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* petId;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* quantity;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSDate* shipDate;
|
||||
/* Order Status [optional]
|
||||
*/
|
||||
@property (nullable, nonatomic, retain) NSString* status;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* complete;
|
||||
|
||||
|
||||
@end
|
@ -0,0 +1,17 @@
|
||||
#import "SWGOrderManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation SWGOrderManagedObject
|
||||
|
||||
@dynamic _id;
|
||||
@dynamic petId;
|
||||
@dynamic quantity;
|
||||
@dynamic shipDate;
|
||||
@dynamic status;
|
||||
@dynamic complete;
|
||||
|
||||
@end
|
@ -0,0 +1,28 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
|
||||
#import "SWGOrderManagedObject.h"
|
||||
#import "SWGOrder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface SWGOrderManagedObjectBuilder : NSObject
|
||||
|
||||
|
||||
|
||||
-(SWGOrderManagedObject*)createNewSWGOrderManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)Order context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)updateSWGOrderManagedObject:(SWGOrderManagedObject*)Order withSWGOrder:(SWGOrder*)Order2;
|
||||
|
||||
-(SWGOrder*)SWGOrderFromSWGOrderManagedObject:(SWGOrderManagedObject*)obj;
|
||||
|
||||
-(void)updateSWGOrder:(SWGOrder*)Order withSWGOrderManagedObject:(SWGOrderManagedObject*)Order2;
|
||||
|
||||
@end
|
@ -0,0 +1,61 @@
|
||||
|
||||
|
||||
#import "SWGOrderManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation SWGOrderManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(SWGOrderManagedObject*)createNewSWGOrderManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
SWGOrderManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SWGOrderManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)Order context:(NSManagedObjectContext*)context {
|
||||
SWGOrderManagedObject* newSWGOrder = [self createNewSWGOrderManagedObjectInContext:context];
|
||||
[self updateSWGOrderManagedObject:newSWGOrder withSWGOrder:Order];
|
||||
return newSWGOrder;
|
||||
}
|
||||
|
||||
-(void)updateSWGOrderManagedObject:(SWGOrderManagedObject*)managedObject withSWGOrder:(SWGOrder*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
managedObject._id = [object._id copy];
|
||||
managedObject.petId = [object.petId copy];
|
||||
managedObject.quantity = [object.quantity copy];
|
||||
managedObject.shipDate = [object.shipDate copy];
|
||||
managedObject.status = [object.status copy];
|
||||
managedObject.complete = [object.complete copy];
|
||||
}
|
||||
|
||||
-(SWGOrder*)SWGOrderFromSWGOrderManagedObject:(SWGOrderManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
SWGOrder* newSWGOrder = [[SWGOrder alloc] init];
|
||||
[self updateSWGOrder:newSWGOrder withSWGOrderManagedObject:obj];
|
||||
return newSWGOrder;
|
||||
}
|
||||
|
||||
-(void)updateSWGOrder:(SWGOrder*)newSWGOrder withSWGOrderManagedObject:(SWGOrderManagedObject*)obj {
|
||||
newSWGOrder._id = [obj._id copy];
|
||||
newSWGOrder.petId = [obj.petId copy];
|
||||
newSWGOrder.quantity = [obj.quantity copy];
|
||||
newSWGOrder.shipDate = [obj.shipDate copy];
|
||||
newSWGOrder.status = [obj.status copy];
|
||||
newSWGOrder.complete = [obj.complete copy];
|
||||
}
|
||||
|
||||
@end
|
@ -29,7 +29,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[@"_id", @"category", @"tags", @"status"];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,35 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
#import "SWGCategoryManagedObject.h"
|
||||
#import "SWGTagManagedObject.h"
|
||||
|
||||
|
||||
@interface SWGPetManagedObject : NSManagedObject
|
||||
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* _id;
|
||||
|
||||
@property (nullable, nonatomic, retain) SWGCategoryManagedObject* category;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* name;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSArray<NSString*>* photoUrls;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSSet* tags;
|
||||
/* pet status in the store [optional]
|
||||
*/
|
||||
@property (nullable, nonatomic, retain) NSString* status;
|
||||
|
||||
- (void)addTagsObject:(SWGTagManagedObject *)value;
|
||||
- (void)removeTagsObject:(SWGTagManagedObject *)value;
|
||||
- (void)addTags:(NSSet *)values;
|
||||
- (void)removeTags:(NSSet *)values;
|
||||
|
||||
@end
|
@ -0,0 +1,17 @@
|
||||
#import "SWGPetManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation SWGPetManagedObject
|
||||
|
||||
@dynamic _id;
|
||||
@dynamic category;
|
||||
@dynamic name;
|
||||
@dynamic photoUrls;
|
||||
@dynamic tags;
|
||||
@dynamic status;
|
||||
|
||||
@end
|
@ -0,0 +1,32 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
#import "SWGCategoryManagedObjectBuilder.h"
|
||||
#import "SWGTagManagedObjectBuilder.h"
|
||||
|
||||
#import "SWGPetManagedObject.h"
|
||||
#import "SWGPet.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface SWGPetManagedObjectBuilder : NSObject
|
||||
|
||||
@property (nonatomic, strong) SWGCategoryManagedObjectBuilder * categoryBuilder;
|
||||
@property (nonatomic, strong) SWGTagManagedObjectBuilder * tagsBuilder;
|
||||
|
||||
|
||||
-(SWGPetManagedObject*)createNewSWGPetManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)Pet context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)updateSWGPetManagedObject:(SWGPetManagedObject*)Pet withSWGPet:(SWGPet*)Pet2;
|
||||
|
||||
-(SWGPet*)SWGPetFromSWGPetManagedObject:(SWGPetManagedObject*)obj;
|
||||
|
||||
-(void)updateSWGPet:(SWGPet*)Pet withSWGPetManagedObject:(SWGPetManagedObject*)Pet2;
|
||||
|
||||
@end
|
@ -0,0 +1,83 @@
|
||||
|
||||
|
||||
#import "SWGPetManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation SWGPetManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
_categoryBuilder = [[SWGCategoryManagedObjectBuilder alloc] init];
|
||||
_tagsBuilder = [[SWGTagManagedObjectBuilder alloc] init];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(SWGPetManagedObject*)createNewSWGPetManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
SWGPetManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SWGPetManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)Pet context:(NSManagedObjectContext*)context {
|
||||
SWGPetManagedObject* newSWGPet = [self createNewSWGPetManagedObjectInContext:context];
|
||||
[self updateSWGPetManagedObject:newSWGPet withSWGPet:Pet];
|
||||
return newSWGPet;
|
||||
}
|
||||
|
||||
-(void)updateSWGPetManagedObject:(SWGPetManagedObject*)managedObject withSWGPet:(SWGPet*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
managedObject._id = [object._id copy];
|
||||
|
||||
if(!managedObject.category) {
|
||||
managedObject.category = [self.categoryBuilder SWGCategoryManagedObjectFromSWGCategory:object.category context:managedObject.managedObjectContext];
|
||||
} else {
|
||||
[self.categoryBuilder updateSWGCategoryManagedObject:managedObject.category withSWGCategory:object.category];
|
||||
}
|
||||
managedObject.name = [object.name copy];
|
||||
managedObject.photoUrls = [object.photoUrls copy];
|
||||
if(object.tags) {
|
||||
NSMutableSet * convertedObjs = [NSMutableSet set];
|
||||
for (id innerObject in object.tags) {
|
||||
id convertedObj = [self.tagsBuilder SWGTagManagedObjectFromSWGTag:innerObject context:managedObject.managedObjectContext];
|
||||
[convertedObjs addObject:convertedObj];
|
||||
}
|
||||
managedObject.tags = convertedObjs;
|
||||
}
|
||||
managedObject.status = [object.status copy];
|
||||
}
|
||||
|
||||
-(SWGPet*)SWGPetFromSWGPetManagedObject:(SWGPetManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
SWGPet* newSWGPet = [[SWGPet alloc] init];
|
||||
[self updateSWGPet:newSWGPet withSWGPetManagedObject:obj];
|
||||
return newSWGPet;
|
||||
}
|
||||
|
||||
-(void)updateSWGPet:(SWGPet*)newSWGPet withSWGPetManagedObject:(SWGPetManagedObject*)obj {
|
||||
newSWGPet._id = [obj._id copy];
|
||||
newSWGPet.category = [self.categoryBuilder SWGCategoryFromSWGCategoryManagedObject:obj.category];
|
||||
newSWGPet.name = [obj.name copy];
|
||||
newSWGPet.photoUrls = [obj.photoUrls copy];
|
||||
if(obj.tags != nil) {
|
||||
NSMutableArray* convertedObjs = [NSMutableArray array];
|
||||
for (id innerObject in obj.tags) {
|
||||
id convertedObj = [self.tagsBuilder SWGTagFromSWGTagManagedObject:innerObject];
|
||||
[convertedObjs addObject:convertedObj];
|
||||
}
|
||||
newSWGPet.tags = (NSArray<SWGTag>*)convertedObjs;
|
||||
}
|
||||
|
||||
newSWGPet.status = [obj.status copy];
|
||||
}
|
||||
|
||||
@end
|
@ -29,7 +29,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[@"_id", @"name"];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,20 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@interface SWGTagManagedObject : NSManagedObject
|
||||
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* _id;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* name;
|
||||
|
||||
|
||||
@end
|
@ -0,0 +1,13 @@
|
||||
#import "SWGTagManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation SWGTagManagedObject
|
||||
|
||||
@dynamic _id;
|
||||
@dynamic name;
|
||||
|
||||
@end
|
@ -0,0 +1,28 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
|
||||
#import "SWGTagManagedObject.h"
|
||||
#import "SWGTag.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface SWGTagManagedObjectBuilder : NSObject
|
||||
|
||||
|
||||
|
||||
-(SWGTagManagedObject*)createNewSWGTagManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)Tag context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)updateSWGTagManagedObject:(SWGTagManagedObject*)Tag withSWGTag:(SWGTag*)Tag2;
|
||||
|
||||
-(SWGTag*)SWGTagFromSWGTagManagedObject:(SWGTagManagedObject*)obj;
|
||||
|
||||
-(void)updateSWGTag:(SWGTag*)Tag withSWGTagManagedObject:(SWGTagManagedObject*)Tag2;
|
||||
|
||||
@end
|
@ -0,0 +1,53 @@
|
||||
|
||||
|
||||
#import "SWGTagManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation SWGTagManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(SWGTagManagedObject*)createNewSWGTagManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
SWGTagManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SWGTagManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)Tag context:(NSManagedObjectContext*)context {
|
||||
SWGTagManagedObject* newSWGTag = [self createNewSWGTagManagedObjectInContext:context];
|
||||
[self updateSWGTagManagedObject:newSWGTag withSWGTag:Tag];
|
||||
return newSWGTag;
|
||||
}
|
||||
|
||||
-(void)updateSWGTagManagedObject:(SWGTagManagedObject*)managedObject withSWGTag:(SWGTag*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
managedObject._id = [object._id copy];
|
||||
managedObject.name = [object.name copy];
|
||||
}
|
||||
|
||||
-(SWGTag*)SWGTagFromSWGTagManagedObject:(SWGTagManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
SWGTag* newSWGTag = [[SWGTag alloc] init];
|
||||
[self updateSWGTag:newSWGTag withSWGTagManagedObject:obj];
|
||||
return newSWGTag;
|
||||
}
|
||||
|
||||
-(void)updateSWGTag:(SWGTag*)newSWGTag withSWGTagManagedObject:(SWGTagManagedObject*)obj {
|
||||
newSWGTag._id = [obj._id copy];
|
||||
newSWGTag.name = [obj.name copy];
|
||||
}
|
||||
|
||||
@end
|
@ -29,7 +29,6 @@
|
||||
|
||||
NSArray *optionalProperties = @[@"_id", @"username", @"firstName", @"lastName", @"email", @"password", @"phone", @"userStatus"];
|
||||
return [optionalProperties containsObject:propertyName];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,33 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@interface SWGUserManagedObject : NSManagedObject
|
||||
|
||||
|
||||
@property (nullable, nonatomic, retain) NSNumber* _id;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* username;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* firstName;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* lastName;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* email;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* password;
|
||||
|
||||
@property (nullable, nonatomic, retain) NSString* phone;
|
||||
/* User Status [optional]
|
||||
*/
|
||||
@property (nullable, nonatomic, retain) NSNumber* userStatus;
|
||||
|
||||
|
||||
@end
|
@ -0,0 +1,19 @@
|
||||
#import "SWGUserManagedObject.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
@implementation SWGUserManagedObject
|
||||
|
||||
@dynamic _id;
|
||||
@dynamic username;
|
||||
@dynamic firstName;
|
||||
@dynamic lastName;
|
||||
@dynamic email;
|
||||
@dynamic password;
|
||||
@dynamic phone;
|
||||
@dynamic userStatus;
|
||||
|
||||
@end
|
@ -0,0 +1,28 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
|
||||
#import "SWGUserManagedObject.h"
|
||||
#import "SWGUser.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@interface SWGUserManagedObjectBuilder : NSObject
|
||||
|
||||
|
||||
|
||||
-(SWGUserManagedObject*)createNewSWGUserManagedObjectInContext:(NSManagedObjectContext*)context;
|
||||
|
||||
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)User context:(NSManagedObjectContext*)context;
|
||||
|
||||
-(void)updateSWGUserManagedObject:(SWGUserManagedObject*)User withSWGUser:(SWGUser*)User2;
|
||||
|
||||
-(SWGUser*)SWGUserFromSWGUserManagedObject:(SWGUserManagedObject*)obj;
|
||||
|
||||
-(void)updateSWGUser:(SWGUser*)User withSWGUserManagedObject:(SWGUserManagedObject*)User2;
|
||||
|
||||
@end
|
@ -0,0 +1,65 @@
|
||||
|
||||
|
||||
#import "SWGUserManagedObjectBuilder.h"
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
@implementation SWGUserManagedObjectBuilder
|
||||
|
||||
-(instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
-(SWGUserManagedObject*)createNewSWGUserManagedObjectInContext:(NSManagedObjectContext*)context {
|
||||
SWGUserManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SWGUserManagedObject class]) inManagedObjectContext:context];
|
||||
return managedObject;
|
||||
}
|
||||
|
||||
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)User context:(NSManagedObjectContext*)context {
|
||||
SWGUserManagedObject* newSWGUser = [self createNewSWGUserManagedObjectInContext:context];
|
||||
[self updateSWGUserManagedObject:newSWGUser withSWGUser:User];
|
||||
return newSWGUser;
|
||||
}
|
||||
|
||||
-(void)updateSWGUserManagedObject:(SWGUserManagedObject*)managedObject withSWGUser:(SWGUser*)object {
|
||||
if(!managedObject || !object) {
|
||||
return;
|
||||
}
|
||||
managedObject._id = [object._id copy];
|
||||
managedObject.username = [object.username copy];
|
||||
managedObject.firstName = [object.firstName copy];
|
||||
managedObject.lastName = [object.lastName copy];
|
||||
managedObject.email = [object.email copy];
|
||||
managedObject.password = [object.password copy];
|
||||
managedObject.phone = [object.phone copy];
|
||||
managedObject.userStatus = [object.userStatus copy];
|
||||
}
|
||||
|
||||
-(SWGUser*)SWGUserFromSWGUserManagedObject:(SWGUserManagedObject*)obj {
|
||||
if(!obj) {
|
||||
return nil;
|
||||
}
|
||||
SWGUser* newSWGUser = [[SWGUser alloc] init];
|
||||
[self updateSWGUser:newSWGUser withSWGUserManagedObject:obj];
|
||||
return newSWGUser;
|
||||
}
|
||||
|
||||
-(void)updateSWGUser:(SWGUser*)newSWGUser withSWGUserManagedObject:(SWGUserManagedObject*)obj {
|
||||
newSWGUser._id = [obj._id copy];
|
||||
newSWGUser.username = [obj.username copy];
|
||||
newSWGUser.firstName = [obj.firstName copy];
|
||||
newSWGUser.lastName = [obj.lastName copy];
|
||||
newSWGUser.email = [obj.email copy];
|
||||
newSWGUser.password = [obj.password copy];
|
||||
newSWGUser.phone = [obj.phone copy];
|
||||
newSWGUser.userStatus = [obj.userStatus copy];
|
||||
}
|
||||
|
||||
@end
|
@ -21,8 +21,10 @@
|
||||
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
|
||||
6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; };
|
||||
94BE6BE84795B5034A811E61 /* libPods-SwaggerClient_Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D46325ECAD48245C07F6733 /* libPods-SwaggerClient_Example.a */; };
|
||||
B2ADC0B1C8A60A05C48B4DF7 /* DatabaseHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B2ADC55130D5E329ED945E8F /* DatabaseHelper.m */; };
|
||||
B2ADC17C287DCABF329BA8AC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B2ADC7027D4B025ABCA7999F /* Main.storyboard */; };
|
||||
B2ADC2D632658A5F73C6CE66 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2ADC65E342ADA697322D68C /* Images.xcassets */; };
|
||||
B2ADC3C7634D15595DD14814 /* BuildersTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B2ADC838FCC22F4BC6C41106 /* BuildersTest.m */; };
|
||||
B2ADC56977372855A63F4E4D /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B2ADC084A2C0BDF217832B03 /* Launch Screen.storyboard */; };
|
||||
CF0ADB481B5F95D6008A2729 /* PetTest.m in Sources */ = {isa = PBXBuildFile; fileRef = CF0ADB471B5F95D6008A2729 /* PetTest.m */; };
|
||||
CF8F71391B5F73AC00162980 /* DeserializationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = CF8F71381B5F73AC00162980 /* DeserializationTest.m */; };
|
||||
@ -66,8 +68,11 @@
|
||||
73CCD82196AABD64F2807C7B /* Pods-SwaggerClient_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwaggerClient_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SwaggerClient_Tests/Pods-SwaggerClient_Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
8D46325ECAD48245C07F6733 /* libPods-SwaggerClient_Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SwaggerClient_Example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B2ADC084A2C0BDF217832B03 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = "Launch Screen.storyboard"; path = "SwaggerClient/Launch Screen.storyboard"; sourceTree = "<group>"; };
|
||||
B2ADC2F3483B3117A00FA91C /* DatabaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseHelper.h; sourceTree = "<group>"; };
|
||||
B2ADC55130D5E329ED945E8F /* DatabaseHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DatabaseHelper.m; sourceTree = "<group>"; };
|
||||
B2ADC65E342ADA697322D68C /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = SwaggerClient/Images.xcassets; sourceTree = "<group>"; };
|
||||
B2ADC7027D4B025ABCA7999F /* Main.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Main.storyboard; path = SwaggerClient/Main.storyboard; sourceTree = "<group>"; };
|
||||
B2ADC838FCC22F4BC6C41106 /* BuildersTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BuildersTest.m; sourceTree = "<group>"; };
|
||||
BFB4BE760737508B3CFC23B2 /* Pods-SwaggerClient_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwaggerClient_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-SwaggerClient_Example/Pods-SwaggerClient_Example.release.xcconfig"; sourceTree = "<group>"; };
|
||||
CF0ADB471B5F95D6008A2729 /* PetTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PetTest.m; sourceTree = "<group>"; };
|
||||
CF8F71381B5F73AC00162980 /* DeserializationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeserializationTest.m; sourceTree = "<group>"; };
|
||||
@ -176,6 +181,8 @@
|
||||
CFDFB40D1B3CFEC3009739C5 /* UserApiTest.m */,
|
||||
6003F5BB195388D20070C39A /* Tests.m */,
|
||||
6003F5B6195388D20070C39A /* Supporting Files */,
|
||||
B2ADC838FCC22F4BC6C41106 /* BuildersTest.m */,
|
||||
B2ADCA62DE4AC0F5BAB42208 /* Helpers */,
|
||||
);
|
||||
path = Tests;
|
||||
sourceTree = "<group>";
|
||||
@ -201,6 +208,15 @@
|
||||
name = "Podspec Metadata";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B2ADCA62DE4AC0F5BAB42208 /* Helpers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B2ADC2F3483B3117A00FA91C /* DatabaseHelper.h */,
|
||||
B2ADC55130D5E329ED945E8F /* DatabaseHelper.m */,
|
||||
);
|
||||
path = Helpers;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CCE77F10C6D41F74B075ECD0 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -422,6 +438,8 @@
|
||||
CFDFB4151B3D000B009739C5 /* SWGApiClientTest.m in Sources */,
|
||||
CFDFB4121B3CFFA8009739C5 /* UserApiTest.m in Sources */,
|
||||
CF8F71391B5F73AC00162980 /* DeserializationTest.m in Sources */,
|
||||
B2ADC3C7634D15595DD14814 /* BuildersTest.m in Sources */,
|
||||
B2ADC0B1C8A60A05C48B4DF7 /* DatabaseHelper.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -0,0 +1,68 @@
|
||||
//
|
||||
// BuildersTest.m
|
||||
// SwaggerClient
|
||||
//
|
||||
// Created by mmackowiak on 16.05.2016.
|
||||
// Copyright (c) 2016 geekerzp. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
#import <SwaggerClient/SWGPet.h>
|
||||
#import "SWGPetManagedObject.h"
|
||||
#import "SWGPetManagedObjectBuilder.h"
|
||||
#import "DatabaseHelper.h"
|
||||
|
||||
@interface BuildersTest : XCTestCase {
|
||||
SWGPet *pet;
|
||||
SWGPetManagedObjectBuilder* builder;
|
||||
NSManagedObjectContext *context;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BuildersTest
|
||||
|
||||
- (void)setUp {
|
||||
[super setUp];
|
||||
|
||||
NSDictionary *petDict = @{ @"id": @1, @"name": @"test pet",
|
||||
@"status": @"sold",
|
||||
@"photoUrls": @[@"string"],
|
||||
@"category": @{ @"id": @1, @"name": @"test category" },
|
||||
@"tags": @[ @{ @"id": @1, @"name": @"test tag" }],
|
||||
};
|
||||
pet = [[SWGPet alloc] initWithDictionary:petDict error:nil];
|
||||
|
||||
context = [DatabaseHelper createContextWithModelName:@"SWGModel"];
|
||||
|
||||
builder = [[SWGPetManagedObjectBuilder alloc] init];
|
||||
}
|
||||
|
||||
- (void)tearDown {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testExample {
|
||||
SWGPetManagedObject * managedObject = [builder SWGPetManagedObjectFromSWGPet:pet context:context];
|
||||
SWGPet *pet2 = [builder SWGPetFromSWGPetManagedObject:managedObject];
|
||||
[context deleteObject:managedObject];
|
||||
SWGTag * tag = [pet.tags firstObject];
|
||||
SWGTag * tag2 = [pet2.tags firstObject];
|
||||
XCTAssertEqualObjects(tag._id, tag2._id);
|
||||
XCTAssertEqualObjects(tag.name, tag2.name);
|
||||
|
||||
SWGCategory * category = pet.category;
|
||||
SWGCategory * category2 = pet2.category;
|
||||
|
||||
XCTAssertEqualObjects(category._id, category2._id);
|
||||
XCTAssertEqualObjects(category.name, category2.name);
|
||||
|
||||
XCTAssertEqualObjects(pet.status,pet2.status);
|
||||
XCTAssertEqualObjects(pet.photoUrls,pet2.photoUrls);
|
||||
XCTAssertEqualObjects(pet.name,pet2.name);
|
||||
XCTAssertEqualObjects(pet._id,pet2._id);
|
||||
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,14 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
@interface DatabaseHelper : NSObject
|
||||
|
||||
+ (NSManagedObjectContext *)createContextWithModelName:(NSString *)mName;
|
||||
|
||||
+ (void)clearContext:(NSManagedObjectContext *)ctx fromEntitiesWithName:(NSString *)entityName;
|
||||
|
||||
+ (NSManagedObjectModel *)createModelWithModelName:(NSString *)mName;
|
||||
|
||||
+ (NSManagedObjectContext *)createDatabaseWithModel:(NSManagedObjectModel*)model;
|
||||
|
||||
@end
|
@ -0,0 +1,42 @@
|
||||
#import "DatabaseHelper.h"
|
||||
|
||||
@implementation DatabaseHelper
|
||||
|
||||
|
||||
+ (NSManagedObjectContext *)createContextWithModelName:(NSString *)mName {
|
||||
NSManagedObjectModel *model = [self createModelWithModelName:mName];
|
||||
return [self createDatabaseWithModel:model];
|
||||
}
|
||||
|
||||
+ (NSManagedObjectContext *)createDatabaseWithModel:(NSManagedObjectModel*)model {
|
||||
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
|
||||
[coordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];
|
||||
|
||||
NSManagedObjectContext *testingContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
|
||||
[testingContext setPersistentStoreCoordinator:coordinator];
|
||||
[testingContext setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
|
||||
return testingContext;
|
||||
}
|
||||
|
||||
+ (NSManagedObjectModel *)createModelWithModelName:(NSString *)mName {
|
||||
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
|
||||
NSString *path = [bundle pathForResource:mName ofType:@"momd"];
|
||||
NSAssert(path, @"Missing Model for name: %@",mName);
|
||||
NSURL *modURL = [NSURL fileURLWithPath:path];
|
||||
return [[NSManagedObjectModel alloc] initWithContentsOfURL:modURL];
|
||||
}
|
||||
|
||||
+ (void)clearContext:(NSManagedObjectContext *)ctx fromEntitiesWithName:(NSString *)entityName {
|
||||
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
|
||||
[fetch setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:ctx]];
|
||||
NSError *error = nil;
|
||||
NSArray *result = [ctx executeFetchRequest:fetch error:&error];
|
||||
if (error) {
|
||||
NSLog(@"Failed clearing context from entities with name [%@]", error);
|
||||
}
|
||||
for (id basket in result) {
|
||||
[ctx deleteObject:basket];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
Loading…
x
Reference in New Issue
Block a user