Files
Siro/siro_admin/lib/controller/auth/register_controller.dart
2026-06-12 20:40:40 +03:00

62 lines
2.0 KiB
Dart

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