Files
tripz_admin/lib/controller/admin/dashboard_controller.dart
2026-01-21 17:31:10 +03:00

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();
}
}