Initial V2 commit 4\9
This commit is contained in:
271
app/Http/Controllers/MiscController.php
Normal file
271
app/Http/Controllers/MiscController.php
Normal file
@@ -0,0 +1,271 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Helpers\LegacyEncryption;
|
||||
|
||||
/**
|
||||
* MiscController (Miscellaneous Controller) - متحكم المتفرقات
|
||||
*
|
||||
* تم التحديث لضمان التوافق التام مع V1 من حيث:
|
||||
* 1. إرجاع HTTP 200 دائماً مع تحديد الحالة داخل الـ JSON (success/failure).
|
||||
* 2. استخدام مفتاح 'message' للبيانات.
|
||||
* 3. إضافة شروط التحقق (if) لكل العمليات.
|
||||
*/
|
||||
class MiscController extends Controller
|
||||
{
|
||||
private LegacyEncryption $enc;
|
||||
|
||||
public function __construct(LegacyEncryption $enc)
|
||||
{
|
||||
$this->enc = $enc;
|
||||
}
|
||||
|
||||
/** GET /v2/misc/test */
|
||||
public function test(): JsonResponse
|
||||
{
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'V2 Connection Stable'
|
||||
]);
|
||||
}
|
||||
|
||||
/** GET /v2/misc/package-info */
|
||||
public function packageInfo(): JsonResponse
|
||||
{
|
||||
$info = DB::connection('primary')->table('packageInfo')->orderBy('id', 'desc')->first();
|
||||
|
||||
if (!$info) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'No package info found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $info
|
||||
]);
|
||||
}
|
||||
|
||||
/** GET /v2/misc/kazan-percent */
|
||||
public function getKazanPercent(Request $request): JsonResponse
|
||||
{
|
||||
$country = $request->input('country');
|
||||
|
||||
if (!$country) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'Country parameter is missing'
|
||||
]);
|
||||
}
|
||||
|
||||
$data = DB::connection('primary')->table('kazan')
|
||||
->where('country', $country)
|
||||
->get();
|
||||
|
||||
if ($data->isEmpty()) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'No Kazan record found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/** GET /v2/misc/help-center */
|
||||
public function getHelpCenter(Request $request): JsonResponse
|
||||
{
|
||||
$driverId = $request->input('driverID');
|
||||
|
||||
if (!$driverId) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'driverID is required'
|
||||
]);
|
||||
}
|
||||
|
||||
$data = DB::connection('primary')->table('helpCenter')
|
||||
->where('driverID', $driverId)
|
||||
->orderBy('datecreated', 'desc')
|
||||
->get();
|
||||
|
||||
if ($data->isEmpty()) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'Help question not found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/** GET /v2/misc/tips */
|
||||
public function getTips(Request $request): JsonResponse
|
||||
{
|
||||
$driverId = $request->input('driverID');
|
||||
$passengerId = $request->input('passendgerID');
|
||||
|
||||
if (!$driverId && !$passengerId) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'driverID or passendgerID is required'
|
||||
]);
|
||||
}
|
||||
|
||||
$query = DB::connection('primary')->table('tips');
|
||||
|
||||
if ($driverId) {
|
||||
$query->where('driverID', $driverId);
|
||||
}
|
||||
if ($passengerId) {
|
||||
$query->orWhere('passendgerID', $passengerId);
|
||||
}
|
||||
|
||||
$data = $query->get();
|
||||
|
||||
if ($data->isEmpty()) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'No tips records found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/** GET /v2/misc/license */
|
||||
public function getLicense(): JsonResponse
|
||||
{
|
||||
$data = DB::connection('primary')->table('license')->get();
|
||||
|
||||
if ($data->isEmpty()) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'License info not found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/** POST /v2/misc/help-center */
|
||||
public function storeHelpCenter(Request $request): JsonResponse
|
||||
{
|
||||
$driverId = $request->input('driverID');
|
||||
$passengerId = $request->input('passengerID');
|
||||
$helpQuestion = $request->input('helpQuestion');
|
||||
|
||||
if ((!$driverId && !$passengerId) || !$helpQuestion) {
|
||||
return response()->json(['status' => 'failure', 'message' => 'Missing parameters']);
|
||||
}
|
||||
|
||||
try {
|
||||
DB::connection('primary')->table('helpCenter')->insert([
|
||||
'driverID' => $driverId ?? $passengerId,
|
||||
'helpQuestion' => $helpQuestion,
|
||||
'datecreated' => now()
|
||||
]);
|
||||
|
||||
return response()->json(['status' => 'success', 'message' => 'Help question saved successfully']);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['status' => 'failure', 'message' => 'Database error: ' . $e->getMessage()]);
|
||||
}
|
||||
}
|
||||
|
||||
/** POST /v2/misc/tips */
|
||||
public function storeTips(Request $request): JsonResponse
|
||||
{
|
||||
$passengerId = $request->input('passengerID');
|
||||
$driverId = $request->input('driverID');
|
||||
$rideId = $request->input('rideID');
|
||||
$tipAmount = $request->input('tipAmount');
|
||||
|
||||
if (!$passengerId || !$driverId || !$rideId || !$tipAmount) {
|
||||
return response()->json(['status' => 'failure', 'message' => 'Missing parameters']);
|
||||
}
|
||||
|
||||
try {
|
||||
DB::connection('primary')->table('tips')->insert([
|
||||
'passengerID' => $passengerId,
|
||||
'driverID' => $driverId,
|
||||
'rideID' => $rideId,
|
||||
'tipAmount' => $tipAmount,
|
||||
'created_at' => now()
|
||||
]);
|
||||
|
||||
return response()->json(['status' => 'success', 'message' => 'Tip inserted successfully']);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['status' => 'failure', 'message' => 'Database error: ' . $e->getMessage()]);
|
||||
}
|
||||
}
|
||||
|
||||
/** GET /v2/misc/api-key */
|
||||
public function getApiKey(): JsonResponse
|
||||
{
|
||||
$data = DB::connection('primary')->table('apiKey')->first();
|
||||
|
||||
if (!$data) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'API Key not found'
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/** POST /v2/misc/egypt-phones */
|
||||
public function saveEgyptPhones(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate([
|
||||
'phones' => 'required|string',
|
||||
'name' => 'nullable|string',
|
||||
'phones2' => 'nullable|string',
|
||||
]);
|
||||
|
||||
try {
|
||||
$id = DB::connection('primary')->table('contactEgypt')->insertGetId([
|
||||
'phones' => $request->input('phones'),
|
||||
'name' => $request->input('name'),
|
||||
'phones2' => $request->input('phones2'),
|
||||
]);
|
||||
|
||||
if ($id) {
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Contact data saved successfully'
|
||||
]);
|
||||
} else {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'Failed to save contact data'
|
||||
]);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'status' => 'failure',
|
||||
'message' => 'Database error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user