APIMANAGER.H
#import <Foundation/Foundation.h>
#import <AFNetworking/AFHTTPSessionManager.h>
@interface APIManager : AFHTTPSessionManager
+(void) startNetworkMonitoring ;
+(BOOL) Connected;
+(id)_sharedAPIManager;
-(void)postRequest:(NSString *)urlStr parameters:(NSDictionary *)parametersDictionary completionHandler:(void (^)(NSError*, NSDictionary*))completionBlock;
-(void)getRequest:(NSString *)urlStr parameters:(NSDictionary *)parametersDictionary completionHandler:(void (^)(NSError*, NSDictionary*))completionBlock;
@end
//
// APIManager.m
// CREWZ
//
// Created by Amruta on 19/09/17.
// Copyright © 2017 Optim. All rights reserved.
//
#import "APIManager.h"
#import <AFNetworking/AFHTTPSessionManager.h>
#import "CommonFunctions.h"
@implementation APIManager
//let _sharedAPIManager = APIManager(baseURL: NSURL(string: WebServiceURL))
static APIManager *_sharedAPIManager;
+(id)_sharedAPIManager
{
if (!_sharedAPIManager)
{
_sharedAPIManager = [[APIManager alloc]init];
}
return _sharedAPIManager;
}
// override init(baseURL url: NSURL!, sessionConfiguration session:NSURLSessionConfiguration? ) {
- (instancetype)initWithBaseURL:(nullable NSURL *)url
sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration
{
self = [super initWithBaseURL:url sessionConfiguration:configuration];
self.responseSerializer = [AFHTTPResponseSerializer serializer];
self.requestSerializer = [AFJSONRequestSerializer serializer];
// super.init(baseURL: url, sessionConfiguration: session)
// self.responseSerializer = AFJSONResponseSerializer() as AFJSONResponseSerializer
//self.requestSerializer = AFJSONRequestSerializer() as AFJSONRequestSerializer
return self;
}
-(void)postRequest:(NSString *)urlStr parameters:(NSDictionary *)parametersDictionary completionHandler:(void (^)(NSError*, NSDictionary*))completionBlock{
NSURL *URL = [NSURL URLWithString:[WEBSERVICE_URL stringByAppendingString:urlStr]];
// request header
//
// Client-Service:frontend-client
// Auth-Key:beautyfaceapi
// Authorization:Basic c3lzdGVtOm1hbmFnZXI=
// Content-Type:application/json
//
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *dicHeaders = [[CommonFunctions sharedInstance] getHeaders:urlStr];
for(NSString *strKey in [dicHeaders allKeys])
{
[manager.requestSerializer setValue:[dicHeaders valueForKey:strKey] forHTTPHeaderField:strKey];
}
[manager POST:URL.absoluteString parameters:parametersDictionary progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSError* error;
NSMutableDictionary* json = (NSMutableDictionary *)[NSJSONSerialization JSONObjectWithData:responseObject
options:kNilOptions
error:&error];
NSLog(@"Success %@", json);
//get response
NSMutableDictionary *resposneData = [[NSMutableDictionary alloc]initWithDictionary:json copyItems:YES];
//get haeder
NSHTTPURLResponse *response = ((NSHTTPURLResponse *)[task response]);
NSDictionary *headers = [response allHeaderFields];
[resposneData setValue:headers forKey:@"header"];
// NSLog(@"Success headers%@", headers);
completionBlock(nil,resposneData);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSHTTPURLResponse *response = (NSHTTPURLResponse *) [task response];
NSInteger statusCode = [response statusCode];
NSLog(@"RESPONSE CODE: %li", (long)statusCode);
NSMutableDictionary *dicRes = [[NSMutableDictionary alloc]init];
[dicRes setObject:[NSString stringWithFormat:@"%li",statusCode] forKey:@"status"];
NSLog(@"Error: %@", error);
completionBlock(error,dicRes);
}];
}
-(void)getRequest:(NSString *)urlStr parameters:(NSDictionary *)parametersDictionary completionHandler:(void (^)(NSError*, NSDictionary*))completionBlock{
NSURL *URL = [NSURL URLWithString:[WEBSERVICE_URL stringByAppendingString:urlStr]];
// request header
//
// Client-Service:frontend-client
// Auth-Key:beautyfaceapi
// Authorization:Basic c3lzdGVtOm1hbmFnZXI=
// Content-Type:application/json
//
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *dicHeaders = [[CommonFunctions sharedInstance] getHeaders:urlStr];
for(NSString *strKey in [dicHeaders allKeys])
{
[manager.requestSerializer setValue:[dicHeaders valueForKey:strKey] forHTTPHeaderField:strKey];
}
[manager GET:URL.absoluteString parameters:parametersDictionary progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseObject
options:kNilOptions
error:&error];
NSLog(@"Success %@", json);
completionBlock(nil,json);
} failure:^(NSURLSessionDataTask *task, NSError *error)
{
NSHTTPURLResponse *response = (NSHTTPURLResponse *) [task response];
NSInteger statusCode = [response statusCode];
NSLog(@"RESPONSE CODE: %li", (long)statusCode);
NSMutableDictionary *dicRes = [[NSMutableDictionary alloc]init];
[dicRes setObject:[NSString stringWithFormat:@"%li",statusCode] forKey:@"status"];
NSLog(@"Error: %@", error);
completionBlock(error,dicRes);
}];
}
static id _sharedAPIManager ;
+(void) startNetworkMonitoring {
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
+(BOOL) Connected{
return [[AFNetworkReachabilityManager sharedManager] isReachable];
}
@end
//
// WebHelper.h
// CREWZ
//
// Created by Amruta on 15/09/17.
// Copyright © 2017 Optim. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol WebHelperDelegate <NSObject>
-(void) didFinishLoadingData:(NSString *) strWebMethod data:(NSDictionary *)data ;
-(void) didFailed:(NSString *) strWebMethod data:(NSDictionary *)data ;
@end
@interface WebHelper : NSObject
{
}
@property (nonatomic, retain) id <WebHelperDelegate> _webdelegate;
-(WebHelper *)initWeb;
-(void)postData:strAPIName parameters:dicParameter;
-(void)getData:strAPIName parameters:dicParameter;
@end
#import "WebHelper.h"
#import <AFNetworking.h>
#import "APIManager.h"
#import <SVProgressHUD.h>
#import "PrefixHeader.pch"
@implementation WebHelper
-(WebHelper *)initWeb
{
return [[WebHelper alloc]init];
}
-(void)postData:strAPIName parameters:dicParameter {
@try {
// NSLog(@"Parameters = %@", dicParameter);
// for (id key in dicParameter)
// {
// NSLog(@"key: %@, value: %@ \n", key, [dicParameter objectForKey:key]);
// }
//
if ([APIManager Connected])
{
[SVProgressHUD showWithStatus:Please_Wait_Msg];
[SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
//call post
[[APIManager _sharedAPIManager] postRequest:strAPIName parameters:dicParameter completionHandler:^(NSError *error , NSDictionary *dicResponse)
{
if(!error)//success
{
[SVProgressHUD dismiss];
if([[dicResponse valueForKey:@"status"] intValue] == 1)
{
[self._webdelegate didFinishLoadingData:strAPIName data:dicResponse];
} else if ([[dicResponse valueForKey:@"status"] intValue] == 21)
{
[self._webdelegate didFinishLoadingData:strAPIName data:dicResponse];
}
else
{
[self._webdelegate didFailed:strAPIName data:dicResponse];
}
}
else //failure
{
[SVProgressHUD dismiss];
[self._webdelegate didFailed:strAPIName data:dicResponse];
}
}];
}
else
{
[self._webdelegate didFailed:strAPIName data:[NSDictionary dictionaryWithObjectsAndKeys:NO_InternetConnectivy_Msg, @"message" , nil]];
}
} @catch (NSException *exception) {
NSLog(@"exception = %@", exception.description);
} @finally {
}
}
-(void)getData:strAPIName parameters:dicParameter{
@try {
// if ([APIManager Connected])
// {
[SVProgressHUD showWithStatus:Please_Wait_Msg];
[SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
//call get
[[APIManager _sharedAPIManager] getRequest:strAPIName parameters:dicParameter completionHandler:^(NSError *error , NSDictionary *dicResponse)
{
if(!error)//success
{
[SVProgressHUD dismiss];
if([[dicResponse valueForKey:@"status"] intValue] == 1)
{
[self._webdelegate didFinishLoadingData:strAPIName data:dicResponse];
}
else
{
[self._webdelegate didFailed:strAPIName data:dicResponse];
}
}
else //failure
{
[SVProgressHUD dismiss];
[self._webdelegate didFailed:strAPIName data:dicResponse];
}
}];
//}
// else
// {
// [self._webdelegate didFailed:strAPIName data:[NSDictionary dictionaryWithObjectsAndKeys:NO_InternetConnectivy_Msg, @"message" , nil]];
//
//
// }
} @catch (NSException *exception) {
NSLog(@"exception = %@", exception.description);
} @finally {
}
}
@end
IN CONTROLLER
- (IBAction)singUpClicked:(id)sender {
[self resignKeybords];
if(![self validateSignup])
{
return;
}
/*
{
"bFirstName":"Kuldeep",
"bLastName":"Sonawane",
"bEmail":"sonawane.kuldeep12@gmail.com",
"bPassword":"kuldeep@123",
"bPhoneNo":"9665813011",
"bCity":"Nashik"
}*/
NSMutableDictionary *dicParameter = [[NSMutableDictionary alloc]init];
[dicParameter setObject:_txtFirstName.text forKey:@"bFirstName"];
[dicParameter setObject:_txtLastName.text forKey:@"bLastName"];
[dicParameter setObject:[_txtEmail.text lowercaseString] forKey:@"bEmail"];
[dicParameter setObject:_txtPassword.text forKey:@"bPassword"];
[dicParameter setObject:_txtMobileNumber.text forKey:@"bPhoneNo"];
[dicParameter setObject:_txtCity.text forKey:@"bCity"];
WebHelper *web1 = [[WebHelper alloc]init];
web1._webdelegate = self;
[web1 postData:userSignup parameters:dicParameter];
}
#pragma mark Web delegate methods
-(void) didFinishLoadingData:(NSString *) strWebMethod data:(NSDictionary *)dicResponse
{
NSString *strMessage = [dicResponse valueForKey:@"message"];
[self.navigationController popViewControllerAnimated:YES];
[[CommonFunctions sharedInstance] showAlertView:strMessage view:[[CommonFunctions sharedInstance] getAppDelegateInstance].loginController];
}
-(void) didFailed:(NSString *) strWebMethod data:(NSDictionary *)dicResponse statusCode:(NSInteger )strStatusCode
{
if (strStatusCode == blockedUserCode)
{
NSString *strMessage = Blocked_User_msg;
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:strMessage preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
//do something when click button
// [[CommonFunctions sharedInstance] resetUserDetails];
// exit(0);
}];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
}
else
{
NSString *strMessage = [dicResponse valueForKey:@"message"];
if(strMessage.length==0)
{
strMessage = Request_Failed_Msg;
}
[[CommonFunctions sharedInstance] showAlertView:strMessage view:self];
}
}