File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/leal.service.ts
import { Injectable } from '@angular/core';
import { StorageService } from './storage.service';
import { ApiService } from "./api.service";
@Injectable({
providedIn: 'root'
})
export class LealService {
constructor(public api: ApiService, private storage: StorageService) { }
userValidation(user) {
this.storage.get("token").then(async (token) => {
if (token) {
(await this.login(token.access_token)).subscribe(
async (resp) => {
/* Se verifica que el usuario no posee el coin_uid de acceso a leal,
sino se envia a registar y/o actualizar solo si ya posee el dato de documento necesario en el API */
if (resp['r'] && !user.coin_uid && user.document) {
(await this.register(token.access_token, {})).subscribe(
async (dataRegister) => {
if (dataRegister['uid']) {
user.coin_uid = dataRegister['uid'];
this.storage.set("infoUser", user);
} else {
(await this.update(token.access_token)).subscribe(
(dataUpdate) => {
if (dataUpdate['uid']) {
user.coin_uid = dataUpdate['uid'];
this.storage.set("infoUser", user);
}
},
(errorUpdate) => {
console.log("Error update leal", errorUpdate);
}
);
}
},
(errorRegister) => {
console.log("Error register leal", errorRegister);
}
);
}
},
(error) => {
console.log("Error login leal", error);
}
);
}
});
}
login(token: string) {
return this.api.post("leal/login", {}, token);
}
coins(token: string, uid) {
return this.api.get(`leal/coins/${uid}`, token);
}
register(token: string, user) {
return this.api.post("leal/user/register", user, token);
}
update(token: string) {
return this.api.get("leal/user/update", token);
}
generateOTP(token: string, user:any) {
return this.api.post("leal/payment/generateOTP", user, token);
}
generateOrderPaymentCoins(token: string, data:any) {
return this.api.post("leal/payment/generateOrderPaymentCoins", data, token);
}
}