Update codebase

This commit is contained in:
Hamza-Ayed
2026-08-09 16:56:13 +03:00
parent 95e2e4f35d
commit b64debaa88
1058 changed files with 164327 additions and 113928 deletions
@@ -1,8 +1,8 @@
import 'dart:async';
import 'package:get/get.dart';
import 'package:tripz_driver/print.dart';
import 'package:tripz_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:siro_driver/print.dart';
import 'package:siro_driver/views/home/Captin/home_captain/home_captin.dart';
import '../../../constant/box_name.dart';
import '../../../constant/links.dart';
@@ -10,6 +10,7 @@ import '../../../main.dart';
import '../../../views/widgets/error_snakbar.dart';
import '../../firebase/notification_service.dart';
import '../../functions/crud.dart';
import 'login_captin_controller.dart';
class OtpVerificationController extends GetxController {
final String phone;
@@ -95,6 +96,25 @@ class OtpVerificationController extends GetxController {
response != 'no_internet') {
Log.print('response (already decoded): ${response}');
// ═══════════════════════════════════════════════════════════
// التحقق نجح ⇒ السيرفر ربط بصمة هذا الجهاز وأصدر توكن driver.
// نحفظه فوراً: هو التوكن الوحيد الذي يملك صلاحيات بعد تغيير
// الجهاز، وبدونه تبقى كل الطلبات على 403.
// ═══════════════════════════════════════════════════════════
final issuedJwt = (response is Map && response['message'] is Map)
? response['message']['jwt']?.toString()
: null;
if (issuedJwt != null && issuedJwt.isNotEmpty) {
await storage.write(key: BoxName.jwt, value: issuedJwt);
LoginDriverController.needsDeviceVerification = false;
Log.print('🔑 تم حفظ توكن driver بعد تحقق تغيير الجهاز.');
} else {
// السيرفر لم يرجع توكناً — نطلب واحداً الآن بعد أن صارت
// البصمة مربوطة، وإلا دخل الكابتن بتوكن بلا صلاحيات.
LoginDriverController.needsDeviceVerification = false;
await Get.put(LoginDriverController()).getJWT(force: true);
}
// توجه إلى الصفحة التالية
await CRUD().post(
link: AppLink.addTokensDriver,
@@ -104,15 +124,19 @@ class OtpVerificationController extends GetxController {
'captain_id': box.read(BoxName.driverID).toString(),
});
await NotificationService.sendNotification(
target: ptoken.toString(),
title: 'token change'.tr,
body: 'token change'.tr,
isTopic: false,
tone: 'cancel',
driverList: [],
category: 'token change',
);
// إشعار الجهاز القديم — يُرسل فقط إذا عرفنا توكنه. عند دخول جهاز
// جديد لا نملك ptoken (تعذّر جلبه بلا صلاحيات) فنتخطّاه.
if (ptoken.isNotEmpty) {
await NotificationService.sendNotification(
target: ptoken,
title: 'token change'.tr,
body: 'token change'.tr,
isTopic: false,
tone: 'cancel',
driverList: [],
category: 'token change',
);
}
Get.offAll(() => HomeCaptain());
} else {