Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // LoginDataController.m
- // Pediatr247
- //
- // Created by Artak A. Saroyan on 8/26/13.
- // Copyright (c) 2013 Artak A. Saroyan. All rights reserved.
- //
- #include <stdio.h>
- #import "LoginDataController.h"
- #import "SingleDataProvider.h"
- #import "RequestDataController.h"
- #import "Reserve.h"
- #import "SNApplicationSettings.h"
- #import "PushNotificationsDataController.h"
- #import "GAI.h"
- #import "GAIDictionaryBuilder.h"
- #import "GAIFields.h"
- #import "Consts.h"
- #import "InfoclinicaDataController.h"
- @interface LoginDataController () {
- }
- - (void)socketConnect;
- @end
- @implementation LoginDataController
- - (void)loginCurrentUserWithCompletion:(CompletionBlock)completion failureBlock:(FailureBlock)failure;
- {
- InfoclinicaDataController *infoclinicaDataController = [InfoclinicaDataController sharedDataController];
- SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
- UserDataModel *dataModel = dataProvider.currentUserDataModel;
- if (dataModel && dataModel.email && dataModel.password) {
- NSDictionary *requestData = @{
- @"email": dataModel.email,
- @"password": dataModel.password,
- };
- self.loginString = dataModel.email;
- self.passwordString = dataModel.password;
- [[BaseDataController sharedDataController] requestWithPath:LoginDomainExtension action:@"GET" params:requestData completionBlock:^(id response) {
- id baseDataControllerResponse = response;
- [infoclinicaDataController loginWithUserLogin:dataModel.email
- andUserPassword:dataModel.password
- onSuccess:^(id response) {
- [self checkReserve];
- [self createSession:[baseDataControllerResponse objectForKey:@"session_id"]];
- [[NSNotificationCenter defaultCenter] postNotificationName:DID_LOGGED_IN
- object:nil];
- if (completion) {
- completion(baseDataControllerResponse);
- }
- }
- onError:^(id error, id response) {
- if (failure) {
- failure(error,response);
- }
- }];
- } failureBlock:^(id error, id response) {
- if (failure) {
- failure(error,response);
- }
- }];
- }
- }
- - (void)loginWithEmail:(NSString *)email andPassword:(NSString *)password completion:(CompletionBlock)completion failureBlock:(FailureBlock)failure {
- InfoclinicaDataController *infoclinicaDataController = [InfoclinicaDataController sharedDataController];
- if (email && password) {
- NSDictionary *requestData = @{
- @"email": email,
- @"password": password,
- };
- self.loginString = email;
- self.passwordString = password;
- [[BaseDataController sharedDataController]
- requestWithPath:LoginDomainExtension
- action:@"GET"
- params:requestData
- completionBlock:^(id response) {
- id baseDataControllerResponse = response;
- [infoclinicaDataController
- loginWithUserLogin:email
- andUserPassword:password
- onSuccess:^(id response) {
- if ([[baseDataControllerResponse objectForKey:@"status"] isEqualToString:@"OK"]) {
- [[NSUserDefaults standardUserDefaults] setValue:email
- forKey:LoginKey];
- [[NSUserDefaults standardUserDefaults] setValue:password
- forKey:PasswordKey];
- [self checkReserve];
- [self createSession:[baseDataControllerResponse objectForKey:@"session_id"]];
- [[NSNotificationCenter defaultCenter] postNotificationName:DID_LOGGED_IN
- object:nil];
- if (completion) {
- completion(baseDataControllerResponse);
- }
- }
- else{
- if (failure) {
- failure([NSError errorWithDomain:@"ServiceDomain"
- code:0
- userInfo:baseDataControllerResponse],
- baseDataControllerResponse);
- }
- SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
- dataProvider.loggedIn = NO;
- [[NSNotificationCenter defaultCenter] postNotificationName:DID_FAILED_LOGGED_IN
- object:baseDataControllerResponse];
- }
- }
- onError:^(id error, id response) {
- SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
- dataProvider.loggedIn = NO;
- [[NSNotificationCenter defaultCenter]
- postNotificationName:DID_FAILED_LOGGED_IN
- object:response];
- if (failure) {
- failure(error, response);
- }
- }];
- } failureBlock:^(id error, id response) {
- SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
- dataProvider.loggedIn = NO;
- [[NSNotificationCenter defaultCenter] postNotificationName:DID_FAILED_LOGGED_IN object:response];
- if (failure) {
- failure(error, response);
- }
- }];
- }
- }
- - (void)logoutCurrentUser:(CompletionBlock)completion failureBlock:(FailureBlock)failure
- {
- NSString *token = [[NSUserDefaults standardUserDefaults] valueForKey:@"deviceIdentifier"];
- NSDictionary *requestParams = nil;
- if (![token isEqualToString:@"no_deviceIdentifier"]){
- requestParams = @{
- @"device_identifier": token,
- @"device_type": DeviceType,
- };
- }
- [[BaseDataController sharedDataController] requestWithPath:LogoutDomainExtension action:@"GET" params:requestParams completionBlock:^(id response) {
- if ([[response objectForKey:@"status"] isEqualToString:@"OK"]) {
- if (completion) {
- completion(response);
- }
- }
- else{
- if (failure) {
- failure([NSError errorWithDomain:@"ServiceDomain" code:0 userInfo:response], response);
- }
- }
- } failureBlock:nil];
- }
- - (void)createSession:(NSString *)sessionId
- {
- if (sessionId) {
- [[SingleDataProvider sharedSingleDataProvider] setupSessionId:sessionId];
- }
- SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
- dataProvider.loggedIn = YES;
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- [defaults setBool:YES forKey:IsLoggedInKey];
- [defaults setObject:self.loginString forKey:LoginKey];
- [defaults setObject:self.passwordString forKey:PasswordKey];
- [defaults synchronize];
- [self socketConnect];
- }
- - (void)checkReserve {
- [[RequestDataController sharedDataController] getReservedRequest:^(id response) {
- if ([((NSArray*)[response valueForKey:@"reserve"]) count]) {
- NSString* lastDate = [[response[@"reserve"] firstObject] valueForKey:@"date_created"];
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- [[Reserve instance] setLastReserveDate:[dateFormatter dateFromString:lastDate]];
- [[Reserve instance] setHaveReservedRequest:YES];
- [[Reserve instance] showReserveToast];
- }
- } failure:nil];
- }
- - (void)socketConnect {
- SocketDataController *socketController = [SocketDataController sharedSocketDataController];
- [socketController reconnect];
- }
- -(void)dealloc
- {}
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement