mobilapp/src/pages/buy/buy.ts

98 lines
2.8 KiB
TypeScript

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AlertController } from 'ionic-angular';
/**
* Generated class for the BuyPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-buy',
templateUrl: 'buy.html',
})
export class BuyPage {
constructor(public navCtrl: NavController, public navParams: NavParams, public alertCtrl: AlertController) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad BuyPage');
}
sendTransaction($cardnumber, $month, $year, $cryp, $amount) {
if (typeof $cardnumber !== 'undefined' && typeof $month !== 'undefined' && typeof $year !== 'undefined' && typeof $cryp !== 'undefined' && typeof $amount !== 'undefined' ) {
if (this.checkFields($cardnumber, $month, $year, $cryp)) {
//TODO : Contacter l'API et proposer la transaction. L'API répondra true ou False
if (true === true) {
this.navCtrl.popToRoot();
}
else {
const alert = this.alertCtrl.create({
title: 'Erreur',
subTitle: 'La transaction a échoué. Vérifiez les données saisies et réessayez.',
buttons: ['OK']
});
alert.present();
}
}
}
else {
const alert = this.alertCtrl.create({
title: 'Champs vides',
subTitle: 'Merci de remplir tous les champs',
buttons: ['OK']
});
alert.present();
}
}
//Vérification des champs
checkFields(cardnumber, month, year, cryp) {
if (!this.checkCardInfoIntegrity(12, 19, cardnumber) || !this.checkCardInfoIntegrity(3, 4, cryp) || !this.checkCardInfoValue(0, 9999, cryp)) {
const alert = this.alertCtrl.create({
title: 'Erreur',
subTitle: 'Le numéro de carte bancaire est erroné. Vérifiez les données et recommencez.',
buttons: ['OK']
});
alert.present();
return false;
}
else if (!this.checkCardInfoIntegrity(1, 2, month) || !this.checkCardInfoValue(1, 12, month) || !this.checkCardInfoIntegrity(4, 4, year) || !this.checkCardInfoValue(2018, 2050, year)) {
const alert = this.alertCtrl.create({
title: 'Erreur',
subTitle: 'La date est erronée. Vérifiez les données et recommencez.',
buttons: ['OK']
});
alert.present();
return false;
}
else {
return true;
}
}
checkCardInfoIntegrity($min, $max, $number) {
$number = parseInt($number);
if ($number.length < $min || $number.length > $max) {
return false;
}
else {
return true;
}
}
checkCardInfoValue($min, $max, $number) {
$number = parseInt($number);
if ($number < $min || $number > $max) {
return false;
}
else {
return true;
}
}
}