Viewing file: ApiController.php (3.21 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\Models\User;
use App\Models\TransactionDetails;
use App\Models\AgentRating;
use App\Models\AgentLoginLog;
use Carbon\Carbon;
class ApiController extends Controller
{
public function login(Request $request)
{
// Validate request
$validator = Validator::make($request->all(), [
'user_name' => 'required',
'password' => 'required|string|min:6'
]);
if ($validator->fails()) {
return response()->json(['error' => $validator->errors()], 422);
}
// Find user by email
$user = User::where('email', $request->user_name)->first();
// Check if user exists and password matches
if ($user && Hash::check($request->password, $user->password)) {
AgentLoginLog::create([
'user_id' => $user->id,
'device' => 2,
'device_info' => $request->header('User-Agent'),
'type' => 'login',
]);
return response()->json(['message' => 'Login successful', 'user' => $user], 200);
}
return response()->json(['error' => 'Invalid credentials'], 401);
}
function getService($user_id , Request $request) {
// $data=TransactionDetails::where("user_id",$user_id)->where("rate",0)->orderBy('TRANS_ID','desc')->first();
// if ($data) {
// $data->rate=1;
// $data->save();
// }
// AgentRating::create([
// 'trans_id' => $data->TRANS_ID,
// 'user_id' => $data->USER_ID,
// 'service_id' => $data->SERVICE_ID,
// 'rating' => 0
// ]);
// var_dump($request->input('last_date'));
// $query = AgentRating::query();
// if ($request->input('last_date')) {
// $query->where('created_at', '>', $request->input('last_date'));
// }else {
// $query->where('created_at', '>', Carbon::today());
// }
// $data = $query->where('user_id', $user_id)->whereNull('rating')->orderBy('created_at','desc')->first();
$query = AgentRating::query();
// Get the latest created_at where rating is not null (at least 0)
$latest = AgentRating::where('user_id', $user_id)
->whereNotNull('rating')
->orderBy('created_at', 'desc')
->value('id');
if ($latest) {
$query->where('id', '>', $latest);
}
$data = $query->where('user_id', $user_id)
->whereNull('rating')
->orderBy('created_at', 'desc')
->first();
if ($data) {
$agerr=AgentRating::find($data->id);
$agerr->update([
'rating' => 0
]);
}
return response()->json(['data' => $data], 200);
}
function setRate(Request $req) {
AgentRating::where('id', $req->input('trans_id'))->update([
'rating' => $req->input('rating')
]);
return response()->json(['message' => 'Successful'], 200);
}
}
?>
|