111 lines
3.1 KiB
Dart
111 lines
3.1 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:sefer_admin1/constant/links.dart';
|
|
import 'package:sefer_admin1/controller/functions/crud.dart';
|
|
|
|
import '../../constant/api_key.dart';
|
|
import '../../constant/box_name.dart';
|
|
import '../../main.dart';
|
|
import '../../print.dart';
|
|
|
|
class DashboardController extends GetxController {
|
|
bool isLoading = false;
|
|
List dashbord = [];
|
|
String creditSMS = '0';
|
|
final formKey = GlobalKey<FormState>();
|
|
final smsText = TextEditingController();
|
|
|
|
// Future getDashBoard() async {
|
|
// isLoading = true;
|
|
// update();
|
|
// var res = await CRUD().get(link: AppLink.getdashbord, payload: {});
|
|
// if (res != 'failure') {
|
|
// var d = jsonDecode(res);
|
|
// Log.print('d: ${d}');
|
|
// dashbord = d['message'];
|
|
// isLoading = false;
|
|
// update();
|
|
// }
|
|
|
|
// var res2 = await CRUD().kazumiSMS(
|
|
// link: 'https://sms.kazumi.me/api/sms/check-credit',
|
|
// payload: {"username": "Sefer", "password": AK.smsPasswordEgypt},
|
|
// );
|
|
|
|
// creditSMS = res2['credit'];
|
|
// Log.print(' res2[credit]: ${res2['credit']}');
|
|
// Log.print('creditSMS: ${creditSMS}');
|
|
|
|
// update();
|
|
// }
|
|
Future getDashBoard() async {
|
|
isLoading = true;
|
|
update();
|
|
|
|
// الطلب من السيرفر الرئيسي
|
|
var res = await CRUD().get(link: AppLink.getdashbord, payload: {});
|
|
if (res != 'failure') {
|
|
var d = jsonDecode(res);
|
|
// Log.print('d: ${d}');
|
|
dashbord = d['message']; // هذا عبارة عن List<Map>
|
|
}
|
|
|
|
// الطلب من سيرفر المحافظ
|
|
var resPayments = await CRUD().postWallet(
|
|
link: AppLink.getPaymentsDashboard,
|
|
payload: {},
|
|
);
|
|
|
|
if (resPayments != 'failure') {
|
|
var p = resPayments;
|
|
// Log.print('p: ${p}');
|
|
|
|
// نتأكد أن الكل Map بداخل List
|
|
if (dashbord.isNotEmpty &&
|
|
p['message'] is List &&
|
|
p['message'].isNotEmpty) {
|
|
dashbord[0].addAll(p['message'][0]); // ندمج المعلومات داخل نفس الـ Map
|
|
}
|
|
}
|
|
|
|
// كريدت الرسائل
|
|
var res2 = await CRUD().kazumiSMS(
|
|
link: 'https://sms.kazumi.me/api/sms/check-credit',
|
|
payload: {"username": "Sefer", "password": AK.smsPasswordEgypt},
|
|
);
|
|
|
|
creditSMS = res2['credit'];
|
|
Log.print(' res2[credit]: ${res2['credit']}');
|
|
Log.print('creditSMS: ${creditSMS}');
|
|
|
|
isLoading = false;
|
|
update();
|
|
}
|
|
|
|
|
|
sendSMSMethod() async {
|
|
if (formKey.currentState!.validate()) {
|
|
for (var phoneNumber in box.read(BoxName.tokensDrivers)['message']) {
|
|
// for (var i = 0; i < 2; i++) {
|
|
await CRUD().sendSmsEgypt(
|
|
phoneNumber['phone'].toString(),
|
|
// box.read(BoxName.tokensDrivers)['message'][i]['phone'].toString(),
|
|
smsText.text,
|
|
);
|
|
// Log.print('CRUD().phoneDriversTest.: ${phoneNumber['phone']}');
|
|
Future.delayed(const Duration(microseconds: 20));
|
|
}
|
|
Get.back();
|
|
}
|
|
}
|
|
|
|
@override
|
|
void onInit() async {
|
|
getDashBoard();
|
|
|
|
super.onInit();
|
|
}
|
|
}
|