Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.77 KB | None | 0 0
  1. //
  2. // LoginDataController.m
  3. // Pediatr247
  4. //
  5. // Created by Artak A. Saroyan on 8/26/13.
  6. // Copyright (c) 2013 Artak A. Saroyan. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. #import "LoginDataController.h"
  11. #import "SingleDataProvider.h"
  12. #import "RequestDataController.h"
  13. #import "Reserve.h"
  14. #import "SNApplicationSettings.h"
  15. #import "PushNotificationsDataController.h"
  16. #import "GAI.h"
  17. #import "GAIDictionaryBuilder.h"
  18. #import "GAIFields.h"
  19. #import "Consts.h"
  20. #import "InfoclinicaDataController.h"
  21.  
  22. @interface LoginDataController () {
  23. }
  24.  
  25. - (void)socketConnect;
  26.  
  27. @end
  28.  
  29. @implementation LoginDataController
  30.  
  31. - (void)loginCurrentUserWithCompletion:(CompletionBlock)completion failureBlock:(FailureBlock)failure;
  32. {
  33. InfoclinicaDataController *infoclinicaDataController = [InfoclinicaDataController sharedDataController];
  34. SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
  35. UserDataModel *dataModel = dataProvider.currentUserDataModel;
  36. if (dataModel && dataModel.email && dataModel.password) {
  37. NSDictionary *requestData = @{
  38. @"email": dataModel.email,
  39. @"password": dataModel.password,
  40. };
  41. self.loginString = dataModel.email;
  42. self.passwordString = dataModel.password;
  43.  
  44. [[BaseDataController sharedDataController] requestWithPath:LoginDomainExtension action:@"GET" params:requestData completionBlock:^(id response) {
  45.  
  46. id baseDataControllerResponse = response;
  47.  
  48. [infoclinicaDataController loginWithUserLogin:dataModel.email
  49. andUserPassword:dataModel.password
  50. onSuccess:^(id response) {
  51. [self checkReserve];
  52. [self createSession:[baseDataControllerResponse objectForKey:@"session_id"]];
  53. [[NSNotificationCenter defaultCenter] postNotificationName:DID_LOGGED_IN
  54. object:nil];
  55. if (completion) {
  56. completion(baseDataControllerResponse);
  57. }
  58. }
  59. onError:^(id error, id response) {
  60. if (failure) {
  61. failure(error,response);
  62. }
  63. }];
  64. } failureBlock:^(id error, id response) {
  65. if (failure) {
  66. failure(error,response);
  67. }
  68. }];
  69. }
  70. }
  71.  
  72. - (void)loginWithEmail:(NSString *)email andPassword:(NSString *)password completion:(CompletionBlock)completion failureBlock:(FailureBlock)failure {
  73. InfoclinicaDataController *infoclinicaDataController = [InfoclinicaDataController sharedDataController];
  74.  
  75. if (email && password) {
  76. NSDictionary *requestData = @{
  77. @"email": email,
  78. @"password": password,
  79. };
  80. self.loginString = email;
  81. self.passwordString = password;
  82. [[BaseDataController sharedDataController]
  83. requestWithPath:LoginDomainExtension
  84. action:@"GET"
  85. params:requestData
  86. completionBlock:^(id response) {
  87. id baseDataControllerResponse = response;
  88.  
  89. [infoclinicaDataController
  90. loginWithUserLogin:email
  91. andUserPassword:password
  92. onSuccess:^(id response) {
  93. if ([[baseDataControllerResponse objectForKey:@"status"] isEqualToString:@"OK"]) {
  94. [[NSUserDefaults standardUserDefaults] setValue:email
  95. forKey:LoginKey];
  96. [[NSUserDefaults standardUserDefaults] setValue:password
  97. forKey:PasswordKey];
  98. [self checkReserve];
  99. [self createSession:[baseDataControllerResponse objectForKey:@"session_id"]];
  100. [[NSNotificationCenter defaultCenter] postNotificationName:DID_LOGGED_IN
  101. object:nil];
  102. if (completion) {
  103. completion(baseDataControllerResponse);
  104. }
  105. }
  106. else{
  107. if (failure) {
  108. failure([NSError errorWithDomain:@"ServiceDomain"
  109. code:0
  110. userInfo:baseDataControllerResponse],
  111. baseDataControllerResponse);
  112. }
  113. SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
  114. dataProvider.loggedIn = NO;
  115. [[NSNotificationCenter defaultCenter] postNotificationName:DID_FAILED_LOGGED_IN
  116. object:baseDataControllerResponse];
  117. }
  118. }
  119. onError:^(id error, id response) {
  120. SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
  121. dataProvider.loggedIn = NO;
  122. [[NSNotificationCenter defaultCenter]
  123. postNotificationName:DID_FAILED_LOGGED_IN
  124. object:response];
  125. if (failure) {
  126. failure(error, response);
  127. }
  128. }];
  129.  
  130.  
  131. } failureBlock:^(id error, id response) {
  132. SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
  133. dataProvider.loggedIn = NO;
  134. [[NSNotificationCenter defaultCenter] postNotificationName:DID_FAILED_LOGGED_IN object:response];
  135. if (failure) {
  136. failure(error, response);
  137. }
  138. }];
  139. }
  140. }
  141.  
  142. - (void)logoutCurrentUser:(CompletionBlock)completion failureBlock:(FailureBlock)failure
  143. {
  144. NSString *token = [[NSUserDefaults standardUserDefaults] valueForKey:@"deviceIdentifier"];
  145. NSDictionary *requestParams = nil;
  146. if (![token isEqualToString:@"no_deviceIdentifier"]){
  147. requestParams = @{
  148. @"device_identifier": token,
  149. @"device_type": DeviceType,
  150. };
  151. }
  152. [[BaseDataController sharedDataController] requestWithPath:LogoutDomainExtension action:@"GET" params:requestParams completionBlock:^(id response) {
  153. if ([[response objectForKey:@"status"] isEqualToString:@"OK"]) {
  154. if (completion) {
  155. completion(response);
  156. }
  157. }
  158. else{
  159. if (failure) {
  160. failure([NSError errorWithDomain:@"ServiceDomain" code:0 userInfo:response], response);
  161. }
  162. }
  163. } failureBlock:nil];
  164. }
  165.  
  166. - (void)createSession:(NSString *)sessionId
  167. {
  168. if (sessionId) {
  169. [[SingleDataProvider sharedSingleDataProvider] setupSessionId:sessionId];
  170. }
  171. SingleDataProvider *dataProvider = [SingleDataProvider sharedSingleDataProvider];
  172. dataProvider.loggedIn = YES;
  173. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  174. [defaults setBool:YES forKey:IsLoggedInKey];
  175. [defaults setObject:self.loginString forKey:LoginKey];
  176. [defaults setObject:self.passwordString forKey:PasswordKey];
  177. [defaults synchronize];
  178. [self socketConnect];
  179. }
  180.  
  181. - (void)checkReserve {
  182. [[RequestDataController sharedDataController] getReservedRequest:^(id response) {
  183. if ([((NSArray*)[response valueForKey:@"reserve"]) count]) {
  184. NSString* lastDate = [[response[@"reserve"] firstObject] valueForKey:@"date_created"];
  185.  
  186. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  187. [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  188. [[Reserve instance] setLastReserveDate:[dateFormatter dateFromString:lastDate]];
  189. [[Reserve instance] setHaveReservedRequest:YES];
  190. [[Reserve instance] showReserveToast];
  191. }
  192. } failure:nil];
  193. }
  194.  
  195. - (void)socketConnect {
  196. SocketDataController *socketController = [SocketDataController sharedSocketDataController];
  197. [socketController reconnect];
  198. }
  199.  
  200. -(void)dealloc
  201. {}
  202.  
  203.  
  204. @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement