pmtpenza

Untitled

Aug 15th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. import { Injectable } from '@angular/core';
  2. import { LoadingController, AlertController, NavController } from '@ionic/angular';
  3. import { HttpClient, HttpRequest, HttpHeaders, HttpParams } from '@angular/common/http';
  4. import { Events } from '@ionic/angular';
  5. import { timeout } from 'rxjs/operators';
  6. import { NativeStorage } from '@ionic-native/native-storage/ngx';
  7. import { Platform } from '@ionic/angular';
  8.  
  9. /**
  10. * Api is a generic REST Api handler. Set your API url first.
  11. */
  12. @Injectable()
  13. export class Api {
  14. loadingMask: any;
  15. alert: any;
  16. errorDisplayed: boolean = false;
  17. repeatInterval: number;
  18.  
  19. constructor(
  20. public http: HttpClient,
  21. public loadingCtrl: LoadingController,
  22. public events: Events,
  23. private alertCtrl: AlertController,
  24. private storage: NativeStorage,
  25. private navCtrl: NavController,
  26. private platform: Platform
  27. ) {
  28. let self = this;
  29. }
  30. getBackendUrl() {
  31. return 'http://api.anatoly.com/';
  32. }
  33. showMask() {
  34. let self = this;
  35. return new Promise((resolve, reject) => {
  36. self.beforeShowMask().then(() => {
  37. resolve();
  38. });
  39. });
  40. }
  41. async beforeShowMask() {
  42. let self = this;
  43. self.loadingMask = await this.loadingCtrl.create({
  44. mode: 'md',
  45. spinner: 'lines-small',
  46. message: 'Выполняется запрос'
  47. });
  48. await self.loadingMask.present();
  49.  
  50. }
  51. hideMask() {
  52. let self = this;
  53. return new Promise((resolve, reject) => {
  54. if (self.loadingMask) {
  55. self.loadingMask.dismiss()
  56. .then(() => {
  57. resolve();
  58. });
  59. } else {
  60. resolve();
  61. }
  62. });
  63. }
  64. async showError(status?: any, errorText?: string, doneFunc: any = () => {}) {
  65. let self = this;
  66. if (!self.errorDisplayed) {
  67. self.alert = await self.alertCtrl.create({
  68. header: status ? status : 'Ошибка',
  69. message: errorText ? errorText : 'Произошла ошибка',
  70. backdropDismiss: false,
  71. mode: 'md',
  72. buttons: [{
  73. text: 'OK',
  74. handler: () => {
  75. self.errorDisplayed = false;
  76. self.alert.dismiss().then(doneFunc());
  77. return false;
  78. }
  79. }]
  80. });
  81. if (self.loadingMask && !self.loadingMask._isHidden) {
  82. self.hideMask()
  83. .then(() => {
  84. self.errorDisplayed = true;
  85. self.alert.present();
  86. });
  87. } else {
  88. self.errorDisplayed = true;
  89. self.alert.present();
  90. }
  91. }
  92. }
  93. toHttpParams(obj: Object): HttpParams {
  94. let params = new HttpParams();
  95. for (const key in obj) {
  96. if (obj.hasOwnProperty(key)) {
  97. const val = obj[key];
  98. if (val !== null && val !== undefined) {
  99. params = params.append(key, val.toString());
  100. }
  101. }
  102. }
  103. return params;
  104. }
  105. serialize(obj: any) {
  106. const formData = new FormData();
  107.  
  108. for (let key in obj) {
  109. if (obj.hasOwnProperty(key)) {
  110. let element = obj[key];
  111. formData.append(key, element);
  112. }
  113. }
  114. return formData;
  115. }
  116.  
  117. getPartnery(){
  118. return this.http.get(this.getBackendUrl + '/partnery');
  119. }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment