Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Injectable } from '@angular/core';
- import { LoadingController, AlertController, NavController } from '@ionic/angular';
- import { HttpClient, HttpRequest, HttpHeaders, HttpParams } from '@angular/common/http';
- import { Events } from '@ionic/angular';
- import { timeout } from 'rxjs/operators';
- import { NativeStorage } from '@ionic-native/native-storage/ngx';
- import { Platform } from '@ionic/angular';
- /**
- * Api is a generic REST Api handler. Set your API url first.
- */
- @Injectable()
- export class Api {
- loadingMask: any;
- alert: any;
- errorDisplayed: boolean = false;
- repeatInterval: number;
- constructor(
- public http: HttpClient,
- public loadingCtrl: LoadingController,
- public events: Events,
- private alertCtrl: AlertController,
- private storage: NativeStorage,
- private navCtrl: NavController,
- private platform: Platform
- ) {
- let self = this;
- }
- getBackendUrl() {
- return 'http://api.anatoly.com/';
- }
- showMask() {
- let self = this;
- return new Promise((resolve, reject) => {
- self.beforeShowMask().then(() => {
- resolve();
- });
- });
- }
- async beforeShowMask() {
- let self = this;
- self.loadingMask = await this.loadingCtrl.create({
- mode: 'md',
- spinner: 'lines-small',
- message: 'Выполняется запрос'
- });
- await self.loadingMask.present();
- }
- hideMask() {
- let self = this;
- return new Promise((resolve, reject) => {
- if (self.loadingMask) {
- self.loadingMask.dismiss()
- .then(() => {
- resolve();
- });
- } else {
- resolve();
- }
- });
- }
- async showError(status?: any, errorText?: string, doneFunc: any = () => {}) {
- let self = this;
- if (!self.errorDisplayed) {
- self.alert = await self.alertCtrl.create({
- header: status ? status : 'Ошибка',
- message: errorText ? errorText : 'Произошла ошибка',
- backdropDismiss: false,
- mode: 'md',
- buttons: [{
- text: 'OK',
- handler: () => {
- self.errorDisplayed = false;
- self.alert.dismiss().then(doneFunc());
- return false;
- }
- }]
- });
- if (self.loadingMask && !self.loadingMask._isHidden) {
- self.hideMask()
- .then(() => {
- self.errorDisplayed = true;
- self.alert.present();
- });
- } else {
- self.errorDisplayed = true;
- self.alert.present();
- }
- }
- }
- toHttpParams(obj: Object): HttpParams {
- let params = new HttpParams();
- for (const key in obj) {
- if (obj.hasOwnProperty(key)) {
- const val = obj[key];
- if (val !== null && val !== undefined) {
- params = params.append(key, val.toString());
- }
- }
- }
- return params;
- }
- serialize(obj: any) {
- const formData = new FormData();
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- let element = obj[key];
- formData.append(key, element);
- }
- }
- return formData;
- }
- getPartnery(){
- return this.http.get(this.getBackendUrl + '/partnery');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment