Update: 2026-06-12 20:40:40

This commit is contained in:
Hamza-Ayed
2026-06-12 20:40:40 +03:00
parent 305ae01d52
commit f907212c57
294 changed files with 3592 additions and 3581 deletions

View File

@@ -17,9 +17,9 @@ import '../functions/encrypt_decrypt.dart';
class OtpHelper extends GetxController {
static final String _sendOtpUrl =
'${AppLink.server}/Admin/auth/send_otp_admin.php';
'${AppLink.server}/auth/otp/request.php';
static final String _verifyOtpUrl =
'${AppLink.server}/Admin/auth/verify_otp_admin.php';
'${AppLink.server}/auth/otp/verify.php';
static final String _checkAdminLogin =
'${AppLink.server}/Admin/auth/login.php';
@@ -29,7 +29,7 @@ class OtpHelper extends GetxController {
// await CRUD().getJWT();
final response = await CRUD().post(
link: _sendOtpUrl,
payload: {'receiver': phoneNumber},
payload: {'receiver': phoneNumber, 'user_type': 'admin'},
);
// Log.print('_sendOtpUrl: ${_sendOtpUrl}');
// Log.print('response: ${response}');
@@ -54,8 +54,9 @@ class OtpHelper extends GetxController {
link: _verifyOtpUrl,
payload: {
'phone_number': phoneNumber,
'otp': otp,
'device_number': box.read(BoxName.fingerPrint)
'token_code': otp,
'user_type': 'admin',
'device_number': box.read(BoxName.fingerPrint) ?? ''
},
);
@@ -79,7 +80,7 @@ class OtpHelper extends GetxController {
}
/// تسجيل الدخول بكلمة المرور والبصمة
Future<bool> loginWithPassword(String password) async {
Future<bool> loginWithPassword(String password, [String phone = '']) async {
try {
final fingerprint = box.read(BoxName.fingerPrint);
final response = await CRUD().post(
@@ -87,6 +88,7 @@ class OtpHelper extends GetxController {
payload: {
'fingerprint': fingerprint,
'password': password,
'phone': phone,
},
);

View File

@@ -0,0 +1,61 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:siro_admin/constant/links.dart';
import 'package:siro_admin/controller/functions/crud.dart';
import 'package:siro_admin/main.dart'; // للوصول لـ box
class AdminRegisterController extends GetxController {
final nameCtrl = TextEditingController();
final phoneCtrl = TextEditingController();
final passCtrl = TextEditingController();
final formKey = GlobalKey<FormState>();
var isLoading = false.obs;
Future<void> register() async {
if (!formKey.currentState!.validate()) return;
isLoading.value = true;
try {
// جلب البصمة، وإذا لم تكن موجودة يمكن محاولة توليدها أو طلبها
String fingerprint = box.read('fingerprint') ?? '';
final response = await CRUD().post(
link: '${AppLink.server}/Admin/auth/register.php',
payload: {
'name': nameCtrl.text.trim(),
'phone': phoneCtrl.text.trim(),
'password': passCtrl.text.trim(),
'fingerprint': fingerprint,
},
);
if (response != 'failure') {
if (response['status'] == 'pending') {
Get.snackbar('نجاح', response['message'] ?? 'تم تقديم الطلب بنجاح',
backgroundColor: Colors.green.withOpacity(0.8),
colorText: Colors.white);
Future.delayed(const Duration(seconds: 2), () => Get.back());
} else {
Get.snackbar('خطأ', 'حدث خطأ غير متوقع',
backgroundColor: Colors.red.withOpacity(0.8),
colorText: Colors.white);
}
}
} catch (e) {
Get.snackbar('خطأ', 'فشل في الاتصال بالخادم',
backgroundColor: Colors.red.withOpacity(0.8),
colorText: Colors.white);
} finally {
isLoading.value = false;
}
}
@override
void dispose() {
nameCtrl.dispose();
phoneCtrl.dispose();
passCtrl.dispose();
super.dispose();
}
}