#import "SWGUserApi.h" #import "SWGFile.h" #import "SWGQueryParamCollection.h" #import "SWGUser.h" @interface SWGUserApi () @property (readwrite, nonatomic, strong) NSMutableDictionary *defaultHeaders; @end @implementation SWGUserApi static NSString * basePath = @"http://petstore.swagger.io/v2"; #pragma mark - Initialize methods - (id) init { self = [super init]; if (self) { self.apiClient = [SWGApiClient sharedClientFromPool:basePath]; self.defaultHeaders = [NSMutableDictionary dictionary]; } return self; } - (id) initWithApiClient:(SWGApiClient *)apiClient { self = [super init]; if (self) { if (apiClient) { self.apiClient = apiClient; } else { self.apiClient = [SWGApiClient sharedClientFromPool:basePath]; } self.defaultHeaders = [NSMutableDictionary dictionary]; } return self; } #pragma mark - +(SWGUserApi*) apiWithHeader:(NSString*)headerValue key:(NSString*)key { static SWGUserApi* singletonAPI = nil; if (singletonAPI == nil) { singletonAPI = [[SWGUserApi alloc] init]; [singletonAPI addHeader:headerValue forKey:key]; } return singletonAPI; } +(void) setBasePath:(NSString*)path { basePath = path; } +(NSString*) getBasePath { return basePath; } -(void) addHeader:(NSString*)value forKey:(NSString*)key { [self.defaultHeaders setValue:value forKey:key]; } -(void) setHeaderValue:(NSString*) value forKey:(NSString*)key { [self.defaultHeaders setValue:value forKey:key]; } -(unsigned long) requestQueueSize { return [SWGApiClient requestQueueSize]; } #pragma mark - Api Methods /// /// Create user /// This can only be done by the logged in user. /// @param body Created user object /// /// @returns void /// -(NSNumber*) createUserWithCompletionBlock: (SWGUser*) body completionHandler: (void (^)(NSError* error))completionBlock { NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; bodyParam = body; if(bodyParam != nil && [bodyParam isKindOfClass:[NSArray class]]){ NSMutableArray *objs = [[NSMutableArray alloc] init]; for (id dict in (NSArray*)bodyParam) { if([dict respondsToSelector:@selector(toDictionary)]) { [objs addObject:[(SWGObject*)dict toDictionary]]; } else{ [objs addObject:dict]; } } bodyParam = objs; } else if([bodyParam respondsToSelector:@selector(toDictionary)]) { bodyParam = [(SWGObject*)bodyParam toDictionary]; } return [self.apiClient requestWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } /// /// Creates list of users with given input array /// /// @param body List of user object /// /// @returns void /// -(NSNumber*) createUsersWithArrayInputWithCompletionBlock: (NSArray*) body completionHandler: (void (^)(NSError* error))completionBlock { NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/createWithArray", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; bodyParam = body; if(bodyParam != nil && [bodyParam isKindOfClass:[NSArray class]]){ NSMutableArray *objs = [[NSMutableArray alloc] init]; for (id dict in (NSArray*)bodyParam) { if([dict respondsToSelector:@selector(toDictionary)]) { [objs addObject:[(SWGObject*)dict toDictionary]]; } else{ [objs addObject:dict]; } } bodyParam = objs; } else if([bodyParam respondsToSelector:@selector(toDictionary)]) { bodyParam = [(SWGObject*)bodyParam toDictionary]; } return [self.apiClient requestWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } /// /// Creates list of users with given input array /// /// @param body List of user object /// /// @returns void /// -(NSNumber*) createUsersWithListInputWithCompletionBlock: (NSArray*) body completionHandler: (void (^)(NSError* error))completionBlock { NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/createWithList", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; bodyParam = body; if(bodyParam != nil && [bodyParam isKindOfClass:[NSArray class]]){ NSMutableArray *objs = [[NSMutableArray alloc] init]; for (id dict in (NSArray*)bodyParam) { if([dict respondsToSelector:@selector(toDictionary)]) { [objs addObject:[(SWGObject*)dict toDictionary]]; } else{ [objs addObject:dict]; } } bodyParam = objs; } else if([bodyParam respondsToSelector:@selector(toDictionary)]) { bodyParam = [(SWGObject*)bodyParam toDictionary]; } return [self.apiClient requestWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } /// /// Logs user into the system /// /// @param username The user name for login /// /// @param password The password for login in clear text /// /// @returns NSString* /// -(NSNumber*) loginUserWithCompletionBlock: (NSString*) username password: (NSString*) password completionHandler: (void (^)(NSString* output, NSError* error))completionBlock { NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/login", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; if(username != nil) { queryParams[@"username"] = username; } if(password != nil) { queryParams[@"password"] = password; } NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; NSMutableDictionary * formParams = [[NSMutableDictionary alloc]init]; return [self.apiClient requestWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock([self.apiClient deserialize: data class:@"NSString*"], error); } ]; } /// /// Logs out current logged in user session /// /// @returns void /// -(NSNumber*) logoutUserWithCompletionBlock: (void (^)(NSError* error))completionBlock { NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/logout", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; NSMutableDictionary * formParams = [[NSMutableDictionary alloc]init]; return [self.apiClient requestWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } /// /// Get user by user name /// /// @param username The name that needs to be fetched. Use user1 for testing. /// /// @returns SWGUser* /// -(NSNumber*) getUserByNameWithCompletionBlock: (NSString*) username completionHandler: (void (^)(SWGUser* output, NSError* error))completionBlock { // verify the required parameter 'username' is set if (username == nil) { [NSException raise:@"Invalid parameter" format:@"Missing the required parameter `username` when calling `getUserByName`"]; } NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/{username}", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"username", @"}"]] withString: [SWGApiClient escape:username]]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; NSMutableDictionary * formParams = [[NSMutableDictionary alloc]init]; return [self.apiClient requestWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock([self.apiClient deserialize: data class:@"SWGUser*"], error); } ]; } /// /// Updated user /// This can only be done by the logged in user. /// @param username name that need to be deleted /// /// @param body Updated user object /// /// @returns void /// -(NSNumber*) updateUserWithCompletionBlock: (NSString*) username body: (SWGUser*) body completionHandler: (void (^)(NSError* error))completionBlock { // verify the required parameter 'username' is set if (username == nil) { [NSException raise:@"Invalid parameter" format:@"Missing the required parameter `username` when calling `updateUser`"]; } NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/{username}", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"username", @"}"]] withString: [SWGApiClient escape:username]]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; bodyParam = body; if(bodyParam != nil && [bodyParam isKindOfClass:[NSArray class]]){ NSMutableArray *objs = [[NSMutableArray alloc] init]; for (id dict in (NSArray*)bodyParam) { if([dict respondsToSelector:@selector(toDictionary)]) { [objs addObject:[(SWGObject*)dict toDictionary]]; } else{ [objs addObject:dict]; } } bodyParam = objs; } else if([bodyParam respondsToSelector:@selector(toDictionary)]) { bodyParam = [(SWGObject*)bodyParam toDictionary]; } return [self.apiClient requestWithCompletionBlock: requestUrl method: @"PUT" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } /// /// Delete user /// This can only be done by the logged in user. /// @param username The name that needs to be deleted /// /// @returns void /// -(NSNumber*) deleteUserWithCompletionBlock: (NSString*) username completionHandler: (void (^)(NSError* error))completionBlock { // verify the required parameter 'username' is set if (username == nil) { [NSException raise:@"Invalid parameter" format:@"Missing the required parameter `username` when calling `deleteUser`"]; } NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/user/{username}", basePath]; // remove format in URL if needed if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound) [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"]; [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"username", @"}"]] withString: [SWGApiClient escape:username]]; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; // HTTP header `Accept` headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:@[@"application/json", @"application/xml"]]; if ([headerParams[@"Accept"] length] == 0) { [headerParams removeObjectForKey:@"Accept"]; } // response content type NSString *responseContentType; if ([headerParams objectForKey:@"Accept"]) { responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0]; } else { responseContentType = @""; } // request content type NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]]; // Authentication setting NSArray *authSettings = @[]; id bodyParam = nil; NSMutableDictionary * formParams = [[NSMutableDictionary alloc]init]; return [self.apiClient requestWithCompletionBlock: requestUrl method: @"DELETE" queryParams: queryParams body: bodyParam headerParams: headerParams authSettings: authSettings requestContentType: requestContentType responseContentType: responseContentType completionBlock: ^(id data, NSError *error) { completionBlock(error); } ]; } @end