Update codebase
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user