driver api setting 1
This commit is contained in:
@@ -25,6 +25,20 @@ class OtpController extends Controller
|
||||
$this->encryption = $encryption;
|
||||
}
|
||||
|
||||
/** POST /v2/otp/driver/send */
|
||||
public function sendDriver(Request $request): JsonResponse
|
||||
{
|
||||
$request->merge(['user_type' => 'driver']);
|
||||
return $this->send($request);
|
||||
}
|
||||
|
||||
/** POST /v2/otp/driver/verify */
|
||||
public function verifyDriver(Request $request): JsonResponse
|
||||
{
|
||||
$request->merge(['user_type' => 'driver']);
|
||||
return $this->verify($request);
|
||||
}
|
||||
|
||||
/** POST /v2/otp/send */
|
||||
public function send(Request $request): JsonResponse
|
||||
{
|
||||
@@ -105,7 +119,9 @@ class OtpController extends Controller
|
||||
break;
|
||||
}
|
||||
|
||||
// TODO: Send SMS/WhatsApp via external provider
|
||||
// Send WhatsApp message (especially for drivers changing devices)
|
||||
// $message = "Your Intaleq App verification code is: $otp";
|
||||
// $this->sendWhatsAppFromServer($phone, $message);
|
||||
|
||||
// Check if passenger exists to allow immediate login (V1 style)
|
||||
// We check both encrypted and raw phone with multiple formats (963... and 0...)
|
||||
@@ -272,16 +288,72 @@ class OtpController extends Controller
|
||||
/** GET /v2/otp/check-phone?phone=XXX */
|
||||
public function checkPhone(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(['phone' => 'required|string']);
|
||||
$phone = $request->input('phone') ?? $request->query('phone');
|
||||
|
||||
if (!$phone) {
|
||||
return $this->failure('Phone parameter is missing', 400);
|
||||
}
|
||||
|
||||
// We check phone_verification table (Legacy V1 style)
|
||||
$verified = DB::connection('primary')->table('phone_verification')
|
||||
->where('phone_number', $request->input('phone'))
|
||||
->where('is_verified', 1)
|
||||
->where('phone_number', $phone)
|
||||
->where('verified', 1) // In V1 it might be 'verified' or 'is_verified'
|
||||
->exists();
|
||||
|
||||
// Fallback for column name 'is_verified' if 'verified' fails
|
||||
if (!$verified) {
|
||||
try {
|
||||
$verified = DB::connection('primary')->table('phone_verification')
|
||||
->where('phone_number', $phone)
|
||||
->where('is_verified', 1)
|
||||
->exists();
|
||||
} catch (\Exception $e) {}
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'data' => ['verified' => $verified],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send WhatsApp message using the available bot servers (Ported from V1 functions.php)
|
||||
*/
|
||||
private function sendWhatsAppFromServer($to, $message)
|
||||
{
|
||||
$servers = [
|
||||
"https://bot5.intaleq.xyz/send", // ramat bus
|
||||
"https://bot3.intaleq.xyz/send", // shahd
|
||||
];
|
||||
|
||||
$url = $servers[array_rand($servers)];
|
||||
|
||||
$payload = [
|
||||
"to" => $to,
|
||||
"message" => $message
|
||||
];
|
||||
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $url,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
|
||||
CURLOPT_HTTPHEADER => [
|
||||
"Content-Type: application/json"
|
||||
],
|
||||
CURLOPT_TIMEOUT => 5 // Don't block API for too long
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
curl_close($curl);
|
||||
|
||||
if ($err) {
|
||||
\Log::error("[sendWhatsAppFromServer] cURL Error on $url: $err");
|
||||
return false;
|
||||
}
|
||||
|
||||
return json_decode($response, true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user