Guest User

Untitled

a guest
Nov 5th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. import { AlertController } from 'ionic-angular';
  2.  
  3. // IMPORT URL SERVICES
  4. import { URL_SERVICES } from '../../config/url.services';
  5.  
  6. import { Platform } from 'ionic-angular';
  7.  
  8. import { ModalController } from 'ionic-angular'
  9. import { LoginPage } from '../../pages/index.pages';
  10.  
  11. //pluguin storage
  12. import { Storage } from '@ionic/storage';
  13.  
  14. @Injectable()
  15. export class UsersProvider {
  16.  
  17. token:string;
  18. id_user:string;
  19.  
  20. constructor(public http: Http,
  21. private alertCtrl:AlertController,
  22. private platform:Platform,
  23. private storage:Storage,
  24. private modalCtrl:ModalController) {
  25.  
  26. //aqui cargamos el storage, (falta el loading)
  27. this.load_storage();
  28. }
  29.  
  30. //para validar si inicio session algun usuario y mostrar por ej el boton de salir
  31. activo():boolean{
  32. if( this.token ){
  33. return true;
  34. }else{
  35. return false;
  36. }
  37. }
  38.  
  39. ingresar( email:string, password:string ){
  40.  
  41. //PARA ENVIAR LOS DATOS
  42. let data = new URLSearchParams();
  43.  
  44. //append para cade header a enviar
  45. data.append("email", email);
  46. data.append("password", password);
  47.  
  48. //URL A LA CUAL HAREMOS EL POST
  49. let url = URL_SERVICES + '/login';
  50.  
  51. //respuesta asincrona para poner un load
  52. //creamos un observador
  53. return this.http.post(url, data)
  54. .map( res=>{ //esta respuesta viene con codigo del error y los headers
  55. let data_res = res.json();
  56. console.log(data_res);
  57.  
  58. //validamos si viene algun error
  59. if( data_res.err ){
  60. //creamos una alerta
  61. this.alertCtrl.create({
  62. title: "Error al Iniciar",
  63. subTitle: data_res.message,
  64. buttons: ["OK"]
  65. }).present();
  66.  
  67. }else{
  68. //no vienen errores
  69. this.token = data_res.token;
  70. this.id_user = data_res.id_user;
  71.  
  72. //GUARDAR STORAGE
  73. this.save_storage();
  74.  
  75. }
  76.  
  77. })//aqui deberia suscribirme porque es un observador, pero lo hare en otro lado
  78. }
  79.  
  80. cerrar_session(){
  81. this.token = null;
  82. this.id_user = null;
  83.  
  84. //guardar storage
  85. this.save_storage();
  86.  
  87. this.modalCtrl.create(LoginPage)
  88. .present();
  89. }
  90.  
  91. public save_storage(){
  92.  
  93. console.log('entre a SAVE storage');
  94.  
  95. if( this.platform.is("cordova") ){
  96. //dispositivo
  97. console.log('entre a SAVE storage DISPOSITIVO');
  98. this.storage.set('token', this.token);
  99. this.storage.set('id_user', this.id_user);
  100. }else{
  101. //computadora
  102. console.log('entre a SAVE storage COMPUTADORA');
  103. if( this.token ){
  104. localStorage.setItem("token", this.token);
  105. localStorage.setItem("id_user", this.id_user);
  106. }else{
  107. localStorage.removeItem("token");
  108. localStorage.removeItem("id_user");
  109. }
  110. }
  111. }
  112.  
  113. public load_storage(){
  114. //esta es una promesa
  115. console.log('entre a CARGAR storage');
  116. let promesa = new Promise( ( resolve, reject )=>{
  117.  
  118. if( this.platform.is("cordova") ){
  119. //dispositivo
  120. console.log('entre a CARGAR storage DISPOSITIVO');
  121. this.storage.ready().then( ()=>{
  122.  
  123. this.storage.get("token").then( (token)=>{
  124. console.log('load storage', token);//prueba
  125. if( token ){
  126. this.token = token;
  127. }
  128. })
  129.  
  130. this.storage.get("id_user").then( (id_user)=>{
  131. console.log('load storage', id_user);//prueba
  132. if( id_user ){
  133. this.id_user = id_user;
  134. }
  135. resolve();
  136. })
  137.  
  138. })
  139. }else{
  140. //computadora
  141. console.log('entre a CARGAR storage PC');
  142. if( localStorage.getItem("token") ){
  143.  
  144. this.token = localStorage.getItem("token");
  145. this.id_user = localStorage.getItem("id_user");
  146. }
  147. resolve();
  148. }
  149.  
  150. });
  151.  
  152. return promesa;
  153.  
  154. }
  155.  
  156. }
Add Comment
Please, Sign In to add comment