Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ServerManager.h
- // IronWorldProject
- //
- // Created by Oleg Petruk on 31.05.16.
- // Copyright © 2016 petruska. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <VK-ios-sdk/VKUser.h>
- @class UIImage;
- @class LoginResponceServerModel;
- @class RegistrationResponceServerModel;
- @class FaceBookUserServerModel;
- @class UploadAvatarResponceServerModel;
- @class SinglePlaceServerModel;
- @class PlaceShortInfoServerModel;
- @interface ServerManager : NSObject
- // codes of responce status
- enum {
- SUCCESS = 200,
- EMAIL_EXIST = -103,
- EMAIL_NOT_FOUND = -100,
- WRONG_EMAIL = -101,
- NOT_FOUND = -3,
- CANNOT_CREATE_USER = -2,
- WRONG_PASSWORD = -201,
- EMPTY_PASSWORD = -202,
- FILE_CANNOT_SAVE = -304,
- CANNOT_SAVE_DATE = -666,
- CANNOT_REMOVE_DATE = -777,
- EMPTY_VALUES = -888,
- CONNECTION_ERROR = -1009
- };
- // Singletond
- + (ServerManager *) sharedManager;
- #pragma mark -Image
- - (void)loadSingleImageFromURL:(NSURL *)imageURL
- onSuccess:(void(^)(UIImage * image)) success
- onFailure:(void(^)(NSError* error)) failure;
- #pragma mark -Auth
- - (void)loginUserWithEmail:(NSString *)email
- password:(NSString *)password
- onSuccess:(void(^)(LoginResponceServerModel * loginResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)registrateUserWithFirstName:(NSString *)firstName
- surnameName:(NSString *)surname
- email:(NSString *)email
- password:(NSString *)password
- gender:(NSInteger )genderType
- birthday:(NSString *)birthday
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)registrateUserWithVK:(VKUser *) vkUser
- userID:(NSString *)userID
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)registrateUserWithFacebook:(FaceBookUserServerModel *) faceBookUserServerModel
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)sendNewPasswordToEmail:(NSString *)email
- onSuccess:(void(^)(id resultJSON)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)updateProfileAvatarWithImage:(UIImage *)avatar withToken:(NSString *) token
- onSuccess:(void(^)(UploadAvatarResponceServerModel * uploadAvatarResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- #pragma -BOOKS
- // for book we download JSON for navigation on book
- - (void)loadJSONFileForURL:(NSURL *)URL
- onSuccess:(void(^)(NSString * JSONStr)) success
- onFailure:(void(^)(NSError* error)) failure;
- // ask urls for books, count of urls
- - (void)getBooksPagesWithBookID:(NSString *)bookID
- onSuccess:(void(^)(NSArray * imagesNameArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- // Download all images witch we get from getBooksPagesWithBookID request
- - (void)loadArrayOfImages:(NSArray *)arrayOfImages
- withProgress:(void(^)(UIImage * downloadedImage, NSInteger indexOfImage))progress
- onFailure:(void(^)(NSInteger indexOfImage))failure;
- // for example, user downloaded 100 images and save them to cahse, but he lost internet connection, we must delete alredy donwloaded images
- - (void)deleteArrayOfURLFromCashe:(NSArray *)arrayOfURLs;
- #pragma mark -MAPS
- - (void)getInfAboutSinglePlaceWithID:(NSString *)placeID
- onSuccess:(void(^)(SinglePlaceServerModel * singlePlaceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)getShortInfoAboutPlaceWithID:(NSString *)placeID
- userLatPos:(NSString *)latPos
- andUserLngPos:(NSString *)lngPos
- onSuccess:(void(^)(PlaceShortInfoServerModel * placeShortInfoServerModel)) success
- onFailure:(void(^)(NSError* error)) failure;
- // for map
- - (void)getMarkersForMapWithFiltersArray:(NSArray *)filtersArray
- radius:(NSString *)radius
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- // for collection
- - (void)getMarkersForCollectionWithFiltersArray:(NSArray *)filtersArray
- radius:(NSString *)radius
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * placesArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)searchMarkersWithText:(NSString *)text
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- radius:(NSString *)radius
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- - (void)getMarkersWithIdArray:(NSArray *)idsArray
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- @end
- //
- // ServerManager.m
- // IronWorldProject
- //
- // Created by Oleg Petruk on 31.05.16.
- // Copyright © 2016 petruska. All rights reserved.
- //
- #import "ServerManager.h"
- #import <AFNetworking/AFNetworking.h>
- #import "LoginResponceServerModel.h"
- #import "RegistrationResponceServerModel.h"
- #import <SDWebImage/UIImageView+WebCache.h>
- #import <SDWebImage/SDImageCache.h>
- #import "FaceBookUserServerModel.h"
- #import "UploadAvatarResponceServerModel.h"
- #import "SinglePlaceServerModel.h"
- #import "MarkerServerModel.h"
- #import "PlaceShortInfoServerModel.h"
- #import "SearchPlaceServerModel.h"
- #import "PlaceListServerModel.h"
- @interface ServerManager ()
- @property (strong, nonatomic) AFHTTPSessionManager * requestOperationManager;
- @end
- @implementation ServerManager
- - (id)init {
- self = [super init];
- if (self) {
- NSURLSessionConfiguration * config = [NSURLSessionConfiguration defaultSessionConfiguration];
- config.HTTPAdditionalHeaders = @{@"Accept": @"application/json, text/javascript, */*; q=0.01",
- @"X-Requested-With": @"XMLHttpRequest"};
- NSURL * url = [NSURL URLWithString:@"http://ironworld-pro.carswar.com/"];
- self.requestOperationManager = [[AFHTTPSessionManager alloc]initWithBaseURL:url sessionConfiguration:config];
- self.requestOperationManager.requestSerializer = [AFJSONRequestSerializer serializer];
- }
- return self;
- }
- + (ServerManager *) sharedManager {
- static ServerManager * manager = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- manager = [[ServerManager alloc] init];
- });
- return manager;
- }
- #pragma mark -Image
- - (void)loadSingleImageFromURL:(NSURL *)imageURL
- onSuccess:(void(^)(UIImage * image)) success
- onFailure:(void(^)(NSError* error)) failure {
- SDWebImageManager *manager = [SDWebImageManager sharedManager];
- [manager downloadImageWithURL:imageURL
- options:0
- progress:nil
- completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
- if (image) {
- success(image);
- } else if (error) {
- failure(error);
- }
- }];
- }
- #pragma mark -Auth
- - (void)loginUserWithEmail:(NSString *)email
- password:(NSString *)password
- onSuccess:(void(^)(LoginResponceServerModel * loginResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"email" : email,
- @"password" : password};
- NSLog(@"LOGIN PARAMS: %@",params);
- [self.requestOperationManager POST:@"Auth/login" parameters:params constructingBodyWithBlock:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"LOGIN RESPONCE: %@",responseObject);
- if (success) {
- LoginResponceServerModel * loginResponceServerModel = [[LoginResponceServerModel alloc]initWithServerResponce:responseObject];
- success(loginResponceServerModel);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"LOGIN ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)registrateUserWithFirstName:(NSString *)firstName
- surnameName:(NSString *)surname
- email:(NSString *)email
- password:(NSString *)password
- gender:(NSInteger )genderType
- birthday:(NSString *)birthday
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"first_name" : firstName,
- @"last_name" : surname,
- @"email" : email,
- @"password" : password,
- @"gender" : [NSString stringWithFormat:@"%ld",(long)genderType],
- @"birthday" : birthday};
- NSLog(@"REGISTRATION PARAMS: %@",params);
- [self.requestOperationManager POST:@"Auth/register" parameters:params constructingBodyWithBlock:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"REGISTRATION RESPONCE: %@",responseObject);
- if (success) {
- RegistrationResponceServerModel * registrationResponceServerModel = [[RegistrationResponceServerModel alloc]initWithServerResponce:responseObject];
- success(registrationResponceServerModel);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"REGISTRATION ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)registrateUserWithVK:(VKUser *) vkUser
- userID:(NSString *)userID
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"first_name" : vkUser.first_name,
- @"last_name" : vkUser.last_name,
- @"email" : @"NO_EMAIL_VK",
- @"gender" : vkUser.sex,
- @"birthday" : vkUser.bdate,
- @"network" : @"vkontakte",
- @"identity" : userID,
- @"profile" : userID,
- @"avatar_url" : vkUser.photo_100};
- NSLog(@"SOCIAL REGISTRATION PARAMS: %@",params);
- [self.requestOperationManager POST:@"Auth/uloginAuthAjax"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"SOCIAL REGISTRATION RESPONCE: %@",responseObject);
- if (success) {
- RegistrationResponceServerModel * registrationResponceServerModel = [[RegistrationResponceServerModel alloc]initWithServerResponce:responseObject];
- success(registrationResponceServerModel);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"SOCIAL REGISTRATION ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)registrateUserWithFacebook:(FaceBookUserServerModel *) faceBookUserServerModel
- onSuccess:(void(^)(RegistrationResponceServerModel * registrationResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"first_name" : faceBookUserServerModel.facebookUSerName,
- @"last_name" : faceBookUserServerModel.facebookUserSurename,
- @"email" : faceBookUserServerModel.facebookUserEmail,
- @"gender" : faceBookUserServerModel.facebookUserGender,
- @"birthday" : faceBookUserServerModel.facebookUSerBirthday,
- @"network" : @"facebook",
- @"identity" : faceBookUserServerModel.facebookUserID,
- @"profile" : faceBookUserServerModel.facebookUserID,
- @"avatar_url" : faceBookUserServerModel.facebookUserUserAvatar};
- NSLog(@"SOCIAL REGISTRATION PARAMS: %@",params);
- [self.requestOperationManager POST:@"Auth/uloginAuthAjax"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"SOCIAL REGISTRATION RESPONCE: %@",responseObject);
- if (success) {
- RegistrationResponceServerModel * registrationResponceServerModel = [[RegistrationResponceServerModel alloc]initWithServerResponce:responseObject];
- success(registrationResponceServerModel);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"SOCIAL REGISTRATION ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)sendNewPasswordToEmail:(NSString *)email
- onSuccess:(void(^)(id resultJSON)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"email" : email};
- NSLog(@"sendNewPasswordToEmail PARAMS: %@",params);
- [self.requestOperationManager POST:@"Auth/forgotPassword" parameters:params constructingBodyWithBlock:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"sendNewPasswordToEmail RESPONCE: %@",responseObject);
- if (responseObject)
- success(responseObject);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"sendNewPasswordToEmail ERROR %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)updateProfileAvatarWithImage:(UIImage *)avatar withToken:(NSString *) token
- onSuccess:(void(^)(UploadAvatarResponceServerModel * uploadAvatarResponceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
- config.HTTPAdditionalHeaders = @{@"Content-Transfer-Encoding": @"binary\r\n"};
- NSURL* url = [NSURL URLWithString:@"http://ironworld-pro.carswar.com/"];
- AFHTTPSessionManager * requestOperationManager = [[AFHTTPSessionManager alloc]initWithBaseURL:url sessionConfiguration:config];
- requestOperationManager.requestSerializer = [AFJSONRequestSerializer serializer];
- NSDictionary * params = @{@"token" : token,
- @"avatar_url" : avatar };
- NSData * imageData = UIImageJPEGRepresentation(avatar, 0.5);
- [requestOperationManager POST:@"portfolio/saveData" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
- [formData appendPartWithFileData:imageData
- name:@"avatar_url"
- fileName:@"testAvatar.jpg"
- mimeType:@"image/jpeg"];
- } progress:^(NSProgress * _Nonnull uploadProgress) {
- NSLog(@"\n\n\n%lld : %lld",uploadProgress.totalUnitCount,uploadProgress.completedUnitCount);
- } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"updateProfileAvatarWithImage RESPONCE: %@",responseObject);
- if (responseObject) {
- NSString * statusStr = responseObject[@"status"];
- UploadAvatarResponceServerModel * uploadAvatarResponceServerModel = [UploadAvatarResponceServerModel new];
- uploadAvatarResponceServerModel.requestStatus = statusStr.integerValue;
- uploadAvatarResponceServerModel.avatarURLOnServer = responseObject[@"file_150_150"];
- success(uploadAvatarResponceServerModel);
- } else {
- failure(nil);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"updateProfileAvatarWithImage ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- #pragma mark -BOOKS
- - (void)loadArrayOfImages:(NSArray *)arrayOfImages
- withProgress:(void(^)(UIImage * downloadedImage, NSInteger indexOfImage))progress
- onFailure:(void(^)(NSInteger indexOfImage))failure {
- for (NSInteger i = 0; i < arrayOfImages.count; i++) {
- SDWebImageManager *manager = [SDWebImageManager sharedManager];
- [manager downloadImageWithURL:arrayOfImages[i]
- options:0
- progress:nil
- completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
- if (image) {
- progress(image,i);
- } else {
- failure(i);
- }
- }];
- }
- }
- - (void)deleteArrayOfURLFromCashe:(NSArray *)arrayOfURLs {
- for (NSInteger i = 0; i < arrayOfURLs.count; i++) {
- [[SDImageCache sharedImageCache]removeImageForKey:arrayOfURLs[i] fromDisk:YES];
- }
- }
- -(void)getBooksPagesWithBookID:(NSString *)bookID
- onSuccess:(void(^)(NSArray * imagesNameArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"book_id" : bookID};
- [self.requestOperationManager POST:@"books/info"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getBooksPagesWithBookID RESPONCE: %@",responseObject);
- NSDictionary * responceDict = responseObject[@"data"];
- NSMutableArray * pagesUrlArray = [NSMutableArray new];
- NSString * directory = responceDict[@"directory"];
- NSString * format = responceDict[@"format"];
- NSString * pagesCount = responceDict[@"pages"];
- for (NSInteger i = 1; i < [pagesCount intValue]; i++) {
- NSString * finatlPageURL = [NSString stringWithFormat:@"%@page%ldoutput.%@",directory,(long)i,format];
- [pagesUrlArray addObject:finatlPageURL];
- }
- if (success)
- success(pagesUrlArray);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"getMarkersForMapWithFiltersArray ERROR %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)loadJSONFileForURL:(NSURL *)URL
- onSuccess:(void(^)(NSString * JSONStr)) success
- onFailure:(void(^)(NSError* error)) failure {
- __block NSJSONSerialization * JSON;
- NSURLSession *session = [NSURLSession sharedSession];
- [[session dataTaskWithURL:URL
- completionHandler:^(NSData *data,
- NSURLResponse *response,
- NSError *error) {
- if (error) {
- failure(error);
- } else {
- JSON = [NSJSONSerialization JSONObjectWithData:data
- options:0
- error:nil];
- if (JSON) {
- NSData * JSONDate = [NSJSONSerialization dataWithJSONObject:JSON options:0 error:nil];
- NSString * JSONStr = [[NSString alloc] initWithData:JSONDate encoding:NSUTF8StringEncoding];
- success(JSONStr);
- } else {
- failure(nil);
- }
- }
- }] resume];
- }
- #pragma mark -MAP
- - (void)getInfAboutSinglePlaceWithID:(NSString *)placeID
- onSuccess:(void(^)(SinglePlaceServerModel * singlePlaceServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"id" : placeID,
- @"version" : @"1.0",
- @"is_info" : @"1"
- };
- NSLog(@"getInfAboutSinglePlaceWithID PARAMS: %@",params);
- [self.requestOperationManager POST:@"map/getInfo"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getInfAboutSinglePlaceWithID RESPONCE: %@",responseObject);
- NSArray * array = responseObject[@"data"];
- SinglePlaceServerModel * singlePlaceServerModel = [[SinglePlaceServerModel alloc]initWithServerResponse:array];
- if (success)
- success(singlePlaceServerModel);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- if (failure)
- failure(error);
- NSLog(@"getInfAboutSinglePlaceWithID ERROR %@",error);
- }];
- }
- - (void)getShortInfoAboutPlaceWithID:(NSString *)placeID
- userLatPos:(NSString *)latPos
- andUserLngPos:(NSString *)lngPos
- onSuccess:(void(^)(PlaceShortInfoServerModel * placeShortInfoServerModel)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"id" : placeID,
- @"version" : @"1.0",
- @"is_info" : @"2",
- @"user_lat" : latPos,
- @"user_lng" : lngPos
- };
- NSLog(@"getInfAboutSinglePlaceWithID PARAMS: %@",params);
- [self.requestOperationManager POST:@"map/getInfo"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getShortInfoAboutPlaceWithID RESPONCE: %@",responseObject);
- NSArray * arrayResponce = responseObject[@"data"];
- NSDictionary * responseDict = arrayResponce[0]; // nice JSON
- PlaceShortInfoServerModel * singlePlaceServerModel = [[PlaceShortInfoServerModel alloc]initWithServerResponce:responseDict];
- if (success)
- success(singlePlaceServerModel);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- if (failure)
- failure(error);
- NSLog(@"getShortInfoAboutPlaceWithID ERROR %@",error);
- }];
- }
- - (void)getMarkersForMapWithFiltersArray:(NSArray *)filtersArray
- radius:(NSString *)radius
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- // i can't send normal array to server, so we did this...
- NSString * typeIDStr = @"";
- for (NSInteger i = 0; i < filtersArray.count; i++)
- typeIDStr = [typeIDStr stringByAppendingString:[NSString stringWithFormat:@"%@#",filtersArray[i]]];
- if ([typeIDStr length] > 0)
- typeIDStr = [typeIDStr substringToIndex:[typeIDStr length] - 1];
- NSDictionary * params = @{@"type_id" : typeIDStr,
- @"distance" : radius,
- @"center_lat" : lat,
- @"center_lng" : lng,
- @"offset" : @"0",
- @"limit" : @"0",
- @"is_info" : @"0",
- @"version" : @"1.0"
- };
- NSLog(@"getMarkersForMapWithFiltersArray PARAMS: %@",params);
- [self.requestOperationManager POST:@"map/show"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getMarkersForMapWithFiltersArray RESPONCE: %@",responseObject);
- NSArray * markersResponceArray = responseObject[@"data"];
- NSMutableArray * markersModelArray = [NSMutableArray new];
- for (NSInteger i = 0; i < markersResponceArray.count; i++) {
- MarkerServerModel * markerServerModel = [[MarkerServerModel alloc]initWithServerResponse:markersResponceArray[i]];
- [markersModelArray addObject:markerServerModel];
- }
- if (success)
- success(markersModelArray);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- if (failure)
- failure(error);
- NSLog(@"getMarkersForMapWithFiltersArray ERROR %@",error);
- }];
- }
- // for collection
- - (void)getMarkersForCollectionWithFiltersArray:(NSArray *)filtersArray
- radius:(NSString *)radius
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * placesArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- // i can't send normal array to server, so we did this...
- NSString * typeIDStr = @"";
- for (NSInteger i = 0; i < filtersArray.count; i++)
- typeIDStr = [typeIDStr stringByAppendingString:[NSString stringWithFormat:@"%@#",filtersArray[i]]];
- if ([typeIDStr length] > 0)
- typeIDStr = [typeIDStr substringToIndex:[typeIDStr length] - 1];
- NSDictionary * params = @{@"type_id" : typeIDStr,
- @"distance" : radius,
- @"center_lat" : lat,
- @"center_lng" : lng,
- @"limit" : [NSString stringWithFormat:@"%ld",(long)count],
- @"offset" : [NSString stringWithFormat:@"%ld",(long)offset],
- @"is_info" : @"1",
- @"version" : @"1.0"};
- NSLog(@"getPlacesFromServerWithFiltersArray PARAMS: %@",params);
- [self.requestOperationManager POST:@"map/show"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getPlacesFromServerWithFiltersArray RESPONCE: %@",responseObject);
- NSArray * placesResponceArray = responseObject[@"data"];
- NSMutableArray * placeModelArray = [NSMutableArray new];
- for (NSInteger i = 0; i < placesResponceArray.count; i++) {
- PlaceListServerModel * placeListServerModel = [[PlaceListServerModel alloc]initWithServerResponce:placesResponceArray[i]];
- [placeModelArray addObject:placeListServerModel];
- }
- NSMutableArray * fakeArray = [NSMutableArray new];
- for (NSInteger i = 0; i < placeModelArray.count; i++) {
- PlaceListServerModel * placeListServerModel = placeModelArray[i];
- if (i < 10)
- placeListServerModel.placeVIPStatus = YES;
- else
- placeListServerModel.placeVIPStatus = NO;
- [fakeArray addObject:placeListServerModel];
- }
- success(fakeArray);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"getPlacesFromServerWithFiltersArray ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)searchMarkersWithText:(NSString *)text
- latPosition:(NSString *)lat
- lngPosition:(NSString *)lng
- radius:(NSString *)radius
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSDictionary * params = @{@"center_lat" : lat,
- @"center_lng" : lng,
- @"distance" : radius,
- @"limit" : [NSString stringWithFormat:@"%ld",(long)count],
- @"search" : text,
- @"version" : @"1.0"
- };
- NSLog(@"PARA( %@",params);
- [self.requestOperationManager POST:@"map/search"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"searchOnServerWithLatPosition RESPONCE: %@",responseObject);
- NSArray * placesResponce = responseObject[@"data"];
- NSMutableArray * placesModelArray = [NSMutableArray new];
- for (NSInteger i = 0; i < placesResponce.count; i++) {
- SearchPlaceServerModel * searchPlaceServerModel = [[SearchPlaceServerModel alloc]initWithServerResponce:placesResponce[i]];
- [placesModelArray addObject:searchPlaceServerModel];
- }
- success(placesModelArray);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"searchOnServerWithLatPosition ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- - (void)getMarkersWithIdArray:(NSArray *)idsArray
- withCount:(NSInteger )count
- andOffset:(NSInteger )offset
- onSuccess:(void(^)(NSArray * markersArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSArray * placesIDArrya = [[NSUserDefaults standardUserDefaults]objectForKey:@"favoritesPlacesArray"];
- NSString * typeIDStr = @"";
- for (NSInteger i = 0; i < placesIDArrya.count; i++) {
- typeIDStr = [typeIDStr stringByAppendingString:[NSString stringWithFormat:@"%@#",placesIDArrya[i]]];
- }
- if ([typeIDStr length] > 0) {
- typeIDStr = [typeIDStr substringToIndex:[typeIDStr length] - 1];
- }
- NSDictionary * params = @{@"id" : typeIDStr,
- @"version" : @"1.0",
- @"is_info" : @"0"
- };
- NSLog(@"getFavoritesPlacesFromServerWithCount PARAMS: %@",params);
- [self.requestOperationManager POST:@"map/getInfo"
- parameters:params
- constructingBodyWithBlock:nil
- progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSLog(@"getFavoritesPlacesFromServerWithCount RESPONCE: %@",responseObject);
- NSArray * placesResponceArray = responseObject[@"data"];
- NSMutableArray * placesArray = [NSMutableArray new];
- for (NSInteger i = 0; i < placesResponceArray.count; i++) {
- MarkerServerModel * placeModel = [[MarkerServerModel alloc]initWithServerResponse:placesResponceArray[i]];
- [placesArray addObject:placeModel];
- }
- if (success)
- success(placesArray);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"getPlacesFromServerWithFiltersArray ERROR: %@",error);
- if (failure)
- failure(error);
- }];
- }
- @end
- //
- // NewsServerManager.h
- // IronWorldProject
- //
- // Created by Oleg Petruk on 26.05.16.
- // Copyright © 2016 petruska. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- @interface NewsServerManager : NSObject
- + (NewsServerManager *) sharedManager;
- // get all tags, we save them and now we know what user want see
- - (void)getArrayOfNewsTagsOnSuccess:(void(^)(NSArray * tagsArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- // table of news
- - (void)getArrayOfPreviewNewsWithTagsIDArray:(NSArray *)tagsIDArray
- fromPage:(NSInteger)page
- onSuccess:(void(^)(NSArray * previewNewsArray)) success
- onFailure:(void(^)(NSError* error)) failure;
- @end
- //
- // NewsServerManager.m
- // IronWorldProject
- //
- // Created by Oleg Petruk on 26.05.16.
- // Copyright © 2016 petruska. All rights reserved.
- //
- #import "NewsServerManager.h"
- #import <AFNetworking/AFNetworking.h>
- #import "TagServerModel.h"
- #import "PreviewNewsServerModel.h"
- @interface NewsServerManager ()
- @end
- @implementation NewsServerManager
- + (NewsServerManager *) sharedManager {
- static NewsServerManager * manager = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- manager = [[NewsServerManager alloc] init];
- });
- return manager;
- }
- - (void)getArrayOfNewsTagsOnSuccess:(void(^)(NSArray * tagsArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSURLSessionConfiguration * configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
- AFURLSessionManager * manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
- NSURL *URL = [NSURL URLWithString:@"http://ironworld.ru/news/json/tags.php"];
- NSURLRequest *request = [NSURLRequest requestWithURL:URL];
- NSURLSessionDataTask * dataTask = [manager dataTaskWithRequest:request
- completionHandler:^(NSURLResponse *response,
- id responseObject, NSError *error) {
- if (responseObject) {
- NSLog(@"getArrayOfNewsTags RESPONCE: %@",responseObject);
- NSArray * tagsResponceArray = responseObject[@"data"][@"tags"];
- NSMutableArray * tagsModelsArray = [NSMutableArray new];
- for (NSInteger i = 0; i < tagsResponceArray.count; i++) {
- NSDictionary * singleTag = tagsResponceArray[i];
- TagServerModel * tagServerModel = [[TagServerModel alloc]initWithServerResponce:singleTag];
- [tagsModelsArray addObject:tagServerModel];
- }
- success(tagsModelsArray);
- }
- if (error) {
- NSLog(@"getArrayOfNewsTags ERROR: %@",error);
- failure(error);
- }
- }];
- [dataTask resume];
- }
- - (void)getArrayOfPreviewNewsWithTagsIDArray:(NSArray *)tagsIDArray
- fromPage:(NSInteger)page
- onSuccess:(void(^)(NSArray * previewNewsArray)) success
- onFailure:(void(^)(NSError* error)) failure {
- NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
- AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
- NSString * baseURL = @"http://ironworld.ru/news/json/?";
- NSString * tagsTemp = [self createStringFromArray:tagsIDArray];
- NSString * tagsParam = [NSString stringWithFormat:@"tags={%@}",tagsTemp];
- NSString * pageParam = [NSString stringWithFormat:@"&page=%ld",(long)page];
- NSString * finalURL = [NSString stringWithFormat:@"%@%@%@",baseURL,tagsParam,pageParam];
- NSLog(@"finalURL: %@",finalURL);
- // http://stackoverflow.com/a/32802581 <3
- finalURL = [finalURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
- NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:finalURL]];
- NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
- if (responseObject) {
- NSLog(@"getArrayOfPreviewNewsWithTagsIDArray RESPONCE: %@",responseObject);
- NSArray * dataResponceArray = responseObject[@"data"];
- NSMutableArray * previewNewsModelArray = [NSMutableArray new];
- for (NSInteger i = 0; i < dataResponceArray.count; i++) {
- NSDictionary * singePreviwNewResponce = dataResponceArray[i];
- PreviewNewsServerModel * previewNewsServerModel = [[PreviewNewsServerModel alloc]initWithServerResponce:singePreviwNewResponce];
- [previewNewsModelArray addObject:previewNewsServerModel];
- }
- success(previewNewsModelArray);
- }
- if (error) {
- NSLog(@"getArrayOfPreviewNewsWithTagsIDArray ERROR: %@",error);
- failure(error);
- }
- }];
- [dataTask resume];
- }
- - (NSString *)createStringFromArray:(NSArray *)array {
- // \"1\":8,\"2\":11
- NSString * finalString = @"";
- for (NSInteger i = 0; i < array.count; i++) {
- NSString * singlePartOfString = array[i];
- NSString * addString = [NSString stringWithFormat:@"\"%d\":%@,",i + 1,singlePartOfString];
- finalString = [finalString stringByAppendingString:addString];
- }
- if ([finalString length] > 0)
- finalString = [finalString substringToIndex:finalString.length - 1];
- return finalString;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement